189a1d03eSRichard // RUN: rm -rf %T/Headers 289a1d03eSRichard // RUN: mkdir %T/Headers 389a1d03eSRichard // RUN: cp -r %S/Inputs/restrict-system-includes %T/Headers/portability-restrict-system-includes 489a1d03eSRichard // RUN: %check_clang_tidy -std=c++11 %s portability-restrict-system-includes %t \ 5*e8a3ddafSNathan James // RUN: -- -config="{CheckOptions: {portability-restrict-system-includes.Includes: 'transitive.h,s.h'}}" \ 689a1d03eSRichard // RUN: -system-headers -header-filter=.* \ 789a1d03eSRichard // RUN: -- -I %T/Headers/portability-restrict-system-includes -isystem %T/Headers/portability-restrict-system-includes/system 889a1d03eSRichard // RUN: FileCheck -input-file=%T/Headers/portability-restrict-system-includes/transitive2.h %s -check-prefix=CHECK-FIXES 989a1d03eSRichard // RUN: rm -rf %T/Headers 1089a1d03eSRichard // FIXME: Make the test work in all language modes. 1189a1d03eSRichard 1289a1d03eSRichard // transitive.h includes <r.h> and <t.h> 1389a1d03eSRichard #include <transitive.h> 1489a1d03eSRichard // CHECK-MESSAGES: :1:1: warning: system include r.h not allowed, transitively included from {{.*}} 1589a1d03eSRichard // CHECK-MESSAGES: :2:1: warning: system include t.h not allowed, transitively included from {{.*}} 1689a1d03eSRichard 1789a1d03eSRichard // transitive.h includes <s.h> and <t.h> 1889a1d03eSRichard #include "transitive2.h" 1989a1d03eSRichard // CHECK-MESSAGES: :2:1: warning: system include t.h not allowed, transitively included from {{.*}} 2089a1d03eSRichard // CHECK-FIXES-NOT: #include <t.h> 2189a1d03eSRichard main()2289a1d03eSRichardint main() { 2389a1d03eSRichard // f() is declared in r.h 2489a1d03eSRichard } 25