diff --git a/cli/cppcheckexecutor.cpp b/cli/cppcheckexecutor.cpp index c2877a44d8a..86b4831b94c 100644 --- a/cli/cppcheckexecutor.cpp +++ b/cli/cppcheckexecutor.cpp @@ -532,6 +532,15 @@ void StdLogger::writeCheckersReport(const Suppressions& supprs) if (xmlReport) { reportErr(" \n"); + if (mSettings.safety) + reportErr(" \n"); + if (mSettings.inlineSuppressions) + reportErr(" \n"); + if (!suppressions.empty()) { + std::ostringstream suppressionsXml; + supprs.nomsg.dump(suppressionsXml); + reportErr(suppressionsXml.str()); + } reportErr(checkersReport.getXmlReport(mCriticalErrors)); } } diff --git a/test/cli/premium_test.py b/test/cli/premium_test.py index d0d50389b2a..55adf772467 100644 --- a/test/cli/premium_test.py +++ b/test/cli/premium_test.py @@ -55,6 +55,22 @@ def test_misra_c_builtin_style_checks(tmpdir): assert 'id="unusedVariable"' in stderr assert 'id="checkersReport"' not in stderr + exitcode, _, stderr = cppcheck(['--xml-version=3', test_file], cppcheck_exe=exe) + assert exitcode == 0 + assert '' in stderr + + exitcode, _, stderr = cppcheck(['--xml-version=3', '--premium=safety-off', test_file], cppcheck_exe=exe) + assert exitcode == 0 + assert '' not in stderr + + exitcode, _, stderr = cppcheck(['--xml-version=3', '--inline-suppr', test_file], cppcheck_exe=exe) + assert exitcode == 0 + assert '' in stderr + + exitcode, _, stderr = cppcheck(['--xml-version=3', '--suppress=foo', test_file], cppcheck_exe=exe) + assert exitcode == 0 + assert '' in stderr + def test_build_dir_hash_cppcheck_product(tmpdir): # 13644 - cppcheck build dir hashes should depend on the cppcheck version @@ -97,3 +113,4 @@ def _get_hash(s:str): assert hash1 != hash2 +