Test Trac #7064
[ghc.git] / testsuite / tests / th / all.T
1
2 # This test needs to come before the setTestOpts calls below, as we want
3 # to run it !if_compiler_profiled
4 test('T4255', unless_compiler_profiled(skip), compile_fail, ['-v0'])
5
6 def f(opts):
7   opts.extra_hc_opts = '-XTemplateHaskell -package template-haskell'
8   if (ghc_with_interpreter == 0):
9         opts.skip = 1
10
11 setTestOpts(f)
12 setTestOpts(only_compiler_types(['ghc']))
13 setTestOpts(only_ways(['normal','ghci']))
14 setTestOpts(if_compiler_profiled(skip))
15
16 test('TH_mkName', normal, compile, ['-v0'])
17 test('TH_1tuple', normal, compile_fail, ['-v0'])
18
19 test('TH_repE1', normal, compile, [''])
20 test('TH_repE2', normal, compile_and_run, [''])
21 test('TH_repE3', normal, compile, [''])
22 test('TH_repPrim', normal, compile, ['-v0'])
23 test('TH_repPrim2', normal, compile, ['-v0'])
24 test('TH_repUnboxedTuples', normal, compile, ['-v0'])
25 test('TH_spliceGuard', normal, compile, ['-v0'])
26 test('TH_repPrimOutput', normal, compile_and_run, [''])
27 test('TH_repPrimOutput2', normal, compile_and_run, [''])
28 test('TH_repGuard', normal, compile, ['-v0'])
29 test('TH_repGuardOutput', normal, compile_and_run, [''])
30 test('TH_repPatSig', normal, compile_fail, [''])
31
32 test('TH_spliceE5',
33      extra_clean(['TH_spliceE5_Lib.hi', 'TH_spliceE5_Lib.o']),
34      multimod_compile_and_run,
35      ['TH_spliceE5.hs', '-v0'])
36
37 test('TH_spliceE6', normal, compile, ['-v0'])
38
39 test('TH_NestedSplices',
40      extra_clean(['TH_NestedSplices_Lib.hi', 'TH_NestedSplices_Lib.o']),
41      multimod_compile,
42      ['TH_NestedSplices.hs', '-v0'])
43
44 # Testing profiling with TH is a bit tricky; we've already disabled
45 # the prof way above, and also we want to add options specifically for
46 # profiling (-osuf p.o) because this is necessary when mixing
47 # profiling w/ TH.  Furthermore we must have built the program the
48 # normal way first, which is why the work is done by a Makefile rule.
49 test('TH_spliceE5_prof',
50      [req_profiling,
51       omit_ways(['ghci']),
52       extra_clean(['TH_spliceE5_prof_Lib.p.o', 'TH_spliceE5_prof_Lib.hi',
53                    'TH_spliceE5_prof_Lib.o','TH_spliceE5_prof.p.o'])],
54      run_command,
55      ['$MAKE -s --no-print-directory TH_spliceE5_prof'])
56
57 test('TH_spliceD1',
58      extra_clean(['TH_spliceD1_Lib.hi', 'TH_spliceD1_Lib.o']),
59      multimod_compile_fail,
60      ['TH_spliceD1', '-v0'])
61
62 test('TH_spliceD2',
63      extra_clean(['TH_spliceD2_Lib.hi', 'TH_spliceD2_Lib.o']),
64      multimod_compile,
65      ['TH_spliceD2', '-v0'])
66
67 test('TH_reifyDecl1', normal, compile, ['-v0'])
68 test('TH_reifyDecl2', normal, compile, ['-v0'])
69
70 test('TH_reifyType1', normal, compile, [''])
71 test('TH_reifyType2', normal, compile, [''])
72 test('TH_reifyMkName', normal, compile, ['-v0'])
73
74 test('TH_reifyInstances', normal, compile, ['-v0'])
75
76 test('TH_spliceDecl1', normal, compile, ['-v0'])
77 test('TH_spliceDecl2', normal, compile, ['-v0'])
78 test('TH_spliceDecl3',
79      extra_clean(['TH_spliceDecl3_Lib.hi', 'TH_spliceDecl3_Lib.o']),
80      multimod_compile,
81      ['TH_spliceDecl3', '-v0'])
82 test('TH_spliceDecl4',
83      extra_clean(['TH_spliceDecl4_Lib.hi', 'TH_spliceDecl4_Lib.o']),
84      multimod_compile,
85      ['TH_spliceDecl4', '-v0'])
86
87 test('T2597a',
88      extra_clean(['T2597a_Lib.hi', 'T2597a_Lib.o']),
89      multimod_compile,
90      ['T2597a', '-v0'])
91
92 test('T2597b',
93      extra_clean(['T2597b_Lib.hi', 'T2597b_Lib.o']),
94      multimod_compile_fail,
95      ['T2597b', '-v0'])
96
97 test('TH_spliceE1', normal, compile_and_run, [''])
98 test('TH_spliceExpr1', normal, compile, ['-v0'])
99 test('TH_spliceE3', normal, compile, ['-v0'])
100 test('TH_spliceE4', normal, compile_and_run, [''])
101
102 test('TH_bracket1', normal, compile, [''])
103 test('TH_bracket2', normal, compile, [''])
104 test('TH_bracket3', normal, compile, [''])
105
106 test('TH_class1', normal, compile, ['-v0'])
107 test('TH_tuple1', normal, compile, ['-v0'])
108 test('TH_genEx',
109      extra_clean(['TH_genExLib.hi', 'TH_genExLib.o']),
110      multimod_compile,
111      ['TH_genEx', '-v0'])
112
113 test('TH_where', normal, compile_and_run, [''])
114
115 test('TH_spliceInst', normal, compile, ['-v0'])
116
117 test('TH_exn1', normal, compile_fail, ['-v0'])
118
119 test('TH_dupdecl', normal, compile_fail, ['-v0'])
120 test('TH_exn2', normal, compile_fail, ['-v0'])
121
122 test('TH_recover', normal, compile_and_run, [''])
123 test('TH_dataD1', normal, compile_fail, ['-v0'])
124
125 test('TH_ppr1', normal, compile_and_run, [''])
126
127 test('TH_fail', normal, compile_fail, ['-v0'])
128 test('TH_scopedTvs', normal, compile, ['-v0'])
129
130 test('TH_runIO', normal, compile_fail, ['-v0'])
131
132 test('TH_ghci1', normal, ghci_script, ['TH_ghci1.script'])
133
134 test('TH_scope', normal, compile, [''])
135 test('T2632', normal, compile, [''])
136 test('T2700', normal, compile, ['-v0'])
137 test('T2817', normal, compile, ['-v0'])
138 test('T2713', normal, compile_fail, ['-v0'])
139 test('T2674', normal, compile_fail, ['-v0'])
140 test('T2931', normal, compile, ['-v0'])
141 test('TH_emptycase', normal, compile_fail, ['-v0'])
142
143 test('T2386', extra_clean(['T2386_Lib.hi', 'T2386_Lib.o']),
144               run_command,
145               ['$MAKE -s --no-print-directory T2386'] )
146
147 test('T2685', extra_clean(['T2685a.hi','T2685a.o']),
148               multimod_compile, ['T2685','-v0'])
149
150 test('TH_sections', normal, compile, ['-v0'])
151
152 test('TH_tf1', normal, compile, ['-v0'])
153 test('TH_tf2', normal, compile, ['-v0'])
154 test('TH_tf3', normal, compile, ['-v0'])
155
156 test('TH_pragma', normal, compile, ['-v0 -dsuppress-uniques'])
157 test('T3177', normal, compile, ['-v0'])
158 test('T3177a', normal, compile_fail, ['-v0'])
159
160 test('T3319', normal, compile, ['-ddump-splices -v0'])
161 test('TH_foreignInterruptible', normal, compile, ['-ddump-splices -v0'])
162
163 test('T3395', normal, compile_fail, ['-v0'])
164 test('T3467', normal, compile, [''])
165 test('T3572', normal, compile_and_run, [''])
166 test('T3100', normal, compile, ['-v0'])
167 test('T3920', normal, compile_and_run, ['-v0'])
168
169 test('T3600', extra_clean(['T3600a.hi','T3600a.o']),
170               multimod_compile, ['T3600','-v0'])
171 test('T3845', normal, compile, ['-v0'])
172 test('T3899', extra_clean(['T3899a.hi','T3899a.o']),
173               multimod_compile, ['T3899','-v0 -ddump-splices -dsuppress-uniques'])
174 test('T4056', normal, compile, ['-v0'])
175 test('T4188', normal, compile, ['-v0'])
176 test('T4233', normal, compile, ['-v0'])
177 test('T4169', normal, compile, ['-v0'])
178 test('T1835', normal, compile_and_run, ['-v0'])
179
180 test('TH_viewPatPrint', normal, compile_and_run, [''])
181 test('T4436', normal, compile, ['-v0 -ddump-splices'])
182 test('T4949', normal, compile, ['-v0'])
183 test('T5126', normal, compile, ['-v0'])
184 test('T5217', normal, compile, ['-v0 -dsuppress-uniques -ddump-splices'])
185 test('T5037', normal, compile, ['-v0'])
186 test('TH_unboxedSingleton', normal, compile, ['-v0'])
187 test('T5290', normal, compile, ['-v0 -ddump-splices'])
188 test('T5362', normal, compile, ['-v0'])
189
190 test('TH_unresolvedInfix',
191      extra_clean(['TH_unresolvedInfix_Lib.hi', 'TH_unresolvedInfix_Lib.o']),
192      multimod_compile_and_run,
193      ['TH_unresolvedInfix.hs', '-v0'])
194 test('TH_unresolvedInfix2',
195      normal,
196      compile_fail,
197      ['-v0'])
198
199 test('T5358', normal, compile_fail, [''])
200 test('T5379', normal, compile_and_run, [''])
201 test('T5404', normal, compile, ['-v0'])
202 test('T5410', normal, compile_and_run, ['-v0'])
203 test('TH_lookupName',
204      extra_clean(['TH_lookupName_Lib.hi', 'TH_lookupName_Lib.o']),
205      multimod_compile_and_run,
206      ['TH_lookupName.hs', ''])
207 test('T5452', normal, compile, ['-v0'])
208 test('T5434', extra_clean(['T5434a.hi','T5434a.o']),
209               multimod_compile, ['T5434','-v0 -Wall'])
210 test('T5508', normal, compile, ['-v0 -ddump-splices'])
211 test('TH_Depends',
212      [extra_clean(['TH_Depends_External.o', 'TH_Depends_External.hi',
213                    'TH_Depends_external.txt'])],
214      run_command,
215      ['$MAKE -s --no-print-directory TH_Depends'])
216 test('T5597', extra_clean(['T5597a.hi','T5597a.o']),
217               multimod_compile, ['T5597','-v0'])
218 test('T5665', extra_clean(['T5665a.hi','T5665a.o']),
219               multimod_compile, ['T5665','-v0'])
220 test('T5700', extra_clean(['T5700a.hi','T5700a.o']),
221               multimod_compile, ['T5700','-v0 -ddump-splices'])
222 test('T5721', normal, compile, ['-v0'])
223
224 test('TH_PromotedTuple', normal, compile, ['-v0 -ddump-splices'])
225 test('TH_PromotedList', normal, compile, ['-v0'])
226 test('TH_Promoted1Tuple', normal, compile_fail, ['-v0'])
227 test('TH_RichKinds', normal, compile, ['-v0'])
228 test('TH_RichKinds2', normal, compile, ['-v0'])
229
230 test('T1541', normal, compile, ['-v0'])
231 test('T5883', normal, compile, ['-v0 -dsuppress-uniques -ddump-splices'])
232 test('T5882', normal, compile, ['-v0'])
233 test('T5886', extra_clean(['T5886a.hi','T5886a.o']),
234               multimod_compile, ['T5886','-v0'])
235 test('T4135', normal, compile, ['-v0'])
236 test('T5971', normal, compile_fail, ['-v0 -dsuppress-uniques'])
237 test('T5968', normal, compile, ['-v0'])
238 test('T5984', extra_clean(['T5984_Lib.hi', 'T5984_Lib.o']),
239               multimod_compile, ['T5984', '-v0 -ddump-splices'])
240 test('T5555', extra_clean(['T5555_Lib.hi', 'T5555_Lib.o']),
241               multimod_compile, ['T5555', '-v0'])
242 test('T5976', normal, compile_fail, ['-v0'])
243 test('T5795', normal, compile_fail, ['-v0'])
244 test('T6005', normal, compile, ['-v0'])
245 test('T6005a', normal, compile, ['-v0'])
246 test('T5737', normal, compile, ['-v0'])
247 test('T6114', normal, compile_fail, ['-v0 -dsuppress-uniques'])
248 test('TH_StringPrimL', normal, compile_and_run, [''])
249 test('T7064',
250      extra_clean(['T7064a.hi', 'T7064a.o']),
251      multimod_compile_and_run,
252      ['T7064.hs', '-v0'])