diff --git a/tests/all.T b/tests/all.T index 8f50fb5be42faee50ebad89182f2ed79ebd00417..c704f5ec41f18efb63f40f76aa61e6bb0ab5cda0 100644 --- a/tests/all.T +++ b/tests/all.T @@ -6,8 +6,7 @@ test('stm050', [extra_run_opts('10000')], compile_and_run, ['-package stm']) test('stm054', normal, compile_and_run, ['-package stm']) test('stm055', [exit_code(1), js_broken(22576)], compile_and_run, ['-package stm']) -test('stm056', only_ways(['threaded1','threaded2']), - compile_and_run, ['-package stm']) +test('stm056', only_ways(['threaded1','threaded2']), compile_and_run, ['-package stm']) test('stm061', normal, compile_and_run, ['-package stm']) test('T2411', ignore_stdout, compile_and_run, ['-package stm']) diff --git a/tests/stm056.hs b/tests/stm056.hs index de854f6e78f161b7d1a1de2ee92c31db72e81d0e..acee49f74ad7125febad6e78de3f102f94186714 100644 --- a/tests/stm056.hs +++ b/tests/stm056.hs @@ -11,8 +11,9 @@ inc tv = do writeTVar tv (v + 1) bad :: MVar () -> IO () -bad m = do { evaluate (1 `quot` 0); return () } - `finally` putMVar m () +bad m = handle (\(_ :: SomeException) -> putStrLn "bad" >> putMVar m ()) $ do + evaluate (1 `quot` 0) + return () main :: IO () main = do @@ -22,3 +23,4 @@ main = do forkOS (bad m) takeMVar m threadDelay 100000 -- allow time for the exception to be printed + diff --git a/tests/stm056.stderr b/tests/stm056.stderr deleted file mode 100644 index 1af622f069623c4797e1b1c0e7f2fb05464ba420..0000000000000000000000000000000000000000 --- a/tests/stm056.stderr +++ /dev/null @@ -1 +0,0 @@ -stm056: divide by zero diff --git a/tests/stm056.stdout b/tests/stm056.stdout new file mode 100644 index 0000000000000000000000000000000000000000..67be85f1274474029aad8a75b823592324305aa4 --- /dev/null +++ b/tests/stm056.stdout @@ -0,0 +1 @@ +bad