diff options
Diffstat (limited to 'clang-tools-extra/test')
6 files changed, 45 insertions, 0 deletions
diff --git a/clang-tools-extra/test/CMakeLists.txt b/clang-tools-extra/test/CMakeLists.txt index ac8d459b399..d28502ed12b 100644 --- a/clang-tools-extra/test/CMakeLists.txt +++ b/clang-tools-extra/test/CMakeLists.txt @@ -62,6 +62,8 @@ set(CLANG_TOOLS_TEST_DEPS clang-resource-headers clang-tidy + # Clang-tidy tests need clang for building modules. + clang ) if(CLANGD_BUILD_XPC_SUPPORT) diff --git a/clang-tools-extra/test/clang-tidy/Inputs/expand-modular-headers-ppcallbacks/a.h b/clang-tools-extra/test/clang-tidy/Inputs/expand-modular-headers-ppcallbacks/a.h new file mode 100644 index 00000000000..6651b4fa913 --- /dev/null +++ b/clang-tools-extra/test/clang-tidy/Inputs/expand-modular-headers-ppcallbacks/a.h @@ -0,0 +1 @@ +#define a diff --git a/clang-tools-extra/test/clang-tidy/Inputs/expand-modular-headers-ppcallbacks/b.h b/clang-tools-extra/test/clang-tidy/Inputs/expand-modular-headers-ppcallbacks/b.h new file mode 100644 index 00000000000..446eda1abd0 --- /dev/null +++ b/clang-tools-extra/test/clang-tidy/Inputs/expand-modular-headers-ppcallbacks/b.h @@ -0,0 +1,2 @@ +#include "a.h" +#define b diff --git a/clang-tools-extra/test/clang-tidy/Inputs/expand-modular-headers-ppcallbacks/c.h b/clang-tools-extra/test/clang-tidy/Inputs/expand-modular-headers-ppcallbacks/c.h new file mode 100644 index 00000000000..0d4c60df04b --- /dev/null +++ b/clang-tools-extra/test/clang-tidy/Inputs/expand-modular-headers-ppcallbacks/c.h @@ -0,0 +1,2 @@ +#include "b.h" +#define c diff --git a/clang-tools-extra/test/clang-tidy/Inputs/expand-modular-headers-ppcallbacks/module.modulemap b/clang-tools-extra/test/clang-tidy/Inputs/expand-modular-headers-ppcallbacks/module.modulemap new file mode 100644 index 00000000000..d04240aff35 --- /dev/null +++ b/clang-tools-extra/test/clang-tidy/Inputs/expand-modular-headers-ppcallbacks/module.modulemap @@ -0,0 +1,3 @@ +module a { header "a.h" export * } +module b { header "b.h" export * use a } +module c { header "c.h" export * use b } diff --git a/clang-tools-extra/test/clang-tidy/expand-modular-headers-ppcallbacks.cpp b/clang-tools-extra/test/clang-tidy/expand-modular-headers-ppcallbacks.cpp new file mode 100644 index 00000000000..d191922de27 --- /dev/null +++ b/clang-tools-extra/test/clang-tidy/expand-modular-headers-ppcallbacks.cpp @@ -0,0 +1,35 @@ +// Sanity-check. Run without modules: +// RUN: rm -rf %t +// RUN: mkdir %t +// RUN: cp %S/Inputs/expand-modular-headers-ppcallbacks/* %t/ +// RUN: %check_clang_tidy %s readability-identifier-naming %t/without-modules -- \ +// RUN: -config="CheckOptions: [{ \ +// RUN: key: readability-identifier-naming.MacroDefinitionCase, value: UPPER_CASE }]" \ +// RUN: -header-filter=.* \ +// RUN: -- -x c++ -std=c++11 -I%t/ +// +// Run clang-tidy on a file with modular includes: +// +// RUN: rm -rf %t +// RUN: mkdir %t +// RUN: cp %S/Inputs/expand-modular-headers-ppcallbacks/* %t/ +// RUN: %check_clang_tidy %s readability-identifier-naming %t/with-modules -- \ +// RUN: -config="CheckOptions: [{ \ +// RUN: key: readability-identifier-naming.MacroDefinitionCase, value: UPPER_CASE }]" \ +// RUN: -header-filter=.* \ +// RUN: -- -x c++ -std=c++11 -I%t/ \ +// RUN: -fmodules -fimplicit-modules -fno-implicit-module-maps \ +// RUN: -fmodule-map-file=%t/module.modulemap \ +// RUN: -fmodules-cache-path=%t/module-cache/ +#include "c.h" + +// CHECK-MESSAGES: a.h:1:9: warning: invalid case style for macro definition 'a' [readability-identifier-naming] +// CHECK-MESSAGES: a.h:1:9: note: FIX-IT applied suggested code changes +// CHECK-MESSAGES: b.h:2:9: warning: invalid case style for macro definition 'b' +// CHECK-MESSAGES: b.h:2:9: note: FIX-IT applied suggested code changes +// CHECK-MESSAGES: c.h:2:9: warning: invalid case style for macro definition 'c' +// CHECK-MESSAGES: c.h:2:9: note: FIX-IT applied suggested code changes + +#define m +// CHECK-MESSAGES: :[[@LINE-1]]:9: warning: invalid case style for macro definition 'm' +// CHECK-MESSAGES: :[[@LINE-2]]:9: note: FIX-IT applied suggested code changes |