summaryrefslogtreecommitdiff
path: root/testsuite/tests/rts/return_mem_to_os.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/rts/return_mem_to_os.hs')
-rw-r--r--testsuite/tests/rts/return_mem_to_os.hs21
1 files changed, 21 insertions, 0 deletions
diff --git a/testsuite/tests/rts/return_mem_to_os.hs b/testsuite/tests/rts/return_mem_to_os.hs
new file mode 100644
index 0000000000..242ccc3bb0
--- /dev/null
+++ b/testsuite/tests/rts/return_mem_to_os.hs
@@ -0,0 +1,21 @@
+
+import Control.Concurrent
+import System.IO
+import System.Mem
+
+main :: IO ()
+main = do hSetBuffering stdout LineBuffering
+ mapM_ doIter [1..3]
+
+doIter :: Int -> IO ()
+doIter n = do putStrLn ("Iteration " ++ show n)
+ let xs = [n .. 1000000 + n]
+ putStrLn ("Last: " ++ show (last xs))
+ putStrLn "GC 1 start"
+ performGC
+ putStrLn "GC 1 done"
+ putStrLn ("Head: " ++ show (head xs))
+ putStrLn "GC 2 start"
+ performGC
+ putStrLn "GC 2 done"
+