MCPcopy Create free account
hub / github.com/cppcheck-opensource/cppcheck / ruleFileMulti

Method ruleFileMulti

test/testcmdlineparser.cpp:2708–2749  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2706
2707#ifdef HAVE_RULES
2708 void ruleFileMulti() {
2709 REDIRECT;
2710 ScopedFile file("rule.xml",
2711 "<rules>\n"
2712 "<rule>\n"
2713 "<engine>pcre</engine>\n"
2714 "<tokenlist>raw</tokenlist>\n"
2715 "<pattern>.+</pattern>\n"
2716 "<message>\n"
2717 "<severity>error</severity>\n"
2718 "<id>ruleId1</id>\n"
2719 "<summary>ruleSummary1</summary>\n"
2720 "</message>\n"
2721 "</rule>\n"
2722 "<rule>\n"
2723 "<tokenlist>define</tokenlist>\n"
2724 "<pattern>.*</pattern>\n"
2725 "<message>\n"
2726 "<severity>warning</severity>\n"
2727 "<id>ruleId2</id>\n"
2728 "<summary>ruleSummary2</summary>\n"
2729 "</message>\n"
2730 "</rule>\n"
2731 "</rules>");
2732 const char * const argv[] = {"cppcheck", "--rule-file=rule.xml", "file.cpp"};
2733 ASSERT_EQUALS_ENUM(CmdLineParser::Result::Success, parseFromArgs(argv));
2734 ASSERT_EQUALS(2, settings->rules.size());
2735 auto it = settings->rules.cbegin();
2736 ASSERT_EQUALS_ENUM(Regex::Engine::Pcre, it->regex->engine());
2737 ASSERT_EQUALS("raw", it->tokenlist);
2738 ASSERT_EQUALS(".+", it->pattern);
2739 ASSERT_EQUALS_ENUM(Severity::error, it->severity);
2740 ASSERT_EQUALS("ruleId1", it->id);
2741 ASSERT_EQUALS("ruleSummary1", it->summary);
2742 ++it;
2743 ASSERT_EQUALS_ENUM(Regex::Engine::Pcre, it->regex->engine());
2744 ASSERT_EQUALS("define", it->tokenlist);
2745 ASSERT_EQUALS(".*", it->pattern);
2746 ASSERT_EQUALS_ENUM(Severity::warning, it->severity);
2747 ASSERT_EQUALS("ruleId2", it->id);
2748 ASSERT_EQUALS("ruleSummary2", it->summary);
2749 }
2750
2751 void ruleFileSingle() {
2752 REDIRECT;

Callers

nothing calls this directly

Calls 2

engineMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected