@@ -300,10 +300,14 @@ class TestCmdlineParser : public TestFixture {
300300 TEST_CASE (suppressionsNoFile1);
301301 TEST_CASE (suppressionsNoFile2);
302302 TEST_CASE (suppressionsNoFile3);
303- TEST_CASE (suppressionSingle);
304- TEST_CASE (suppressionSingleFile);
305- TEST_CASE (suppressionTwo);
306- TEST_CASE (suppressionTwoSeparate);
303+ TEST_CASE (suppressSingle);
304+ TEST_CASE (suppressSingleFile);
305+ TEST_CASE (suppressTwo);
306+ TEST_CASE (suppressTwoSeparate);
307+ TEST_CASE (exitcodeSuppressSingle);
308+ TEST_CASE (exitcodeSuppressSingleFile);
309+ TEST_CASE (exitcodeSuppressTwo);
310+ TEST_CASE (exitcodeSuppressTwoSeparate);
307311 TEST_CASE (templates);
308312 TEST_CASE (templatesGcc);
309313 TEST_CASE (templatesVs);
@@ -1956,37 +1960,64 @@ class TestCmdlineParser : public TestFixture {
19561960 return e;
19571961 }
19581962
1959- void suppressionSingle () {
1963+ void suppressSingle () {
19601964 REDIRECT;
19611965 const char * const argv[] = {" cppcheck" , " --suppress=uninitvar" , " file.cpp" };
19621966 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
19631967 ASSERT_EQUALS (true , supprs->nomsg .isSuppressed (errorMessage (" uninitvar" , " file.cpp" , 1 )));
19641968 }
19651969
1966- void suppressionSingleFile () {
1970+ void suppressSingleFile () {
19671971 REDIRECT;
19681972 const char * const argv[] = {" cppcheck" , " --suppress=uninitvar:file.cpp" , " file.cpp" };
19691973 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
19701974 ASSERT_EQUALS (true , supprs->nomsg .isSuppressed (errorMessage (" uninitvar" , " file.cpp" , 1U )));
19711975 }
19721976
1973- void suppressionTwo () {
1977+ void suppressTwo () {
19741978 REDIRECT;
19751979 const char * const argv[] = {" cppcheck" , " --suppress=uninitvar,noConstructor" , " file.cpp" };
1976- TODO_ASSERT_EQUALS (static_cast <int >(CmdLineParser::Result::Success), static_cast <int >(CmdLineParser::Result::Fail), static_cast <int >(parseFromArgs (argv)));
1977- TODO_ASSERT_EQUALS (true , false , supprs->nomsg .isSuppressed (errorMessage (" uninitvar" , " file.cpp" , 1U )));
1978- TODO_ASSERT_EQUALS (true , false , supprs->nomsg .isSuppressed (errorMessage (" noConstructor" , " file.cpp" , 1U )));
1979- TODO_ASSERT_EQUALS (" " , " cppcheck: error: Failed to add suppression. Invalid id \" uninitvar,noConstructor\"\n " , logger->str ());
1980+ ASSERT_EQUALS_ENUM (CmdLineParser::Result::Fail, parseFromArgs (argv));
1981+ ASSERT_EQUALS (" cppcheck: error: Failed to add suppression. Invalid id \" uninitvar,noConstructor\"\n " , logger->str ());
19801982 }
19811983
1982- void suppressionTwoSeparate () {
1984+ void suppressTwoSeparate () {
19831985 REDIRECT;
19841986 const char * const argv[] = {" cppcheck" , " --suppress=uninitvar" , " --suppress=noConstructor" , " file.cpp" };
19851987 ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
19861988 ASSERT_EQUALS (true , supprs->nomsg .isSuppressed (errorMessage (" uninitvar" , " file.cpp" , 1U )));
19871989 ASSERT_EQUALS (true , supprs->nomsg .isSuppressed (errorMessage (" noConstructor" , " file.cpp" , 1U )));
19881990 }
19891991
1992+ void exitcodeSuppressSingle () {
1993+ REDIRECT;
1994+ const char * const argv[] = {" cppcheck" , " --exitcode-suppress=uninitvar" , " file.cpp" };
1995+ ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
1996+ ASSERT_EQUALS (true , supprs->nofail .isSuppressed (errorMessage (" uninitvar" , " file.cpp" , 1 )));
1997+ }
1998+
1999+ void exitcodeSuppressSingleFile () {
2000+ REDIRECT;
2001+ const char * const argv[] = {" cppcheck" , " --exitcode-suppress=uninitvar:file.cpp" , " file.cpp" };
2002+ ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
2003+ ASSERT_EQUALS (true , supprs->nofail .isSuppressed (errorMessage (" uninitvar" , " file.cpp" , 1U )));
2004+ }
2005+
2006+ void exitcodeSuppressTwo () {
2007+ REDIRECT;
2008+ const char * const argv[] = {" cppcheck" , " --exitcode-suppress=uninitvar,noConstructor" , " file.cpp" };
2009+ ASSERT_EQUALS_ENUM (CmdLineParser::Result::Fail, parseFromArgs (argv));
2010+ ASSERT_EQUALS (" cppcheck: error: Failed to add suppression. Invalid id \" uninitvar,noConstructor\"\n " , logger->str ());
2011+ }
2012+
2013+ void exitcodeSuppressTwoSeparate () {
2014+ REDIRECT;
2015+ const char * const argv[] = {" cppcheck" , " --exitcode-suppress=uninitvar" , " --suppress=noConstructor" , " file.cpp" };
2016+ ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
2017+ ASSERT_EQUALS (true , supprs->nofail .isSuppressed (errorMessage (" uninitvar" , " file.cpp" , 1U )));
2018+ TODO_ASSERT_EQUALS (true , false , supprs->nofail .isSuppressed (errorMessage (" noConstructor" , " file.cpp" , 1U )));
2019+ }
2020+
19902021 void templates () {
19912022 REDIRECT;
19922023 const char * const argv[] = {" cppcheck" , " --template={file}:{line},{severity},{id},{message}" , " --template-location={file}:{line}:{column} {info}" , " file.cpp" };
0 commit comments