all.T 4.84 KB
Newer Older
1 2
# Test for #1227, #1418

3
test('heapprof002',
4 5
     [extra_files(['heapprof001.hs']),
      pre_cmd('cp heapprof001.hs heapprof002.hs'), extra_ways(['normal_h']),
6
      extra_run_opts('7')],
7 8
     compile_and_run, [''])

9 10
test('T11489', [req_profiling], run_command,
     ['$MAKE -s --no-print-directory T11489'])
11 12 13

# Below this line, run tests only with profiling ways.
setTestOpts(req_profiling)
14
setTestOpts(extra_ways(['prof', 'ghci-ext-prof']))
15
setTestOpts(only_ways(prof_ways))
16
setTestOpts(keep_prof_callstacks)
17 18 19

extra_prof_ways = ['prof', 'prof_hc_hb', 'prof_hb', 'prof_hd', 'prof_hy', 'prof_hr']

20 21
expect_broken_for_10037 = expect_broken_for(
  10037,
22 23
  [w for w in prof_ways if w not in opt_ways and w != 'ghci-ext-prof'])
     # e.g. prof and profllvm
24

25
test('heapprof001',
26 27 28
     [when(have_profiling(), extra_ways(extra_prof_ways)),
      when(arch('i386'), expect_broken_for(15382, ['prof_hc_hb'])),
      extra_run_opts('7')],
29 30
     compile_and_run, [''])

31
test('T2592',
32
     [only_ways(['profasm']), extra_run_opts('+RTS -M1m -RTS'), exit_code(251)],
Simon Marlow's avatar
Simon Marlow committed
33
     compile_and_run, [''])
Ian Lynagh's avatar
Ian Lynagh committed
34

35
test('T3001', [only_ways(['prof_hb']), extra_ways(['prof_hb'])],
Ian Lynagh's avatar
Ian Lynagh committed
36
     compile_and_run, [''])
Ian Lynagh's avatar
Ian Lynagh committed
37

38
test('T3001-2',
39
     [only_ways(['prof_hb']), extra_ways(['prof_hb'])],
Ian Lynagh's avatar
Ian Lynagh committed
40
     compile_and_run, ['-package bytestring'])
41

42 43
# For profasm/profthreaded, the answer is correct but the ordering of some
# 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, [''])
Simon Marlow's avatar
Simon Marlow committed
50

51
test('scc003', [], compile_and_run,
Simon Marlow's avatar
Simon Marlow committed
52
     ['-fno-state-hack']) # Note [consistent stacks]
Simon Marlow's avatar
Simon Marlow committed
53

54 55 56
test('T5654-O0', [only_ways(['prof'])], compile_and_run, [''])

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, [''])
Simon Marlow's avatar
Simon Marlow committed
63

64
test('T5314', [extra_ways(extra_prof_ways)], compile_and_run, [''])
Simon Marlow's avatar
Simon Marlow committed
65

66
test('T680', [], compile_and_run,
Simon Marlow's avatar
Simon Marlow committed
67 68
     ['-fno-full-laziness']) # Note [consistent stacks]

69
test('T2552', [expect_broken_for_10037], compile_and_run, [''])
Simon Marlow's avatar
Simon Marlow committed
70

71 72 73 74 75
test('T949', [extra_ways(extra_prof_ways)], compile_and_run, [''])

# The results for 'prof' are fine, but the ordering changes.
# We care more about getting the optimised results right, so ignoring
# this for now.
76 77 78 79 80 81
test('ioprof',
     [expect_broken_for_10037,
      exit_code(1),
      omit_ways(['ghci-ext-prof']) # doesn't work with exit_code(1)
     ],
     compile_and_run,
Simon Marlow's avatar
Simon Marlow committed
82 83 84 85
     ['-fno-full-laziness -fno-state-hack']) # Note [consistent stacks]

# These two examples are from the User's Guide:

86
test('prof-doc-fib', [], compile_and_run, [''])
Simon Marlow's avatar
Simon Marlow committed
87

88
test('prof-doc-last', [], compile_and_run, ['-fno-full-laziness'])
Simon Marlow's avatar
Simon Marlow committed
89

90 91
# unicode in cost centre names
test('T5559', [], compile_and_run, [''])
92

Simon Marlow's avatar
Simon Marlow committed
93 94 95 96 97 98 99 100
# Note [consistent stacks]
#  Certain optimisations can change the stacks we get out of the
#  profiler.  These flags are necessary (but perhaps not sufficient)
#  to get consistent stacks:
#
#       -fno-state-hack
#       -fno-full-laziness

101
test('callstack001',
Simon Marlow's avatar
Simon Marlow committed
102
     # unoptimised results are different w.r.t. CAF attribution
Simon Marlow's avatar
Simon Marlow committed
103
     [ omit_ways(['ghci-ext-prof']), # produces a different stack
104 105
     ], compile_and_run,
     ['-fprof-auto-calls -fno-full-laziness -fno-state-hack'])
106

107 108 109 110
test('callstack002',
     [ omit_ways(['ghci-ext-prof']), # produces a different stack
     ],
     compile_and_run,
111
     ['-fprof-auto-calls -fno-full-laziness -fno-state-hack'])
Simon Marlow's avatar
Simon Marlow committed
112

113
# Should not stack overflow with -prof -fprof-auto
Simon Marlow's avatar
Simon Marlow committed
114
test('T5363', [], compile_and_run, [''])
115

116
test('profinline001', [], compile_and_run, [''])
117

118 119 120 121
test('T11627a', [ extra_ways(extra_prof_ways),
                  # integer-simple has an extremely large representation and
                  # consequently needs significantly more time
                  when(have_library('integer-simple'), skip)
122 123
                ],
     compile_and_run, [''])
124 125 126

test('T11627b', [ extra_run_opts('+RTS -i0 -RTS')  # census after each GC
                , extra_ways(extra_prof_ways)
127
                , when(opsys('darwin'), skip)
thomie's avatar
thomie committed
128
                , when(opsys('mingw32'),
129
                       expect_broken_for(12236, ['prof_hc_hb']))
130 131 132
                ]
                , compile_and_run
                , [''])
133 134

test('T11978a',
135 136 137
     [only_ways(['profthreaded']),
      extra_run_opts('+RTS -hb -N10'),
      expect_broken(12019)],
138
     compile_and_run, [''])
139 140 141 142 143

test('toplevel_scc_1',
     [extra_ways(['prof_no_auto']), only_ways(['prof_no_auto'])],
     compile_and_run,
     [''])
144 145

test('T12962', [], compile_and_run, [''])
Ben Gamari's avatar
Ben Gamari committed
146 147

test('T14257', [], run_command, ['$MAKE -s --no-print-directory T14257'])
148 149 150 151 152

test('T15897',
     [extra_ways(['profasm']), only_ways(['profasm']), run_timeout_multiplier(2)],
     run_command,
     ['$MAKE -s --no-print-directory T15897'])