@@ -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);
@@ -1986,6 +1990,35 @@ class TestCmdlineParser : public TestFixture {
19861990 ASSERT_EQUALS (true , supprs->nomsg .isSuppressed (errorMessage (" noConstructor" , " file.cpp" , 1U )));
19871991 }
19881992
1993+ void exitcodeSuppressSingle () {
1994+ REDIRECT;
1995+ const char * const argv[] = {" cppcheck" , " --exitcode-suppress=uninitvar" , " file.cpp" };
1996+ ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
1997+ ASSERT_EQUALS (true , supprs->nofail .isSuppressed (errorMessage (" uninitvar" , " file.cpp" , 1 )));
1998+ }
1999+
2000+ void exitcodeSuppressSingleFile () {
2001+ REDIRECT;
2002+ const char * const argv[] = {" cppcheck" , " --exitcode-suppress=uninitvar:file.cpp" , " file.cpp" };
2003+ ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
2004+ ASSERT_EQUALS (true , supprs->nofail .isSuppressed (errorMessage (" uninitvar" , " file.cpp" , 1U )));
2005+ }
2006+
2007+ void exitcodeSuppressTwo () {
2008+ REDIRECT;
2009+ const char * const argv[] = {" cppcheck" , " --exitcode-suppress=uninitvar,noConstructor" , " file.cpp" };
2010+ ASSERT_EQUALS_ENUM (CmdLineParser::Result::Fail, parseFromArgs (argv));
2011+ ASSERT_EQUALS (" cppcheck: error: Failed to add suppression. Invalid id \" uninitvar,noConstructor\"\n " , logger->str ());
2012+ }
2013+
2014+ void exitcodeSuppressTwoSeparate () {
2015+ REDIRECT;
2016+ const char * const argv[] = {" cppcheck" , " --exitcode-suppress=uninitvar" , " --exitcode-suppress=noConstructor" , " file.cpp" };
2017+ ASSERT_EQUALS_ENUM (CmdLineParser::Result::Success, parseFromArgs (argv));
2018+ ASSERT_EQUALS (true , supprs->nofail .isSuppressed (errorMessage (" uninitvar" , " file.cpp" , 1U )));
2019+ ASSERT_EQUALS (true , supprs->nofail .isSuppressed (errorMessage (" noConstructor" , " file.cpp" , 1U )));
2020+ }
2021+
19892022 void templates () {
19902023 REDIRECT;
19912024 const char * const argv[] = {" cppcheck" , " --template={file}:{line},{severity},{id},{message}" , " --template-location={file}:{line}:{column} {info}" , " file.cpp" };
0 commit comments