From e162775bdebfa240f1c683b120f537b7451efdc8 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 18 Sep 2020 16:41:49 +0200 Subject: [PATCH] C++ Unit test: Fix diagnostics export test on Windows The file offsets are different because of CRLF line endings. Change-Id: Ice859f3b279651b61d147bdd963f62897b090e47 Reviewed-by: Christian Stenger --- .../clang-analyzer.dividezero_win.yaml | 23 +++++++++++++++++++ .../clang.unused-parameter_win.yaml | 10 ++++++++ .../data/clangtools/clazy.qgetenv_win.yaml | 17 ++++++++++++++ .../tidy.modernize-use-nullptr_win.yaml | 14 +++++++++++ .../unittest/readexporteddiagnostics-test.cpp | 20 ++++++++++++---- 5 files changed, 80 insertions(+), 4 deletions(-) create mode 100644 tests/unit/unittest/data/clangtools/clang-analyzer.dividezero_win.yaml create mode 100644 tests/unit/unittest/data/clangtools/clang.unused-parameter_win.yaml create mode 100644 tests/unit/unittest/data/clangtools/clazy.qgetenv_win.yaml create mode 100644 tests/unit/unittest/data/clangtools/tidy.modernize-use-nullptr_win.yaml diff --git a/tests/unit/unittest/data/clangtools/clang-analyzer.dividezero_win.yaml b/tests/unit/unittest/data/clangtools/clang-analyzer.dividezero_win.yaml new file mode 100644 index 00000000000..d54844d25cf --- /dev/null +++ b/tests/unit/unittest/data/clangtools/clang-analyzer.dividezero_win.yaml @@ -0,0 +1,23 @@ +--- +MainSourceFile: 'FILE_PATH' +Diagnostics: + - DiagnosticName: clang-analyzer-core.DivideZero + DiagnosticMessage: + Message: Division by zero + FilePath: 'FILE_PATH' + FileOffset: 183 + Replacements: [] + Notes: + - Message: 'Assuming ''z'' is equal to 0' + FilePath: 'FILE_PATH' + FileOffset: 160 + Replacements: [] + - Message: Taking true branch + FilePath: 'FILE_PATH' + FileOffset: 156 + Replacements: [] + - Message: Division by zero + FilePath: 'FILE_PATH' + FileOffset: 183 + Replacements: [] +... diff --git a/tests/unit/unittest/data/clangtools/clang.unused-parameter_win.yaml b/tests/unit/unittest/data/clangtools/clang.unused-parameter_win.yaml new file mode 100644 index 00000000000..5dace9ea059 --- /dev/null +++ b/tests/unit/unittest/data/clangtools/clang.unused-parameter_win.yaml @@ -0,0 +1,10 @@ +--- +MainSourceFile: 'FILE_PATH' +Diagnostics: + - DiagnosticName: clang-diagnostic-unused-parameter + DiagnosticMessage: + Message: 'unused parameter ''g''' + FilePath: 'FILE_PATH' + FileOffset: 156 + Replacements: [] +... diff --git a/tests/unit/unittest/data/clangtools/clazy.qgetenv_win.yaml b/tests/unit/unittest/data/clangtools/clazy.qgetenv_win.yaml new file mode 100644 index 00000000000..c80a701373b --- /dev/null +++ b/tests/unit/unittest/data/clangtools/clazy.qgetenv_win.yaml @@ -0,0 +1,17 @@ +--- +MainSourceFile: 'FILE_PATH' +Diagnostics: + - DiagnosticName: clazy-qgetenv + Message: 'qgetenv().isEmpty() allocates. Use qEnvironmentVariableIsEmpty() instead' + FileOffset: 156 + FilePath: 'FILE_PATH' + Replacements: + - FilePath: 'FILE_PATH' + Offset: 156 + Length: 7 + ReplacementText: qEnvironmentVariableIsEmpty + - FilePath: 'FILE_PATH' + Offset: 169 + Length: 11 + ReplacementText: ')' +... diff --git a/tests/unit/unittest/data/clangtools/tidy.modernize-use-nullptr_win.yaml b/tests/unit/unittest/data/clangtools/tidy.modernize-use-nullptr_win.yaml new file mode 100644 index 00000000000..c6bb6766adb --- /dev/null +++ b/tests/unit/unittest/data/clangtools/tidy.modernize-use-nullptr_win.yaml @@ -0,0 +1,14 @@ +--- +MainSourceFile: 'FILE_PATH' +Diagnostics: + - DiagnosticName: modernize-use-nullptr + DiagnosticMessage: + Message: use nullptr + FilePath: 'FILE_PATH' + FileOffset: 151 + Replacements: + - FilePath: 'FILE_PATH' + Offset: 151 + Length: 1 + ReplacementText: nullptr +... diff --git a/tests/unit/unittest/readexporteddiagnostics-test.cpp b/tests/unit/unittest/readexporteddiagnostics-test.cpp index cc52c51450a..f62727a6175 100644 --- a/tests/unit/unittest/readexporteddiagnostics-test.cpp +++ b/tests/unit/unittest/readexporteddiagnostics-test.cpp @@ -101,10 +101,18 @@ TEST_F(ReadExportedDiagnostics, UnexpectedFileContents) ASSERT_THAT(diags, IsEmpty()); } +static QString appendYamlSuffix(const char *filePathFragment) +{ + const QString yamlSuffix = QLatin1String(Utils::HostOsInfo::isWindowsHost() + ? "_win.yaml" : ".yaml"); + return filePathFragment + yamlSuffix; +} + TEST_F(ReadExportedDiagnostics, Tidy) { const QString sourceFile = TESTDATA "tidy.modernize-use-nullptr.cpp"; - const QString exportedFile = createFile(TESTDATA "tidy.modernize-use-nullptr.yaml", sourceFile); + const QString exportedFile = createFile(appendYamlSuffix(TESTDATA "tidy.modernize-use-nullptr"), + sourceFile); Diagnostic expectedDiag; expectedDiag.name = "modernize-use-nullptr"; expectedDiag.location = {sourceFile, 2, 25}; @@ -142,7 +150,10 @@ TEST_F(ReadExportedDiagnostics, AcceptDiagsFromFilePaths_None) TEST_F(ReadExportedDiagnostics, Tidy_Clang) { const QString sourceFile = TESTDATA "clang.unused-parameter.cpp"; - const QString exportedFile = createFile(TESTDATA "clang.unused-parameter.yaml", sourceFile); + const QString yamlSuffix + = QLatin1String(Utils::HostOsInfo::isWindowsHost() ? "_win.yaml" : ".yaml"); + const QString exportedFile = createFile(appendYamlSuffix(TESTDATA "clang.unused-parameter"), + sourceFile); Diagnostic expectedDiag; expectedDiag.name = "clang-diagnostic-unused-parameter"; expectedDiag.location = {sourceFile, 4, 12}; @@ -162,7 +173,8 @@ TEST_F(ReadExportedDiagnostics, Tidy_Clang) TEST_F(ReadExportedDiagnostics, Tidy_ClangAnalyzer) { const QString sourceFile = TESTDATA "clang-analyzer.dividezero.cpp"; - const QString exportedFile = createFile(TESTDATA "clang-analyzer.dividezero.yaml", sourceFile); + const QString exportedFile = createFile(appendYamlSuffix(TESTDATA "clang-analyzer.dividezero"), + sourceFile); Diagnostic expectedDiag; expectedDiag.name = "clang-analyzer-core.DivideZero"; expectedDiag.location = {sourceFile, 4, 15}; @@ -198,7 +210,7 @@ TEST_F(ReadExportedDiagnostics, Tidy_ClangAnalyzer) TEST_F(ReadExportedDiagnostics, Clazy) { const QString sourceFile = TESTDATA "clazy.qgetenv.cpp"; - const QString exportedFile = createFile(TESTDATA "clazy.qgetenv.yaml", sourceFile); + const QString exportedFile = createFile(appendYamlSuffix(TESTDATA "clazy.qgetenv"), sourceFile); Diagnostic expectedDiag; expectedDiag.name = "clazy-qgetenv"; expectedDiag.location = {sourceFile, 7, 5};