summaryrefslogtreecommitdiff
path: root/testsuite/tests/lib/IO/openFile004.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/lib/IO/openFile004.hs')
-rw-r--r--testsuite/tests/lib/IO/openFile004.hs23
1 files changed, 23 insertions, 0 deletions
diff --git a/testsuite/tests/lib/IO/openFile004.hs b/testsuite/tests/lib/IO/openFile004.hs
new file mode 100644
index 0000000000..4124abb0de
--- /dev/null
+++ b/testsuite/tests/lib/IO/openFile004.hs
@@ -0,0 +1,23 @@
+-- !!! Open a non-existent file for writing
+
+import Control.Monad
+import Data.Char
+import System.Directory
+import System.IO
+
+file = "openFile004.out"
+
+main = do
+ b <- doesFileExist file
+ when b (removeFile file)
+
+ h <- openFile file WriteMode
+ hPutStr h "hello world\n"
+ hClose h
+
+ h <- openFile file ReadMode
+ let loop = do
+ b <- hIsEOF h
+ if b then return ()
+ else do c <- hGetChar h; putChar c; loop
+ loop