@@ -304,6 +304,10 @@ class TestCmdlineParser : public TestFixture {
304304 TEST_CASE (suppressSingleFile);
305305 TEST_CASE (suppressTwo);
306306 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);
@@ -1985,6 +1989,35 @@ class TestCmdlineParser : public TestFixture {
19851989 ASSERT_EQUALS (true , supprs->nomsg .isSuppressed (errorMessage (" noConstructor" , " file.cpp" , 1U )));
19861990 }
19871991
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" , " --exitcode-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+ ASSERT_EQUALS (true , supprs->nofail .isSuppressed (errorMessage (" noConstructor" , " file.cpp" , 1U )));
2019+ }
2020+
19882021 void templates () {
19892022 REDIRECT;
19902023 const char * const argv[] = {" cppcheck" , " --template={file}:{line},{severity},{id},{message}" , " --template-location={file}:{line}:{column} {info}" , " file.cpp" };
0 commit comments