Revert "Batch merge"
[ghc.git] / testsuite / tests / profiling / should_run / all.T
1 # Test for #1227, #1418
2
3 test('heapprof002',
4      [extra_files(['heapprof001.hs']),
5       pre_cmd('cp heapprof001.hs heapprof002.hs'), extra_ways(['normal_h']),
6       extra_run_opts('7')],
7      compile_and_run, [''])
8
9 test('T11489', [req_profiling], run_command,
10      ['$MAKE -s --no-print-directory T11489'])
11
12 # Below this line, run tests only with profiling ways.
13 setTestOpts(req_profiling)
14 setTestOpts(extra_ways(['prof', 'ghci-ext-prof']))
15 setTestOpts(only_ways(prof_ways))
16 setTestOpts(keep_prof_callstacks)
17
18 extra_prof_ways = ['prof', 'prof_hc_hb', 'prof_hb', 'prof_hd', 'prof_hy', 'prof_hr']
19
20 expect_broken_for_10037 = expect_broken_for(
21   10037,
22   [w for w in prof_ways if w not in opt_ways and w != 'ghci-ext-prof'])
23      # e.g. prof and profllvm
24
25 test('heapprof001',
26      [when(have_profiling(), extra_ways(extra_prof_ways)),
27       when(arch('i386'), expect_broken_for(15382, ['prof_hc_hb'])),
28       extra_run_opts('7')],
29      compile_and_run, [''])
30
31 test('T2592',
32      [only_ways(['profasm']), extra_run_opts('+RTS -M1m -RTS'), exit_code(251)],
33      compile_and_run, [''])
34
35 test('T3001', [only_ways(['prof_hb']), extra_ways(['prof_hb'])],
36      compile_and_run, [''])
37
38 test('T3001-2',
39      [only_ways(['prof_hb']), extra_ways(['prof_hb'])],
40      compile_and_run, ['-package bytestring'])
41
42 # For profasm/profthreaded, the answer is correct but the ordering of some
43 # lines in the output happen to be different, so we just skip them.
44 test('scc001',
45      omit_ways(['profasm', 'profthreaded']),
46      compile_and_run,
47      ['-fno-state-hack -fno-full-laziness']) # Note [consistent stacks]
48
49 test('scc002', [], compile_and_run, [''])
50
51 test('scc003', [], compile_and_run,
52      ['-fno-state-hack']) # Note [consistent stacks]
53
54 test('T5654-O0', [only_ways(['prof'])], compile_and_run, [''])
55
56 test('T5654-O1', [only_ways(['profasm'])], compile_and_run, [''])
57
58 test('T5654b-O0', [only_ways(['prof'])], compile_and_run, [''])
59
60 test('T5654b-O1', [only_ways(['profasm'])], compile_and_run, [''])
61
62 test('scc005', [], compile_and_run, [''])
63
64 test('T5314', [extra_ways(extra_prof_ways)], compile_and_run, [''])
65
66 test('T680', [], compile_and_run,
67      ['-fno-full-laziness']) # Note [consistent stacks]
68
69 test('T2552', [expect_broken_for_10037], compile_and_run, [''])
70
71 test('T949', [extra_ways(extra_prof_ways)], compile_and_run, [''])
72
73 # The results for 'prof' are fine, but the ordering changes.
74 # We care more about getting the optimised results right, so ignoring
75 # this for now.
76 test('ioprof',
77      [expect_broken_for_10037,
78       exit_code(1),
79       omit_ways(['ghci-ext-prof']) # doesn't work with exit_code(1)
80      ],
81      compile_and_run,
82      ['-fno-full-laziness -fno-state-hack']) # Note [consistent stacks]
83
84 # These two examples are from the User's Guide:
85
86 test('prof-doc-fib', [], compile_and_run, [''])
87
88 test('prof-doc-last', [], compile_and_run, ['-fno-full-laziness'])
89
90 # unicode in cost centre names
91 test('T5559', [], compile_and_run, [''])
92
93 # Note [consistent stacks]
94 #  Certain optimisations can change the stacks we get out of the
95 #  profiler.  These flags are necessary (but perhaps not sufficient)
96 #  to get consistent stacks:
97 #
98 #       -fno-state-hack
99 #       -fno-full-laziness
100
101 test('callstack001',
102      # unoptimised results are different w.r.t. CAF attribution
103      [ omit_ways(['ghci-ext-prof']), # produces a different stack
104      ], compile_and_run,
105      ['-fprof-auto-calls -fno-full-laziness -fno-state-hack'])
106
107 test('callstack002',
108      [ omit_ways(['ghci-ext-prof']), # produces a different stack
109      ],
110      compile_and_run,
111      ['-fprof-auto-calls -fno-full-laziness -fno-state-hack'])
112
113 # Should not stack overflow with -prof -fprof-auto
114 test('T5363', [], compile_and_run, [''])
115
116 test('profinline001', [], compile_and_run, [''])
117
118 test('T11627a', [ extra_ways(extra_prof_ways),
119                   # integer-simple has an extremely large representation and
120                   # consequently needs significantly more time
121                   when(have_library('integer-simple'), skip)
122                 ],
123      compile_and_run, [''])
124
125 test('T11627b', [ extra_run_opts('+RTS -i0 -RTS')  # census after each GC
126                 , extra_ways(extra_prof_ways)
127                 , when(opsys('darwin'), skip)
128                 , when(opsys('mingw32'),
129                        expect_broken_for(12236, ['prof_hc_hb']))
130                 ]
131                 , compile_and_run
132                 , [''])
133
134 test('T11978a',
135      [only_ways(['profthreaded']),
136       extra_run_opts('+RTS -hb -N10'),
137       expect_broken(12019)],
138      compile_and_run, [''])
139
140 test('toplevel_scc_1',
141      [extra_ways(['prof_no_auto']), only_ways(['prof_no_auto'])],
142      compile_and_run,
143      [''])
144
145 test('T12962', [], compile_and_run, [''])
146
147 test('T14257', [], run_command, ['$MAKE -s --no-print-directory T14257'])
148
149 test('T15897',
150      [extra_ways(['profasm']), only_ways(['profasm']), run_timeout_multiplier(2)],
151      run_command,
152      ['$MAKE -s --no-print-directory T15897'])