@@ -447,6 +447,14 @@ class TestCmdlineParser : public TestFixture {
447
447
TEST_CASE (noCppcheckBuildDir2);
448
448
449
449
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);
450
458
}
451
459
452
460
void nooptions () {
@@ -3062,6 +3070,55 @@ class TestCmdlineParser : public TestFixture {
3062
3070
ASSERT_EQUALS_ENUM (CmdLineParser::Result::Fail, parser->parseFromArgs (2 , argv));
3063
3071
ASSERT_EQUALS (" cppcheck: error: could not load cppcheck.cfg - not a valid JSON - syntax error at line 2 near: \n " , logger->str ());
3064
3072
}
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
+ }
3065
3122
};
3066
3123
3067
3124
REGISTER_TEST (TestCmdlineParser)
0 commit comments