From 5416852ed231e77687e07e795d18fb7de4ff20e9 Mon Sep 17 00:00:00 2001
From: simonmar <unknown>
Date: Tue, 25 Jul 2000 15:48:16 +0000
Subject: [PATCH] [project @ 2000-07-25 15:48:16 by simonmar] Add test for
 handle finalization bug, fixed in   1.60      +1 -2     
 fptools/ghc/lib/std/PrelHandle.lhs   1.15      +4 -10    
 fptools/ghc/lib/std/PrelIO.lhs

---
 ghc/tests/io/should_run/io033.hs     | 27 +++++++++++++++
 ghc/tests/io/should_run/io033.stdout | 50 ++++++++++++++++++++++++++++
 2 files changed, 77 insertions(+)
 create mode 100644 ghc/tests/io/should_run/io033.hs
 create mode 100644 ghc/tests/io/should_run/io033.stdout

diff --git a/ghc/tests/io/should_run/io033.hs b/ghc/tests/io/should_run/io033.hs
new file mode 100644
index 000000000000..33c9ed7e59ea
--- /dev/null
+++ b/ghc/tests/io/should_run/io033.hs
@@ -0,0 +1,27 @@
+--- !!! test for bug in handle finalization fixed in 
+--- !!!  1.60      +1 -2      fptools/ghc/lib/std/PrelHandle.lhs
+--- !!!  1.15      +4 -10     fptools/ghc/lib/std/PrelIO.lhs
+
+module Main (main) where
+
+import IO
+import System
+
+doTest :: IO ()
+doTest = do
+  sd <- openFile "io033.hs" ReadWriteMode
+  result <- hGetContents sd
+  slurp result
+  hClose sd
+  if "" `elem` lines (filter (/= '\r') result)
+   then
+    putStrLn "ok"
+   else
+    putStrLn "fail"
+
+slurp :: String -> IO ()
+slurp [] = return ()
+slurp (x:xs) = x `seq` slurp xs
+
+main :: IO ()
+main = sequence_ (take 50 (repeat doTest))
diff --git a/ghc/tests/io/should_run/io033.stdout b/ghc/tests/io/should_run/io033.stdout
new file mode 100644
index 000000000000..806cc80d3953
--- /dev/null
+++ b/ghc/tests/io/should_run/io033.stdout
@@ -0,0 +1,50 @@
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
-- 
GitLab