summaryrefslogtreecommitdiff
path: root/testsuite/tests/perf/should_run/all.T
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/perf/should_run/all.T')
-rw-r--r--testsuite/tests/perf/should_run/all.T148
1 files changed, 148 insertions, 0 deletions
diff --git a/testsuite/tests/perf/should_run/all.T b/testsuite/tests/perf/should_run/all.T
new file mode 100644
index 0000000000..04133979df
--- /dev/null
+++ b/testsuite/tests/perf/should_run/all.T
@@ -0,0 +1,148 @@
+# Tests that newArray/newArray_ is being optimised correctly
+
+# fortunately the values here are mostly independent of the wordsize,
+# because the test allocates an unboxed array of doubles.
+
+test('3586',
+ [stats_num_field('peak_megabytes_allocated', 17,
+ 18),
+ # expected value: 17 (amd64/Linux)
+ stats_num_field('bytes allocated', 16000000,
+ 17000000),
+ # expected value: 16835544 (amd64/Linux)
+ only_ways(['normal'])
+ ],
+ compile_and_run,
+ ['-O'])
+
+test('T4830',
+ [stats_num_field('bytes allocated', 60000,
+ 200000),
+ # expected value: 127,000 (amd64/Linux)
+ only_ways(['normal'])
+ ],
+ compile_and_run,
+ ['-O2'])
+
+test('T3245', normal, compile_and_run, ['-O'])
+
+# Test that bytestring reading/writing isn't over-allocating. We had
+# a bug in hGetBufNonBlocking in 6.13 that triggered this.
+#
+test('lazy-bs-alloc',
+ [stats_num_field('peak_megabytes_allocated', 1,
+ 3),
+ # expected value: 2 (amd64/Linux)
+ stats_num_field('bytes allocated', 400000,
+ 600000),
+ # expected value: 489776 (amd64/Linux)
+ only_ways(['normal']),
+ extra_run_opts('../../numeric/should_run/arith011.stdout'),
+ ignore_output
+ ],
+ # use a suitably big file, without bloating the repo with a new one:
+ compile_and_run,
+ ['-O'])
+
+# Get reproducible floating-point results on x86
+if config.arch == 'i386':
+ sse2_opts = '-msse2'
+else:
+ sse2_opts = ''
+
+test('T4321', omit_ways(['ghci']), compile_and_run, ['-O ' + sse2_opts])
+
+test('T3736', normal, run_command, ['$MAKE -s --no-print-directory T3736'])
+test('T3738',
+ [stats_num_field('peak_megabytes_allocated', 1,
+ 1),
+ # expected value: 1 (amd64/Linux)
+ # expected value: 45648 (x86/Linux):
+ if_wordsize(32,
+ stats_num_field('bytes allocated', 40000,
+ 50000)),
+ if_wordsize(64,
+ stats_num_field('bytes allocated', 40000,
+ 60000)),
+ # expected value: 49400 (amd64/Linux)
+ only_ways(['normal'])
+ ],
+ compile_and_run,
+ ['-O'])
+
+test('MethSharing',
+ [stats_num_field('peak_megabytes_allocated', 1,
+ 1),
+ # expected value: 1 (amd64/Linux)
+ # expected value: 2685858140 (x86/OS X):
+ if_wordsize(32,
+ stats_num_field('bytes allocated', 300000000,
+ 400000000)),
+ # expected: 360940756 (x86/Linux)
+ if_wordsize(64,
+ stats_num_field('bytes allocated', 600000000,
+ 700000000)),
+ # expected: 640067672 (amd64/Linux)
+ only_ways(['normal'])
+ ],
+ compile_and_run,
+ ['-O'])
+test('T2902',
+ extra_clean(['T2902_A', 'T2902_B',
+ 'T2902_A.hi', 'T2902_B.hi',
+ 'T2902_A.o', 'T2902_B.o',
+ 'T2902_A_PairingSum.hi', 'T2902_B_PairingSum.hi',
+ 'T2902_A_PairingSum.o', 'T2902_B_PairingSum.o',
+ 'T2902_Sum.hi',
+ 'T2902_Sum.o']),
+ run_command,
+ ['$MAKE -s --no-print-directory T2902'])
+test('T149',
+ [expect_broken(149),
+ extra_clean(['T149_A', 'T149_B',
+ 'T149_A.hi', 'T149_B.hi',
+ 'T149_A.o', 'T149_B.o'])],
+ run_command,
+ ['$MAKE -s --no-print-directory T149'])
+
+test('T5113',
+ [
+ if_wordsize(32,
+ stats_num_field('bytes allocated', 3000000,
+ 5000000)),
+ if_wordsize(64,
+ stats_num_field('bytes allocated', 8000000,
+ 9000000)),
+ only_ways(['normal'])
+ ],
+ compile_and_run,
+ ['-O'])
+
+
+test('T4978',
+ [if_wordsize(32,
+ stats_num_field('bytes allocated', 9000000,
+ 11000000)),
+ if_wordsize(64,
+ stats_num_field('bytes allocated', 9000000,
+ 11000000)),
+ # expected value: 10137680 (amd64/Linux)
+ only_ways(['normal'])
+ ],
+ compile_and_run,
+ ['-O2'])
+
+test('T5205',
+ [if_wordsize(32,
+ stats_num_field('bytes allocated', 40000,
+ 50000)),
+ # expected value: 47088 (x86/Darwin)
+ if_wordsize(64,
+ stats_num_field('bytes allocated', 40000,
+ 60000)),
+ # expected value: 51320 (amd64/Linux)
+ only_ways(['normal'])
+ ],
+ compile_and_run,
+ ['-O'])
+