Skip to content

Commit 052da73

Browse files
committed
[clang] [test] Use --implicit-check-not in config-file3 tests
Thanks to Fangrui Song for the suggestion.
1 parent e150086 commit 052da73

File tree

1 file changed

+26
-68
lines changed

1 file changed

+26
-68
lines changed

clang/test/Driver/config-file3.c

Lines changed: 26 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -50,48 +50,43 @@
5050
// RUN: touch %t/testdmode/clang++.cfg
5151
// RUN: touch %t/testdmode/clang-g++.cfg
5252
// RUN: touch %t/testdmode/clang.cfg
53-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1
53+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1 --implicit-check-not 'Configuration file:'
5454
//
55-
// FULL1-NOT: Configuration file:
5655
// FULL1: Configuration file: {{.*}}/testdmode/x86_64-unknown-linux-gnu-clang++.cfg
57-
// FULL1-NOT: Configuration file:
5856

5957
//--- -m32 overrides triple.
6058
//
61-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ -m32 --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1-I386
59+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ -m32 --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1-I386 --implicit-check-not 'Configuration file:'
6260
//
63-
// FULL1-I386-NOT: Configuration file:
6461
// FULL1-I386: Configuration file: {{.*}}/testdmode/i386-unknown-linux-gnu-clang++.cfg
65-
// FULL1-I386-NOT: Configuration file:
6662

6763
//--- --target= also works for overriding triple.
6864
//
69-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --target=i386-unknown-linux-gnu --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1-I386
65+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --target=i386-unknown-linux-gnu --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1-I386 --implicit-check-not 'Configuration file:'
7066

7167
//--- With --target= + -m64, -m64 takes precedence.
7268
//
73-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --target=i386-unknown-linux-gnu -m64 --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1
69+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --target=i386-unknown-linux-gnu -m64 --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1 --implicit-check-not 'Configuration file:'
7470

7571
//--- i386 prefix also works for 32-bit.
7672
//
77-
// RUN: %t/testdmode/i386-unknown-linux-gnu-clang-g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1-I386
73+
// RUN: %t/testdmode/i386-unknown-linux-gnu-clang-g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1-I386 --implicit-check-not 'Configuration file:'
7874

7975
//--- i386 prefix + -m64 also works for 64-bit.
8076
//
81-
// RUN: %t/testdmode/i386-unknown-linux-gnu-clang-g++ -m64 --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1
77+
// RUN: %t/testdmode/i386-unknown-linux-gnu-clang-g++ -m64 --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1 --implicit-check-not 'Configuration file:'
8278

8379
//--- File specified by --config= is loaded after the one inferred from the executable.
8480
//
85-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --config-system-dir=%S/Inputs/config --config-user-dir= --config=i386-qqq.cfg -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix EXPLICIT
81+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --config-system-dir=%S/Inputs/config --config-user-dir= --config=i386-qqq.cfg -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix EXPLICIT --implicit-check-not 'Configuration file:'
8682
//
8783
// EXPLICIT: Configuration file: {{.*}}/testdmode/x86_64-unknown-linux-gnu-clang++.cfg
8884
// EXPLICIT-NEXT: Configuration file: {{.*}}/Inputs/config/i386-qqq.cfg
8985

9086
//--- --no-default-config --config= loads only specified file.
9187
//
92-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --config-system-dir=%S/Inputs/config --config-user-dir= --no-default-config --config=i386-qqq.cfg -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix EXPLICIT-ONLY
88+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --config-system-dir=%S/Inputs/config --config-user-dir= --no-default-config --config=i386-qqq.cfg -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix EXPLICIT-ONLY --implicit-check-not 'Configuration file:'
9389
//
94-
// EXPLICIT-ONLY-NOT: Configuration file: {{.*}}/testdmode/x86_64-unknown-linux-gnu-clang++.cfg
9590
// EXPLICIT-ONLY: Configuration file: {{.*}}/Inputs/config/i386-qqq.cfg
9691

9792
//--- --no-default-config disables default filenames.
@@ -102,65 +97,53 @@
10297

10398
//--- --driver-mode= is respected.
10499
//
105-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --driver-mode=gcc --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1-GCC
100+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --driver-mode=gcc --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1-GCC --implicit-check-not 'Configuration file:'
106101
//
107-
// FULL1-GCC-NOT: Configuration file:
108102
// FULL1-GCC: Configuration file: {{.*}}/testdmode/x86_64-unknown-linux-gnu-clang.cfg
109-
// FULL1-GCC-NOT: Configuration file:
110103

111104
//--- "clang" driver symlink should yield the "*-clang" configuration file.
112105
//
113-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1-GCC
106+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1-GCC --implicit-check-not 'Configuration file:'
114107

115108
//--- "clang" + --driver-mode= should yield "*-clang++".
116109
//
117-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang --driver-mode=g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1
110+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang --driver-mode=g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1 --implicit-check-not 'Configuration file:'
118111

119112
//--- Clang started via name prefix that is not valid is forcing that prefix instead of target triple.
120113
//
121-
// RUN: %t/testdmode/qqq-clang-g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix QQQ
114+
// RUN: %t/testdmode/qqq-clang-g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix QQQ --implicit-check-not 'Configuration file:'
122115
//
123-
// QQQ-NOT: Configuration file:
124116
// QQQ: Configuration file: {{.*}}/testdmode/qqq-clang-g++.cfg
125-
// QQQ-NOT: Configuration file:
126117

127118
//--- Explicit --target= overrides the triple even with non-standard name prefix.
128119
//
129-
// RUN: %t/testdmode/qqq-clang-g++ --target=x86_64-unknown-linux-gnu --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1
120+
// RUN: %t/testdmode/qqq-clang-g++ --target=x86_64-unknown-linux-gnu --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL1 --implicit-check-not 'Configuration file:'
130121

131122
//--- "x86_64" prefix does not form a valid triple either.
132123
//
133-
// RUN: %t/testdmode/x86_64-clang --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix X86_64
124+
// RUN: %t/testdmode/x86_64-clang --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix X86_64 --implicit-check-not 'Configuration file:'
134125
//
135-
// X86_64-NOT: Configuration file:
136126
// X86_64: Configuration file: {{.*}}/testdmode/x86_64-clang.cfg
137-
// X86_64-NOT: Configuration file:
138127

139128
//--- Try cheribsd prefix using misordered triple components.
140129
//
141-
// RUN: %t/testdmode/cheribsd-riscv64-hybrid-clang++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix CHERIBSD
130+
// RUN: %t/testdmode/cheribsd-riscv64-hybrid-clang++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix CHERIBSD --implicit-check-not 'Configuration file:'
142131
//
143-
// CHERIBSD-NOT: Configuration file:
144132
// CHERIBSD: Configuration file: {{.*}}/testdmode/cheribsd-riscv64-hybrid-clang++.cfg
145-
// CHERIBSD-NOT: Configuration file:
146133

147134
//--- Test fallback to x86_64-unknown-linux-gnu-clang-g++.cfg.
148135
//
149136
// RUN: rm %t/testdmode/x86_64-unknown-linux-gnu-clang++.cfg
150137
// RUN: rm %t/testdmode/i386-unknown-linux-gnu-clang++.cfg
151-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL2
138+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL2 --implicit-check-not 'Configuration file:'
152139
//
153-
// FULL2-NOT: Configuration file:
154140
// FULL2: Configuration file: {{.*}}/testdmode/x86_64-unknown-linux-gnu-clang-g++.cfg
155-
// FULL2-NOT: Configuration file:
156141

157142
//--- FULL2 + -m32.
158143
//
159-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ -m32 --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL2-I386
144+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ -m32 --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL2-I386 --implicit-check-not 'Configuration file:'
160145
//
161-
// FULL2-I386-NOT: Configuration file:
162146
// FULL2-I386: Configuration file: {{.*}}/testdmode/i386-unknown-linux-gnu-clang-g++.cfg
163-
// FULL2-I386-NOT: Configuration file:
164147

165148
//--- Test fallback to x86_64-unknown-linux-gnu-clang.cfg + clang++.cfg.
166149
//
@@ -171,92 +154,67 @@
171154
// RUN: rm %t/testdmode/i386-unknown-linux-gnu-clang-g++.cfg
172155
// RUN: rm %t/testdmode/x86_64-unknown-linux-gnu-clang.cfg
173156
// RUN: rm %t/testdmode/i386-unknown-linux-gnu-clang.cfg
174-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL3
157+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL3 --implicit-check-not 'Configuration file:'
175158
//
176-
// FULL3-NOT: Configuration file:
177159
// FULL3: Configuration file: {{.*}}/testdmode/clang++.cfg
178-
// FULL3-NOT: Configuration file:
179160
// FULL3: Configuration file: {{.*}}/testdmode/x86_64-unknown-linux-gnu.cfg
180-
// FULL3-NOT: Configuration file:
181161

182162
//--- FULL3 + -m32.
183163
//
184-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ -m32 --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL3-I386
164+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ -m32 --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL3-I386 --implicit-check-not 'Configuration file:'
185165
//
186-
// FULL3-I386-NOT: Configuration file:
187166
// FULL3-I386: Configuration file: {{.*}}/testdmode/clang++.cfg
188-
// FULL3-I386-NOT: Configuration file:
189167
// FULL3-I386: Configuration file: {{.*}}/testdmode/i386-unknown-linux-gnu.cfg
190-
// FULL3-I386-NOT: Configuration file:
191168

192169
//--- FULL3 + --driver-mode=.
193170
//
194-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --driver-mode=gcc --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL3-GCC
171+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --driver-mode=gcc --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL3-GCC --implicit-check-not 'Configuration file:'
195172
//
196-
// FULL3-GCC-NOT: Configuration file:
197173
// FULL3-GCC: Configuration file: {{.*}}/testdmode/clang.cfg
198-
// FULL3-GCC-NOT: Configuration file:
199174
// FULL3-GCC: Configuration file: {{.*}}/testdmode/x86_64-unknown-linux-gnu.cfg
200-
// FULL3-GCC-NOT: Configuration file:
201175

202176
//--- QQQ fallback.
203177
//
204-
// RUN: %t/testdmode/qqq-clang-g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix QQQ-FALLBACK
178+
// RUN: %t/testdmode/qqq-clang-g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix QQQ-FALLBACK --implicit-check-not 'Configuration file:'
205179
//
206-
// QQQ-FALLBACK-NOT: Configuration file:
207180
// QQQ-FALLBACK: Configuration file: {{.*}}/testdmode/clang++.cfg
208-
// QQQ-FALLBACK-NOT: Configuration file:
209181
// QQQ-FALLBACK: Configuration file: {{.*}}/testdmode/qqq.cfg
210-
// QQQ-FALLBACK-NOT: Configuration file:
211182

212183
//--- "x86_64" falback.
213184
//
214-
// RUN: %t/testdmode/x86_64-clang --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix X86_64-FALLBACK
185+
// RUN: %t/testdmode/x86_64-clang --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix X86_64-FALLBACK --implicit-check-not 'Configuration file:'
215186
//
216-
// X86_64-FALLBACK-NOT: Configuration file:
217187
// X86_64-FALLBACK: Configuration file: {{.*}}/testdmode/clang.cfg
218-
// X86_64-FALLBACK-NOT: Configuration file:
219188
// X86_64-FALLBACK: Configuration file: {{.*}}/testdmode/x86_64.cfg
220-
// X86_64-FALLBACK-NOT: Configuration file:
221189

222190
//--- cheribsd fallback.
223191
//
224-
// RUN: %t/testdmode/cheribsd-riscv64-hybrid-clang++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix CHERIBSD-FALLBACK
192+
// RUN: %t/testdmode/cheribsd-riscv64-hybrid-clang++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix CHERIBSD-FALLBACK --implicit-check-not 'Configuration file:'
225193
//
226-
// CHERIBSD-FALLBACK-NOT: Configuration file:
227194
// CHERIBSD-FALLBACK: Configuration file: {{.*}}/testdmode/clang++.cfg
228-
// CHERIBSD-FALLBACK-NOT: Configuration file:
229195
// CHERIBSD-FALLBACK: Configuration file: {{.*}}/testdmode/cheribsd-riscv64-hybrid.cfg
230-
// CHERIBSD-FALLBACK-NOT: Configuration file:
231196

232197
//--- Test fallback to x86_64-unknown-linux-gnu.cfg + clang-g++.cfg.
233198
//
234199
// RUN: rm %t/testdmode/clang++.cfg
235-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL4
200+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL4 --implicit-check-not 'Configuration file:'
236201
//
237-
// FULL4-NOT: Configuration file:
238202
// FULL4: Configuration file: {{.*}}/testdmode/clang-g++.cfg
239-
// FULL4-NOT: Configuration file:
240203
// FULL4: Configuration file: {{.*}}/testdmode/x86_64-unknown-linux-gnu.cfg
241-
// FULL4-NOT: Configuration file:
242204

243205
//--- Test fallback to clang-g++.cfg if x86_64-unknown-linux-gnu-clang.cfg does not exist.
244206
//
245207
// RUN: rm %t/testdmode/x86_64-unknown-linux-gnu.cfg
246208
// RUN: rm %t/testdmode/i386-unknown-linux-gnu.cfg
247-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL5
209+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL5 --implicit-check-not 'Configuration file:'
248210
//
249-
// FULL5-NOT: Configuration file:
250211
// FULL5: Configuration file: {{.*}}/testdmode/clang-g++.cfg
251-
// FULL5-NOT: Configuration file:
252212

253213
//--- FULL5 + -m32.
254214
//
255-
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ -m32 --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL5-I386
215+
// RUN: %t/testdmode/x86_64-unknown-linux-gnu-clang-g++ -m32 --config-system-dir= --config-user-dir= -no-canonical-prefixes --version 2>&1 | FileCheck %s -check-prefix FULL5-I386 --implicit-check-not 'Configuration file:'
256216
//
257-
// FULL5-I386-NOT: Configuration file:
258217
// FULL5-I386: Configuration file: {{.*}}/testdmode/clang-g++.cfg
259-
// FULL5-I386-NOT: Configuration file:
260218

261219
//--- Test that incorrect driver mode config file is not used.
262220
//

0 commit comments

Comments
 (0)