summaryrefslogtreecommitdiff
path: root/testsuite/tests
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests')
-rw-r--r--testsuite/tests/perf/space_leaks/T4029.script335
-rw-r--r--testsuite/tests/perf/space_leaks/T4029a.hs3
-rw-r--r--testsuite/tests/perf/space_leaks/T4029b.hs23
-rw-r--r--testsuite/tests/perf/space_leaks/all.T11
-rw-r--r--testsuite/tests/rename/should_fail/T11071.stderr8
5 files changed, 376 insertions, 4 deletions
diff --git a/testsuite/tests/perf/space_leaks/T4029.script b/testsuite/tests/perf/space_leaks/T4029.script
new file mode 100644
index 0000000000..91135c9477
--- /dev/null
+++ b/testsuite/tests/perf/space_leaks/T4029.script
@@ -0,0 +1,335 @@
+-- Load a minimalist module 100 times
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+:load T4029a
+
+-- Load a minimalist module and reload it 99 times
+:load T4029a
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+:! touch T4029a.hs
+:reload
+
+-- Load a more complex module 10 times
+:load T4029b
+:load T4029b
+:load T4029b
+:load T4029b
+:load T4029b
+:load T4029b
+:load T4029b
+:load T4029b
+:load T4029b
+:load T4029b
+
+-- Load a more complex module and reload it 9 times
+:load T4029b
+:! touch T4029b.hs
+:reload
+:! touch T4029b.hs
+:reload
+:! touch T4029b.hs
+:reload
+:! touch T4029b.hs
+:reload
+:! touch T4029b.hs
+:reload
+:! touch T4029b.hs
+:reload
+:! touch T4029b.hs
+:reload
+:! touch T4029b.hs
+:reload
+:! touch T4029b.hs
+:reload
diff --git a/testsuite/tests/perf/space_leaks/T4029a.hs b/testsuite/tests/perf/space_leaks/T4029a.hs
new file mode 100644
index 0000000000..7c23a341f2
--- /dev/null
+++ b/testsuite/tests/perf/space_leaks/T4029a.hs
@@ -0,0 +1,3 @@
+module T4029a where
+
+data A = A
diff --git a/testsuite/tests/perf/space_leaks/T4029b.hs b/testsuite/tests/perf/space_leaks/T4029b.hs
new file mode 100644
index 0000000000..c473685687
--- /dev/null
+++ b/testsuite/tests/perf/space_leaks/T4029b.hs
@@ -0,0 +1,23 @@
+module T4029b where
+
+
+data A01 = A01 deriving (Eq,Ord,Show,Read)
+data A02 = A02 deriving (Eq,Ord,Show,Read)
+data A03 = A03 deriving (Eq,Ord,Show,Read)
+data A04 = A04 deriving (Eq,Ord,Show,Read)
+data A05 = A05 deriving (Eq,Ord,Show,Read)
+data A06 = A06 deriving (Eq,Ord,Show,Read)
+data A07 = A07 deriving (Eq,Ord,Show,Read)
+data A08 = A08 deriving (Eq,Ord,Show,Read)
+data A09 = A09 deriving (Eq,Ord,Show,Read)
+data A10 = A10 deriving (Eq,Ord,Show,Read)
+data A11 = A11 deriving (Eq,Ord,Show,Read)
+data A12 = A12 deriving (Eq,Ord,Show,Read)
+data A13 = A13 deriving (Eq,Ord,Show,Read)
+data A14 = A14 deriving (Eq,Ord,Show,Read)
+data A15 = A15 deriving (Eq,Ord,Show,Read)
+data A16 = A16 deriving (Eq,Ord,Show,Read)
+data A17 = A17 deriving (Eq,Ord,Show,Read)
+data A18 = A18 deriving (Eq,Ord,Show,Read)
+data A19 = A19 deriving (Eq,Ord,Show,Read)
+data A20 = A20 deriving (Eq,Ord,Show,Read)
diff --git a/testsuite/tests/perf/space_leaks/all.T b/testsuite/tests/perf/space_leaks/all.T
index 722c316e70..2504bdac19 100644
--- a/testsuite/tests/perf/space_leaks/all.T
+++ b/testsuite/tests/perf/space_leaks/all.T
@@ -53,3 +53,14 @@ test('T2762',
test('T4018',
[ only_ways(['optasm']), extra_run_opts('+RTS -M10m -RTS') ],
compile_and_run, ['-fno-state-hack'])
+
+test('T4029',
+ [stats_num_field('peak_megabytes_allocated',
+ [(wordsize(64), 66, 10)]),
+ # 2016-02-26: 66 (amd64/Linux) INITIAL
+ stats_num_field('max_bytes_used',
+ [(wordsize(64), 24071720, 5)])
+ # 2016-02-26: 24071720 (amd64/Linux) INITIAL
+ ],
+ ghci_script,
+ ['T4029.script'])
diff --git a/testsuite/tests/rename/should_fail/T11071.stderr b/testsuite/tests/rename/should_fail/T11071.stderr
index e3d5e30377..2feeadd040 100644
--- a/testsuite/tests/rename/should_fail/T11071.stderr
+++ b/testsuite/tests/rename/should_fail/T11071.stderr
@@ -9,11 +9,11 @@ T11071.hs:20:12: error:
T11071.hs:21:12: error:
Not in scope: ‘M.foobar’
- Neither ‘Data.Map’ nor ‘Data.IntMap’ exports ‘foobar’.
+ Neither ‘Data.IntMap’ nor ‘Data.Map’ exports ‘foobar’.
T11071.hs:22:12: error:
Not in scope: ‘M'.foobar’
- Neither ‘Data.Map’, ‘Data.IntMap’ nor ‘System.IO’ exports ‘foobar’.
+ Neither ‘Data.IntMap’, ‘Data.Map’ nor ‘System.IO’ exports ‘foobar’.
T11071.hs:23:12: error:
Not in scope: ‘Data.List.sort’
@@ -29,8 +29,8 @@ T11071.hs:24:12: error:
T11071.hs:25:12: error:
Not in scope: ‘M.size’
Perhaps you want to add ‘size’ to one of these import lists:
- ‘Data.Map’ (T11071.hs:4:1-33)
‘Data.IntMap’ (T11071.hs:5:1-36)
+ ‘Data.Map’ (T11071.hs:4:1-33)
T11071.hs:26:12: error:
Not in scope: ‘M.valid’
@@ -49,5 +49,5 @@ T11071.hs:28:12: error:
Not in scope: ‘M'.size’
Perhaps you want to remove ‘size’ from the hiding clauses
in one of these imports:
- ‘Data.Map’ (T11071.hs:10:1-53)
‘Data.IntMap’ (T11071.hs:12:1-48)
+ ‘Data.Map’ (T11071.hs:10:1-53)