@@ -350,6 +350,8 @@ class TestCmdlineParser : public TestFixture {
350350 TEST_CASE (ruleFileUnknownTokenList);
351351 TEST_CASE (ruleFileInvalidPattern);
352352 TEST_CASE (ruleFileMissingId);
353+ TEST_CASE (ruleFileInvalidSeverity1);
354+ TEST_CASE (ruleFileInvalidSeverity2);
353355#else
354356 TEST_CASE (ruleFileNotSupported);
355357#endif
@@ -2369,6 +2371,34 @@ class TestCmdlineParser : public TestFixture {
23692371 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Fail, parser->parseFromArgs (3 , argv));
23702372 ASSERT_EQUALS (" cppcheck: error: unable to load rule-file 'rule.xml' - a rule is lacking an id.\n " , logger->str ());
23712373 }
2374+
2375+ void ruleFileInvalidSeverity1 () {
2376+ REDIRECT;
2377+ ScopedFile file (" rule.xml" ,
2378+ " <rule>\n "
2379+ " <pattern>.+</pattern>\n "
2380+ " <message>\n "
2381+ " <severity/>"
2382+ " </message>\n "
2383+ " </rule>\n " );
2384+ const char * const argv[] = {" cppcheck" , " --rule-file=rule.xml" , " file.cpp" };
2385+ ASSERT_EQUALS_ENUM (CmdLineParser::Result::Fail, parser->parseFromArgs (3 , argv));
2386+ ASSERT_EQUALS (" cppcheck: error: unable to load rule-file 'rule.xml' - a rule has an invalid severity.\n " , logger->str ());
2387+ }
2388+
2389+ void ruleFileInvalidSeverity2 () {
2390+ REDIRECT;
2391+ ScopedFile file (" rule.xml" ,
2392+ " <rule>\n "
2393+ " <pattern>.+</pattern>\n "
2394+ " <message>\n "
2395+ " <severity>none</severity>"
2396+ " </message>\n "
2397+ " </rule>\n " );
2398+ const char * const argv[] = {" cppcheck" , " --rule-file=rule.xml" , " file.cpp" };
2399+ ASSERT_EQUALS_ENUM (CmdLineParser::Result::Fail, parser->parseFromArgs (3 , argv));
2400+ ASSERT_EQUALS (" cppcheck: error: unable to load rule-file 'rule.xml' - a rule has an invalid severity.\n " , logger->str ());
2401+ }
23722402#else
23732403 void ruleFileNotSupported () {
23742404 REDIRECT;
0 commit comments