@@ -79,6 +79,7 @@ class TestImportProject : public TestFixture {
7979 TEST_CASE (importCompileCommandsDirectoryMissing); // 'directory' field missing
8080 TEST_CASE (importCompileCommandsDirectoryInvalid); // 'directory' field not a string
8181 TEST_CASE (importCppcheckGuiProject);
82+ TEST_CASE (importCppcheckGuiProjectDuplicateSuppressions);
8283 TEST_CASE (importCppcheckGuiProjectPremiumMisra);
8384 TEST_CASE (ignorePaths);
8485 TEST_CASE (testVcxprojUnicode);
@@ -536,6 +537,26 @@ class TestImportProject : public TestFixture {
536537 ASSERT_EQUALS (true , s.inlineSuppressions );
537538 }
538539
540+ void importCppcheckGuiProjectDuplicateSuppressions () const {
541+ REDIRECT ;
542+ constexpr char xml[] = " <?xml version=\" 1.0\" encoding=\" UTF-8\" ?>\n "
543+ " <project version=\" 1\" >\n "
544+ " <root name=\" .\" />\n "
545+ " <project-name>test test</project-name>\n "
546+ " <suppressions>\n "
547+ " <suppression>uninitvar</suppression>\n "
548+ " <suppression>uninitvar</suppression>\n "
549+ " </suppressions>\n "
550+ " </project>\n " ;
551+ std::istringstream istr (xml);
552+ Settings s;
553+ Suppressions supprs;
554+ TestImporter project;
555+ ASSERT_EQUALS (false , project.importCppcheckGuiProject (istr, s, supprs));
556+ ASSERT_EQUALS (1 , project.errors .size ());
557+ ASSERT_EQUALS (" suppression 'uninitvar' already exists" , project.errors [0 ]);
558+ }
559+
539560 void importCppcheckGuiProjectPremiumMisra () const {
540561 REDIRECT ;
541562 constexpr char xml[] = " <?xml version=\" 1.0\" encoding=\" UTF-8\" ?>\n "
0 commit comments