summaryrefslogtreecommitdiff
path: root/tests/unit
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2016-01-25 16:38:28 +0100
committerNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2016-02-25 13:31:15 +0000
commitb2397b6b4faeca5e768bc68a3346fff9d04704f7 (patch)
tree46c2e5d4c969bd1b82dd59ff32294887e2ef9e83 /tests/unit
parent817f12fddd7a96333b695ec981d30e1bf6abc810 (diff)
downloadqt-creator-b2397b6b4faeca5e768bc68a3346fff9d04704f7.tar.gz
Clang: Ignore certain warnings in header files
We already had this workarounded, but it got lost in the refactorings. Task-number: QTCREATORBUG-12067 Change-Id: Ie01f9d41f25d17d1b595204748634bc87ef44378 Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com> Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Diffstat (limited to 'tests/unit')
-rw-r--r--tests/unit/unittest/clangdiagnosticfiltertest.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/unit/unittest/clangdiagnosticfiltertest.cpp b/tests/unit/unittest/clangdiagnosticfiltertest.cpp
index 99be0359fe..31b7588aa1 100644
--- a/tests/unit/unittest/clangdiagnosticfiltertest.cpp
+++ b/tests/unit/unittest/clangdiagnosticfiltertest.cpp
@@ -64,6 +64,7 @@ DiagnosticContainer createDiagnostic(const QString &text,
);
}
+const QString mainFileHeaderPath = QString::fromUtf8(TESTDATA_DIR "/someHeader.h");
const QString mainFilePath = QString::fromUtf8(TESTDATA_DIR "/diagnostic_erroneous_source.cpp");
const QString includedFilePath = QString::fromUtf8(TESTDATA_DIR "/diagnostic_erroneous_header.cpp");
@@ -91,6 +92,22 @@ DiagnosticContainer warningFromMainFile()
mainFilePath);
}
+DiagnosticContainer pragmaOnceWarningInHeader()
+{
+ return createDiagnostic(
+ QStringLiteral("warning: #pragma once in main file"),
+ ClangBackEnd::DiagnosticSeverity::Warning,
+ mainFileHeaderPath);
+}
+
+DiagnosticContainer includeNextInPrimarySourceFileWarningInHeader()
+{
+ return createDiagnostic(
+ QStringLiteral("warning: #include_next in primary source file"),
+ ClangBackEnd::DiagnosticSeverity::Warning,
+ mainFileHeaderPath);
+}
+
DiagnosticContainer errorFromMainFile()
{
return createDiagnostic(
@@ -193,6 +210,16 @@ TEST_F(ClangDiagnosticFilter, WarningsAreEmptyAfterTaking)
ASSERT_TRUE(clangDiagnosticFilter.takeWarnings().isEmpty());
}
+TEST_F(ClangDiagnosticFilter, IgnoreCertainWarningsInHeaderFiles)
+{
+ ClangCodeModel::Internal::ClangDiagnosticFilter myClangDiagnosticFilter{mainFileHeaderPath};
+
+ myClangDiagnosticFilter.filter({pragmaOnceWarningInHeader(),
+ includeNextInPrimarySourceFileWarningInHeader()});
+
+ ASSERT_TRUE(myClangDiagnosticFilter.takeWarnings().isEmpty());
+}
+
TEST_F(ClangDiagnosticFilter, ErrorsAreEmptyAfterTaking)
{
clangDiagnosticFilter.filter({errorFromMainFile()});