summaryrefslogtreecommitdiff
path: root/testsuite/tests/rts
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2013-02-07 09:52:20 +0000
committerSimon Marlow <marlowsd@gmail.com>2013-02-07 09:56:50 +0000
commit164f705faecd02a78a93970699a99bc00d94e8b2 (patch)
treed8b712740bd379197fe855aeffddb50500c51d6c /testsuite/tests/rts
parent25af5c05fc9a972fb4ef1af470c9575312985053 (diff)
downloadhaskell-164f705faecd02a78a93970699a99bc00d94e8b2.tar.gz
add test for #7636
Diffstat (limited to 'testsuite/tests/rts')
-rw-r--r--testsuite/tests/rts/T7636.hs13
-rw-r--r--testsuite/tests/rts/T7636.stderr1
-rw-r--r--testsuite/tests/rts/all.T2
3 files changed, 16 insertions, 0 deletions
diff --git a/testsuite/tests/rts/T7636.hs b/testsuite/tests/rts/T7636.hs
new file mode 100644
index 0000000000..9e3dbd69d2
--- /dev/null
+++ b/testsuite/tests/rts/T7636.hs
@@ -0,0 +1,13 @@
+import GHC.Conc.Sync
+import System.Environment
+
+test n = atomically $ f [1..n]
+ where
+ f [] = retry
+ f (x:xs) = do
+ ys <- f xs
+ return (x:ys)
+
+main = do
+ [n] <- getArgs
+ test (read n)
diff --git a/testsuite/tests/rts/T7636.stderr b/testsuite/tests/rts/T7636.stderr
new file mode 100644
index 0000000000..76984e3b7a
--- /dev/null
+++ b/testsuite/tests/rts/T7636.stderr
@@ -0,0 +1 @@
+T7636: thread blocked indefinitely in an STM transaction
diff --git a/testsuite/tests/rts/all.T b/testsuite/tests/rts/all.T
index 00f9475f23..2c0ae61800 100644
--- a/testsuite/tests/rts/all.T
+++ b/testsuite/tests/rts/all.T
@@ -162,3 +162,5 @@ test('T7040_ghci', [ only_ways(['ghci']),
test('T7227', [ extra_run_opts('+RTS -tT7227.stat --machine-readable -RTS'),
extra_clean(['T7227.stat']) ]
, compile_and_run, [''] )
+
+test('T7636', [ exit_code(1), extra_run_opts('100000') ], compile_and_run, [''] )