summaryrefslogtreecommitdiff
path: root/testsuite/tests/lib/IO/hIsEOF002.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/lib/IO/hIsEOF002.hs')
-rw-r--r--testsuite/tests/lib/IO/hIsEOF002.hs48
1 files changed, 48 insertions, 0 deletions
diff --git a/testsuite/tests/lib/IO/hIsEOF002.hs b/testsuite/tests/lib/IO/hIsEOF002.hs
new file mode 100644
index 0000000000..26f5abd9a7
--- /dev/null
+++ b/testsuite/tests/lib/IO/hIsEOF002.hs
@@ -0,0 +1,48 @@
+-- !!! test hIsEOF in various buffering situations
+
+import System.IO
+
+main = do
+ h <- openFile "hIsEOF002.hs" ReadMode
+ hSetBuffering h NoBuffering
+ hSeek h SeekFromEnd 0
+ hIsEOF h >>= print
+ hSeek h SeekFromEnd (-1)
+ hIsEOF h >>= print
+ hGetChar h >>= print
+
+ hSetBuffering h LineBuffering
+ hSeek h SeekFromEnd 0
+ hIsEOF h >>= print
+ hSeek h SeekFromEnd (-1)
+ hIsEOF h >>= print
+ hGetChar h >>= print
+
+ hSetBuffering h (BlockBuffering (Just 1))
+ hSeek h SeekFromEnd 0
+ hIsEOF h >>= print
+ hSeek h SeekFromEnd (-1)
+ hIsEOF h >>= print
+ hGetChar h >>= print
+
+ hSetBuffering h (BlockBuffering Nothing)
+ hSeek h SeekFromEnd 0
+ hIsEOF h >>= print
+ hSeek h SeekFromEnd (-1)
+ hIsEOF h >>= print
+ hGetChar h >>= print
+ hClose h
+
+ h <- openFile "hIsEOF002.out" WriteMode
+ hPutStrLn h "hello, world"
+ hClose h
+
+ h <- openFile "hIsEOF002.out" ReadWriteMode
+ hSetBuffering h NoBuffering
+ hSeek h SeekFromEnd 0
+ hIsEOF h >>= print
+ hPutChar h 'x'
+ hIsEOF h >>= print
+ hSeek h SeekFromEnd (-1)
+ hIsEOF h >>= print
+ hGetChar h >>= print