summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/test/clang-tidy/fuchsia-restrict-system-includes-headers.cpp
diff options
context:
space:
mode:
authorJulie Hockett <juliehockett@google.com>2018-05-09 22:25:42 +0000
committerJulie Hockett <juliehockett@google.com>2018-05-09 22:25:42 +0000
commit06af01bbc23d422df3bbac82752b935fa217893d (patch)
tree631899d68ee85b2dad89bcb57ad88ab5a82d8d68 /clang-tools-extra/test/clang-tidy/fuchsia-restrict-system-includes-headers.cpp
parent4f729f6a67337f060bab519101c0a0081cae627f (diff)
downloadbcm5719-llvm-06af01bbc23d422df3bbac82752b935fa217893d.tar.gz
bcm5719-llvm-06af01bbc23d422df3bbac82752b935fa217893d.zip
[clang-tidy] Adding RestrictSystemIncludes check to Fuchsia module
Adding a check to restrict system includes to a whitelist. Given a list of includes that are explicitly allowed, the check issues a fixit to remove any system include not on that list from the source file. Differential Revision: https://reviews.llvm.org/D43778 llvm-svn: 331930
Diffstat (limited to 'clang-tools-extra/test/clang-tidy/fuchsia-restrict-system-includes-headers.cpp')
-rw-r--r--clang-tools-extra/test/clang-tidy/fuchsia-restrict-system-includes-headers.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/clang-tools-extra/test/clang-tidy/fuchsia-restrict-system-includes-headers.cpp b/clang-tools-extra/test/clang-tidy/fuchsia-restrict-system-includes-headers.cpp
new file mode 100644
index 00000000000..895a3478b38
--- /dev/null
+++ b/clang-tools-extra/test/clang-tidy/fuchsia-restrict-system-includes-headers.cpp
@@ -0,0 +1,20 @@
+// RUN: cp -r %S/Inputs/fuchsia-restrict-system-includes %T/Inputs
+// RUN: %check_clang_tidy %s fuchsia-restrict-system-includes %t \
+// RUN: -- -config="{CheckOptions: [{key: fuchsia-restrict-system-includes.Includes, value: 'transitive.h;s.h'}]}" \
+// RUN: -system-headers -header-filter=.* \
+// RUN: -- -std=c++11 -I %T/Inputs/fuchsia-restrict-system-includes -isystem %T/Inputs/fuchsia-restrict-system-includes/system
+// RUN: FileCheck -input-file=%T/Inputs/transitive2.h %s -check-prefix=CHECK-HEADER-FIXES
+
+// transitive.h includes <r.h> and <t.h>
+#include <transitive.h>
+// CHECK-MESSAGES: :1:1: warning: system include r.h not allowed, transitively included from {{(.*\/)*}}Inputs/fuchsia-restrict-system-includes/system/transitive.h
+// CHECK-MESSAGES: :2:1: warning: system include t.h not allowed, transitively included from {{(.*\/)*}}Inputs/fuchsia-restrict-system-includes/system/transitive.h
+
+// transitive.h includes <s.h> and <t.h>
+#include "transitive2.h"
+// CHECK-MESSAGES: :2:1: warning: system include t.h not allowed, transitively included from {{(.*\/)*}}Inputs/fuchsia-restrict-system-includes/transitive2.h
+// CHECK-HEADER-FIXES-NOT: #include <t.h>
+
+int main() {
+ // f() is declared in r.h
+}
OpenPOWER on IntegriCloud