diff --git a/ghc/tests/io/should_run/io033.hs b/ghc/tests/io/should_run/io033.hs new file mode 100644 index 0000000000000000000000000000000000000000..33c9ed7e59ea662fb9191cb41f507b7a503af1d7 --- /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 0000000000000000000000000000000000000000..806cc80d395361379fdeb827f8d69f36d2d5c653 --- /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