summaryrefslogtreecommitdiff
path: root/testsuite/tests/perf
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/perf')
-rw-r--r--testsuite/tests/perf/compiler/Makefile4
-rw-r--r--testsuite/tests/perf/compiler/all.T16
-rw-r--r--testsuite/tests/perf/space_leaks/T4029.script216
-rw-r--r--testsuite/tests/perf/space_leaks/all.T2
4 files changed, 129 insertions, 109 deletions
diff --git a/testsuite/tests/perf/compiler/Makefile b/testsuite/tests/perf/compiler/Makefile
index 66597883b6..20f5704450 100644
--- a/testsuite/tests/perf/compiler/Makefile
+++ b/testsuite/tests/perf/compiler/Makefile
@@ -12,3 +12,7 @@ T11068:
'$(TEST_HC)' $(TEST_HC_OPTS) -c -O T11068a.hs
'$(TEST_HC)' $(TEST_HC_OPTS) -c -O T11068b.hs
-'$(TEST_HC)' $(TEST_HC_OPTS) -c -O T11068.hs -ddump-simpl | grep 'Generic'
+
+MultiModulesRecomp:
+ ./genMultiLayerModules
+ '$(TEST_HC)' $(TEST_HC_OPTS) -v0 MultiLayerModules.hs
diff --git a/testsuite/tests/perf/compiler/all.T b/testsuite/tests/perf/compiler/all.T
index 04d03e0568..eadf2ff920 100644
--- a/testsuite/tests/perf/compiler/all.T
+++ b/testsuite/tests/perf/compiler/all.T
@@ -276,6 +276,22 @@ test('MultiLayerModules',
multimod_compile,
['MultiLayerModules', '-v0'])
+# MultiLayerModules flip flops by 2.5%, depending on the
+# number of modules within GHC (#19293). Just widen the
+# acceptance window until we figured out how to fix it.
+test('MultiLayerModulesRecomp',
+ [ collect_compiler_stats('bytes allocated',3),
+ pre_cmd('$MAKE -s --no-print-directory MultiModulesRecomp'),
+ extra_files(['genMultiLayerModules']),
+ compile_timeout_multiplier(5)
+ # this is _a lot_
+ # but this test has been failing every now and then,
+ # especially on i386. Let's just give it some room
+ # to complete successfully reliably everywhere.
+ ],
+ multimod_compile,
+ ['MultiLayerModules', '-v0'])
+
test('ManyConstructors',
[ collect_compiler_stats('bytes allocated',2),
pre_cmd('./genManyConstructors'),
diff --git a/testsuite/tests/perf/space_leaks/T4029.script b/testsuite/tests/perf/space_leaks/T4029.script
index 91135c9477..f2faa4fd1a 100644
--- a/testsuite/tests/perf/space_leaks/T4029.script
+++ b/testsuite/tests/perf/space_leaks/T4029.script
@@ -102,203 +102,203 @@
-- Load a minimalist module and reload it 99 times
:load T4029a
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-:! touch T4029a.hs
+:! echo >> T4029a.hs
:reload
-- Load a more complex module 10 times
@@ -315,21 +315,21 @@
-- Load a more complex module and reload it 9 times
:load T4029b
-:! touch T4029b.hs
+:! echo >> T4029b.hs
:reload
-:! touch T4029b.hs
+:! echo >> T4029b.hs
:reload
-:! touch T4029b.hs
+:! echo >> T4029b.hs
:reload
-:! touch T4029b.hs
+:! echo >> T4029b.hs
:reload
-:! touch T4029b.hs
+:! echo >> T4029b.hs
:reload
-:! touch T4029b.hs
+:! echo >> T4029b.hs
:reload
-:! touch T4029b.hs
+:! echo >> T4029b.hs
:reload
-:! touch T4029b.hs
+:! echo >> T4029b.hs
:reload
-:! touch T4029b.hs
+:! echo >> T4029b.hs
:reload
diff --git a/testsuite/tests/perf/space_leaks/all.T b/testsuite/tests/perf/space_leaks/all.T
index deb5ea38e4..f6638555c9 100644
--- a/testsuite/tests/perf/space_leaks/all.T
+++ b/testsuite/tests/perf/space_leaks/all.T
@@ -31,7 +31,7 @@ test('T4018',
compile_and_run, ['-fno-state-hack'])
test('T4029',
- [collect_runtime_residency(10),
+ [copy_files, collect_runtime_residency(10),
],
ghci_script,
['T4029.script'])