@@ -213,6 +213,7 @@ class TestCmdlineParser : public TestFixture {
213
213
TEST_CASE (maxConfigsMissingCount);
214
214
TEST_CASE (maxConfigsInvalid);
215
215
TEST_CASE (maxConfigsTooSmall);
216
+ TEST_CASE (premiumOptions);
216
217
TEST_CASE (premiumSafety);
217
218
TEST_CASE (reportProgress1);
218
219
TEST_CASE (reportProgress2);
@@ -1187,6 +1188,36 @@ class TestCmdlineParser : public TestFixture {
1187
1188
ASSERT_EQUALS (" cppcheck: error: argument to '--max-configs=' must be greater than 0.\n " , logger->str ());
1188
1189
}
1189
1190
1191
+ void premiumOptions () {
1192
+ REDIRECT;
1193
+ settings->cppcheckCfgProductName = " Cppcheck Premium 0.0.0" ;
1194
+ {
1195
+ const char * const argv[] = {" cppcheck" , " --premium=misra-c-2012" , " file.c" };
1196
+ ASSERT_EQUALS (CmdLineParser::Result::Success, parser->parseFromArgs (3 , argv));
1197
+ }
1198
+ {
1199
+ const char * const argv[] = {" cppcheck" , " --premium=misra-c++-2023" , " file.c" };
1200
+ ASSERT_EQUALS (CmdLineParser::Result::Success, parser->parseFromArgs (3 , argv));
1201
+ }
1202
+ {
1203
+ const char * const argv[] = {" cppcheck" , " --premium=cert-c++-2016" , " file.c" };
1204
+ ASSERT_EQUALS (CmdLineParser::Result::Success, parser->parseFromArgs (3 , argv));
1205
+ }
1206
+ // invalid options
1207
+ {
1208
+ const char * const argv[] = {" cppcheck" , " --premium=misra" , " file.c" };
1209
+ ASSERT_EQUALS (CmdLineParser::Result::Fail, parser->parseFromArgs (3 , argv));
1210
+ ASSERT_EQUALS (" cppcheck: error: invalid --premium option 'misra'.\n " , logger->str ());
1211
+ }
1212
+ {
1213
+ const char * const argv[] = {" cppcheck" , " --premium=cert" , " file.c" };
1214
+ ASSERT_EQUALS (CmdLineParser::Result::Fail, parser->parseFromArgs (3 , argv));
1215
+ ASSERT_EQUALS (" cppcheck: error: invalid --premium option 'cert'.\n " , logger->str ());
1216
+ }
1217
+ settings->cppcheckCfgProductName .clear ();
1218
+ settings->premiumArgs .clear ();
1219
+ }
1220
+
1190
1221
void premiumSafety () {
1191
1222
REDIRECT;
1192
1223
const char * const argv[] = {" cppcheck" , " --premium=safety" , " file.cpp" };
0 commit comments