xref: /llvm-project/clang/test/Format/clang-format-ignore.cpp (revision efd8938d575d1f8058bfe220e4c672d969c82be0)
109308122SOwen Pan // RUN: rm -rf %t.dir
209308122SOwen Pan // RUN: mkdir -p %t.dir/level1/level2
309308122SOwen Pan 
409308122SOwen Pan // RUN: cd %t.dir
509308122SOwen Pan // RUN: echo "*" > .clang-format-ignore
609308122SOwen Pan // RUN: echo "level*/*.c*" >> .clang-format-ignore
709308122SOwen Pan // RUN: echo "*/*2/foo.*" >> .clang-format-ignore
809308122SOwen Pan // RUN: touch foo.cc
9d3ac676eSOwen Pan // RUN: clang-format -verbose .clang-format-ignore foo.cc 2>&1 \
10d3ac676eSOwen Pan // RUN:   | FileCheck %s -allow-empty
1109308122SOwen Pan 
1209308122SOwen Pan // RUN: cd level1
1309308122SOwen Pan // RUN: touch bar.cc baz.c
14d3ac676eSOwen Pan // RUN: clang-format -verbose bar.cc baz.c 2>&1 | FileCheck %s -allow-empty
1509308122SOwen Pan 
1609308122SOwen Pan // RUN: cd level2
1709308122SOwen Pan // RUN: touch foo.c foo.js
18d3ac676eSOwen Pan // RUN: clang-format -verbose foo.c foo.js 2>&1 | FileCheck %s -allow-empty
19d3ac676eSOwen Pan 
20d3ac676eSOwen Pan // CHECK-NOT: Formatting
2109308122SOwen Pan 
2209308122SOwen Pan // RUN: touch .clang-format-ignore
23d3ac676eSOwen Pan // RUN: clang-format -verbose foo.c foo.js 2>&1 \
24d3ac676eSOwen Pan // RUN:   | FileCheck %s -check-prefix=CHECK2 -match-full-lines
25d3ac676eSOwen Pan // CHECK2: Formatting [1/2] foo.c
26d3ac676eSOwen Pan // CHECK2-NEXT: Formatting [2/2] foo.js
2709308122SOwen Pan 
2809308122SOwen Pan // RUN: echo "*.js" > .clang-format-ignore
29d3ac676eSOwen Pan // RUN: clang-format -verbose foo.c foo.js 2>&1 \
30d3ac676eSOwen Pan // RUN:   | FileCheck %s -check-prefix=CHECK3 -match-full-lines
31d3ac676eSOwen Pan // CHECK3: Formatting [1/2] foo.c
32d3ac676eSOwen Pan // CHECK3-NOT: foo.js
3309308122SOwen Pan 
34b53628a5SOwen Pan // RUN: cd ../..
35d3ac676eSOwen Pan // RUN: clang-format -verbose *.cc level1/*.c* level1/level2/foo.* 2>&1 \
36d3ac676eSOwen Pan // RUN:   | FileCheck %s -check-prefix=CHECK4 -match-full-lines
37d3ac676eSOwen Pan // CHECK4: {{Formatting \[1/5] .*foo\.c}}
38d3ac676eSOwen Pan // CHECK4-NOT: foo.js
39b53628a5SOwen Pan 
40b53628a5SOwen Pan // RUN: rm .clang-format-ignore
41d3ac676eSOwen Pan // RUN: clang-format -verbose *.cc level1/*.c* level1/level2/foo.* 2>&1 \
42d3ac676eSOwen Pan // RUN:   | FileCheck %s -check-prefix=CHECK5 -match-full-lines
43d3ac676eSOwen Pan // CHECK5: {{Formatting \[1/5] .*foo\.cc}}
44d3ac676eSOwen Pan // CHECK5-NEXT: {{Formatting \[2/5] .*bar\.cc}}
45d3ac676eSOwen Pan // CHECK5-NEXT: {{Formatting \[3/5] .*baz\.c}}
46d3ac676eSOwen Pan // CHECK5-NEXT: {{Formatting \[4/5] .*foo\.c}}
47d3ac676eSOwen Pan // CHECK5-NOT: foo.js
48b53628a5SOwen Pan 
49*efd8938dSkakkoko // RUN: echo "foo.*" > .clang-format-ignore
50*efd8938dSkakkoko // RUN: echo "int i ;" > foo.c
51*efd8938dSkakkoko // RUN: clang-format -assume-filename=foo.c < foo.c \
52*efd8938dSkakkoko // RUN:   | FileCheck %s -check-prefix=CHECK6 -allow-empty
53*efd8938dSkakkoko // CHECK6-NOT: int
54*efd8938dSkakkoko 
55*efd8938dSkakkoko // RUN: clang-format -assume-filename=bar.c < foo.c \
56*efd8938dSkakkoko // RUN:   | FileCheck %s -check-prefix=CHECK7 -match-full-lines
57*efd8938dSkakkoko // CHECK7: int i;
58*efd8938dSkakkoko 
59b53628a5SOwen Pan // RUN: cd ..
60b53628a5SOwen Pan // RUN: rm -r %t.dir
61