xref: /llvm-project/clang-tools-extra/test/clang-tidy/checkers/llvm/include-order.cpp (revision 89a1d03e2b379e325daa5249411e414bbd995b5e)
1*89a1d03eSRichard // RUN: %check_clang_tidy %s llvm-include-order %t -- -- -isystem %clang_tidy_headers
2*89a1d03eSRichard 
3*89a1d03eSRichard // CHECK-MESSAGES: [[@LINE+2]]:1: warning: #includes are not sorted properly
4*89a1d03eSRichard #include "j.h"
5*89a1d03eSRichard #include "gtest/foo.h"
6*89a1d03eSRichard #include "gmock/foo.h"
7*89a1d03eSRichard #include "i.h"
8*89a1d03eSRichard #include <s.h>
9*89a1d03eSRichard #include <a.h>
10*89a1d03eSRichard #include "llvm/a.h"
11*89a1d03eSRichard #include "clang/b.h"
12*89a1d03eSRichard #include "clang-c/c.h" // hi
13*89a1d03eSRichard #include "llvm-c/d.h" // -c
14*89a1d03eSRichard 
15*89a1d03eSRichard // CHECK-FIXES: #include "j.h"
16*89a1d03eSRichard // CHECK-FIXES-NEXT: #include "i.h"
17*89a1d03eSRichard // CHECK-FIXES-NEXT: #include "clang-c/c.h" // hi
18*89a1d03eSRichard // CHECK-FIXES-NEXT: #include "clang/b.h"
19*89a1d03eSRichard // CHECK-FIXES-NEXT: #include "llvm-c/d.h" // -c
20*89a1d03eSRichard // CHECK-FIXES-NEXT: #include "llvm/a.h"
21*89a1d03eSRichard // CHECK-FIXES-NEXT: #include "gmock/foo.h"
22*89a1d03eSRichard // CHECK-FIXES-NEXT: #include "gtest/foo.h"
23*89a1d03eSRichard // CHECK-FIXES-NEXT: #include <a.h>
24*89a1d03eSRichard // CHECK-FIXES-NEXT: #include <s.h>
25*89a1d03eSRichard 
26*89a1d03eSRichard #include "b.h"
27*89a1d03eSRichard #ifdef FOO
28*89a1d03eSRichard #include "a.h"
29*89a1d03eSRichard #endif
30*89a1d03eSRichard 
31*89a1d03eSRichard // CHECK-FIXES: #include "b.h"
32*89a1d03eSRichard // CHECK-FIXES-NEXT: #ifdef FOO
33*89a1d03eSRichard // CHECK-FIXES-NEXT: #include "a.h"
34*89a1d03eSRichard // CHECK-FIXES-NEXT: #endif
35*89a1d03eSRichard 
36*89a1d03eSRichard // CHECK-MESSAGES: [[@LINE+1]]:1: warning: #includes are not sorted properly
37*89a1d03eSRichard #include "b.h"
38*89a1d03eSRichard #include "a.h"
39*89a1d03eSRichard 
40*89a1d03eSRichard // CHECK-FIXES: #include "a.h"
41*89a1d03eSRichard // CHECK-FIXES-NEXT: #include "b.h"
42*89a1d03eSRichard 
43*89a1d03eSRichard // CHECK-MESSAGES-NOT: [[@LINE+1]]:1: warning: #includes are not sorted properly
44*89a1d03eSRichard #include "cross-file-c.h"
45*89a1d03eSRichard // This line number should correspond to the position of the #include in cross-file-c.h
46*89a1d03eSRichard #include "cross-file-a.h"
47