@@ -213,6 +213,7 @@ class TestCmdlineParser : public TestFixture {
213213 TEST_CASE (maxConfigsMissingCount);
214214 TEST_CASE (maxConfigsInvalid);
215215 TEST_CASE (maxConfigsTooSmall);
216+ TEST_CASE (premiumOptions);
216217 TEST_CASE (premiumSafety);
217218 TEST_CASE (reportProgress1);
218219 TEST_CASE (reportProgress2);
@@ -1187,6 +1188,36 @@ class TestCmdlineParser : public TestFixture {
11871188 ASSERT_EQUALS (" cppcheck: error: argument to '--max-configs=' must be greater than 0.\n " , logger->str ());
11881189 }
11891190
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+
11901221 void premiumSafety () {
11911222 REDIRECT;
11921223 const char * const argv[] = {" cppcheck" , " --premium=safety" , " file.cpp" };
0 commit comments