Skip to content

Commit 7c26e3f

Browse files
committed
add cmdlineparser tests
1 parent 17d7972 commit 7c26e3f

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

test/testcmdlineparser.cpp

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,14 @@ class TestCmdlineParser : public TestFixture {
447447
TEST_CASE(noCppcheckBuildDir2);
448448

449449
TEST_CASE(invalidCppcheckCfg);
450+
451+
TEST_CASE(reportTypeAutosar);
452+
TEST_CASE(reportTypeCertCpp);
453+
TEST_CASE(reportTypeCertC);
454+
TEST_CASE(reportTypeMisraC);
455+
TEST_CASE(reportTypeMisraCpp2008);
456+
TEST_CASE(reportTypeMisraCpp2023);
457+
TEST_CASE(invalidReportType);
450458
}
451459

452460
void nooptions() {
@@ -3062,6 +3070,55 @@ class TestCmdlineParser : public TestFixture {
30623070
ASSERT_EQUALS_ENUM(CmdLineParser::Result::Fail, parser->parseFromArgs(2, argv));
30633071
ASSERT_EQUALS("cppcheck: error: could not load cppcheck.cfg - not a valid JSON - syntax error at line 2 near: \n", logger->str());
30643072
}
3073+
3074+
void reportTypeAutosar() {
3075+
REDIRECT;
3076+
const char *const argv[] = { "cppcheck", "--report-type=autosar", "file.cpp" };
3077+
ASSERT_EQUALS_ENUM(CmdLineParser::Result::Success, parser->parseFromArgs(3, argv));
3078+
ASSERT_EQUALS_ENUM(checkers::ReportType::autosar, settings->reportType);
3079+
}
3080+
3081+
void reportTypeCertCpp() {
3082+
REDIRECT;
3083+
const char *const argv[] = { "cppcheck", "--report-type=certCpp", "file.cpp" };
3084+
ASSERT_EQUALS_ENUM(CmdLineParser::Result::Success, parser->parseFromArgs(3, argv));
3085+
ASSERT_EQUALS_ENUM(checkers::ReportType::certCpp, settings->reportType);
3086+
}
3087+
3088+
void reportTypeCertC() {
3089+
REDIRECT;
3090+
const char *const argv[] = { "cppcheck", "--report-type=certC", "file.cpp" };
3091+
ASSERT_EQUALS_ENUM(CmdLineParser::Result::Success, parser->parseFromArgs(3, argv));
3092+
ASSERT_EQUALS_ENUM(checkers::ReportType::certC, settings->reportType);
3093+
}
3094+
3095+
void reportTypeMisraC() {
3096+
REDIRECT;
3097+
const char *const argv[] = { "cppcheck", "--report-type=misraC", "file.cpp" };
3098+
ASSERT_EQUALS_ENUM(CmdLineParser::Result::Success, parser->parseFromArgs(3, argv));
3099+
ASSERT_EQUALS_ENUM(checkers::ReportType::misraC, settings->reportType);
3100+
}
3101+
3102+
void reportTypeMisraCpp2008() {
3103+
REDIRECT;
3104+
const char *const argv[] = { "cppcheck", "--report-type=misraCpp2008", "file.cpp" };
3105+
ASSERT_EQUALS_ENUM(CmdLineParser::Result::Success, parser->parseFromArgs(3, argv));
3106+
ASSERT_EQUALS_ENUM(checkers::ReportType::misraCpp2008, settings->reportType);
3107+
}
3108+
3109+
void reportTypeMisraCpp2023() {
3110+
REDIRECT;
3111+
const char *const argv[] = { "cppcheck", "--report-type=misraCpp2023", "file.cpp" };
3112+
ASSERT_EQUALS_ENUM(CmdLineParser::Result::Success, parser->parseFromArgs(3, argv));
3113+
ASSERT_EQUALS_ENUM(checkers::ReportType::misraCpp2023, settings->reportType);
3114+
}
3115+
3116+
void invalidReportType() {
3117+
REDIRECT;
3118+
const char *const argv[] = { "cppcheck", "--report-type=invalid", "file.cpp" };
3119+
ASSERT_EQUALS_ENUM(CmdLineParser::Result::Fail, parser->parseFromArgs(3, argv));
3120+
ASSERT_EQUALS("cppcheck: error: Unknown report type 'invalid'\n", logger->str());
3121+
}
30653122
};
30663123

30673124
REGISTER_TEST(TestCmdlineParser)

0 commit comments

Comments
 (0)