xref: /llvm-project/llvm/utils/lit/tests/shtest-define.py (revision f223022a4c521296a6d058862d66443ab9e355bf)
1# We're using DEFINE/REDEFINE to help us write tests for DEFINE/REDEFINE.
2
3# RUN: echo '-- Available Tests --' > %t.tests.actual.txt
4
5# DEFINE: %{my-inputs} = %{inputs}/shtest-define
6
7# DEFINE: %{test} =
8# DEFINE: %{lit-pre} =
9# DEFINE: %{lit-args} =
10# DEFINE: %{fc-args} =
11# DEFINE: %{run-test} =                                                        \
12# DEFINE:   %{lit-pre} %{lit} -va  %{lit-args} %{my-inputs}/%{test} 2>&1 |     \
13# DEFINE:     FileCheck -match-full-lines %{fc-args} %{my-inputs}/%{test}      \
14# DEFINE:               -dump-input-filter=all -vv -color
15# DEFINE: %{record-test} =                                                     \
16# DEFINE:   echo '  shtest-define :: %{test}' >> %t.tests.actual.txt
17# DEFINE: %{run-and-record-test} = %{run-test} && %{record-test}
18
19# REDEFINE: %{lit-pre} = not
20#
21# REDEFINE: %{test} = errors/assignment/before-name.txt
22# RUN: %{run-and-record-test}
23# REDEFINE: %{test} = errors/assignment/between-name-equals.txt
24# RUN: %{run-and-record-test}
25# REDEFINE: %{test} = errors/assignment/braces-empty.txt
26# RUN: %{run-and-record-test}
27# REDEFINE: %{test} = errors/assignment/braces-with-dot.txt
28# RUN: %{run-and-record-test}
29# REDEFINE: %{test} = errors/assignment/braces-with-equals.txt
30# RUN: %{run-and-record-test}
31# REDEFINE: %{test} = errors/assignment/braces-with-newline.txt
32# RUN: %{run-and-record-test}
33# REDEFINE: %{test} = errors/assignment/braces-with-number.txt
34# RUN: %{run-and-record-test}
35# REDEFINE: %{test} = errors/assignment/braces-with-ws.txt
36# RUN: %{run-and-record-test}
37# REDEFINE: %{test} = errors/assignment/empty.txt
38# RUN: %{run-and-record-test}
39# REDEFINE: %{test} = errors/assignment/no-equals.txt
40# RUN: %{run-and-record-test}
41# REDEFINE: %{test} = errors/assignment/no-name.txt
42# RUN: %{run-and-record-test}
43# REDEFINE: %{test} = errors/assignment/ws-only.txt
44# RUN: %{run-and-record-test}
45# REDEFINE: %{test} = errors/continuation/empty.txt
46# RUN: %{run-and-record-test}
47# REDEFINE: %{test} = errors/continuation/end-in-double-backslash.txt
48# RUN: %{run-and-record-test}
49# REDEFINE: %{test} = errors/continuation/unterminated-define-bad-redefine.txt
50# RUN: %{run-and-record-test}
51# REDEFINE: %{test} = errors/continuation/unterminated-define-continuation.txt
52# RUN: %{run-and-record-test}
53# REDEFINE: %{test} = errors/continuation/unterminated-define-redefine.txt
54# RUN: %{run-and-record-test}
55# REDEFINE: %{test} = errors/continuation/unterminated-define-run.txt
56# RUN: %{run-and-record-test}
57# REDEFINE: %{test} = errors/continuation/unterminated-define.txt
58# RUN: %{run-and-record-test}
59# REDEFINE: %{test} = errors/continuation/unterminated-redefine-bad-define.txt
60# RUN: %{run-and-record-test}
61# REDEFINE: %{test} = errors/continuation/unterminated-redefine-continuation.txt
62# RUN: %{run-and-record-test}
63# REDEFINE: %{test} = errors/continuation/unterminated-redefine-define.txt
64# RUN: %{run-and-record-test}
65# REDEFINE: %{test} = errors/continuation/unterminated-redefine-run.txt
66# RUN: %{run-and-record-test}
67# REDEFINE: %{test} = errors/continuation/unterminated-redefine.txt
68# RUN: %{run-and-record-test}
69# REDEFINE: %{test} = errors/continuation/unterminated-run-define.txt
70# RUN: %{run-and-record-test}
71# REDEFINE: %{test} = errors/continuation/unterminated-run-redefine.txt
72# RUN: %{run-and-record-test}
73# REDEFINE: %{test} = errors/continuation/ws-only.txt
74# RUN: %{run-and-record-test}
75# REDEFINE: %{test} = errors/defined-check/define-already-by-config.txt
76# RUN: %{run-and-record-test}
77# REDEFINE: %{test} = errors/defined-check/define-already-by-test.txt
78# RUN: %{run-and-record-test}
79# REDEFINE: %{test} = errors/defined-check/define-inside-pattern.txt
80# RUN: %{run-and-record-test}
81# REDEFINE: %{test} = errors/defined-check/define-multiple-exact.txt
82# RUN: %{run-and-record-test}
83# REDEFINE: %{test} = errors/defined-check/define-multiple-once-exact.txt
84# RUN: %{run-and-record-test}
85# REDEFINE: %{test} = errors/defined-check/define-prefixes-pattern.txt
86# RUN: %{run-and-record-test}
87# REDEFINE: %{test} = errors/defined-check/define-suffixes-pattern.txt
88# RUN: %{run-and-record-test}
89# REDEFINE: %{test} = errors/defined-check/redefine-inside-pattern.txt
90# RUN: %{run-and-record-test}
91# REDEFINE: %{test} = errors/defined-check/redefine-multiple-exact.txt
92# RUN: %{run-and-record-test}
93# REDEFINE: %{test} = errors/defined-check/redefine-multiple-once-exact.txt
94# RUN: %{run-and-record-test}
95# REDEFINE: %{test} = errors/defined-check/redefine-none.txt
96# RUN: %{run-and-record-test}
97# REDEFINE: %{test} = errors/defined-check/redefine-prefixes-pattern.txt
98# RUN: %{run-and-record-test}
99# REDEFINE: %{test} = errors/defined-check/redefine-suffixes-pattern.txt
100# RUN: %{run-and-record-test}
101# REDEFINE: %{test} = errors/location-range.txt
102# RUN: %{run-and-record-test}
103# REDEFINE: %{test} = errors/no-run.txt
104# RUN: %{run-and-record-test}
105#
106# REDEFINE: %{lit-pre} =
107
108# REDEFINE: %{test} = examples/param-subst.txt
109# RUN: %{run-and-record-test}
110
111# REDEFINE: %{test} = expansion-order.txt
112# RUN: %{run-and-record-test}
113
114# REDEFINE: %{test} = line-number-substitutions.txt
115# RUN: %{run-and-record-test}
116
117# REDEFINE: %{test} = name-chars.txt
118# RUN: %{run-and-record-test}
119
120# REDEFINE: %{test} = recursiveExpansionLimit.txt
121#
122# REDEFINE: %{fc-args} = -check-prefix=CHECK-NON-RECUR
123# RUN: %{run-test}
124#
125# REDEFINE: %{lit-args} = -Drecur=2
126# REDEFINE: %{fc-args} = -check-prefix=CHECK-RECUR
127# RUN: %{run-test}
128#
129# RUN: %{record-test}
130# REDEFINE: %{lit-args} =
131# REDEFINE: %{fc-args} =
132
133# Check that per-test changes to substitutions don't affect other tests in the
134# same LIT invocation.
135#
136# RUN: %{lit} -va %{my-inputs}/shared-substs-*.txt 2>&1 |                      \
137# RUN:   FileCheck -check-prefix=SHARED-SUBSTS -match-full-lines %s
138#
139# SHARED-SUBSTS:# | shared-substs-0.txt
140# SHARED-SUBSTS:# | GLOBAL: World
141# SHARED-SUBSTS:# | LOCAL0: LOCAL0:Hello LOCAL0:World
142# SHARED-SUBSTS:# | LOCAL0: subst
143#
144# SHARED-SUBSTS:# | shared-substs-1.txt
145# SHARED-SUBSTS:# | GLOBAL: World
146# SHARED-SUBSTS:# | LOCAL1: LOCAL1:Hello LOCAL1:World
147# SHARED-SUBSTS:# | LOCAL1: subst
148#
149# REDEFINE: %{test} = shared-substs-0.txt
150# RUN: %{record-test}
151# REDEFINE: %{test} = shared-substs-1.txt
152# RUN: %{record-test}
153
154# REDEFINE: %{test} = value-equals.txt
155# RUN: %{run-and-record-test}
156
157# REDEFINE: %{test} = value-escaped.txt
158# RUN: %{run-and-record-test}
159
160# REDEFINE: %{fc-args} = -strict-whitespace
161# REDEFINE: %{test} = ws-and-continuations.txt
162# RUN: %{run-and-record-test}
163# REDEFINE: %{fc-args} =
164
165# Make sure we didn't forget to run something.
166#
167# RUN: %{lit} --show-tests %{my-inputs} > %t.tests.expected.txt
168# RUN: diff -u -w %t.tests.expected.txt %t.tests.actual.txt
169