78a654afb65a76cf601f80d767e1a09e419ea5d3
[ghc-hetmet.git] / ghc / tests / lib / IO / hIsEOF002.hs
1 -- !!! test hIsEOF in various buffering situations
2
3 import IO
4
5 main = do
6   h <- openFile "hIsEOF002.hs" ReadMode
7   hSetBinaryMode h True
8   hSetBuffering h NoBuffering
9   hSeek h SeekFromEnd 0
10   hIsEOF h >>= print
11   hSeek h SeekFromEnd (-1)
12   hIsEOF h >>= print
13   hGetChar h >>= print 
14
15   hSetBuffering h LineBuffering
16   hSeek h SeekFromEnd 0
17   hIsEOF h >>= print
18   hSeek h SeekFromEnd (-1)
19   hIsEOF h >>= print
20   hGetChar h >>= print  
21
22   hSetBuffering h (BlockBuffering (Just 1))
23   hSeek h SeekFromEnd 0
24   hIsEOF h >>= print
25   hSeek h SeekFromEnd (-1)
26   hIsEOF h >>= print
27   hGetChar h >>= print  
28
29   hSetBuffering h (BlockBuffering Nothing)
30   hSeek h SeekFromEnd 0
31   hIsEOF h >>= print
32   hSeek h SeekFromEnd (-1)
33   hIsEOF h >>= print
34   hGetChar h >>= print  
35   hClose h
36
37   h <- openFile "hIsEOF002.out" WriteMode
38   hPutStrLn h "hello, world"
39   hClose h
40
41   h <- openFile "hIsEOF002.out" ReadWriteMode
42   hSetBinaryMode h True
43   hSetBuffering h NoBuffering
44   hSeek h SeekFromEnd 0
45   hIsEOF h >>= print
46   hPutChar h 'x'
47   hIsEOF h >>= print
48   hSeek h SeekFromEnd (-1)
49   hIsEOF h >>= print
50   hGetChar h >>= print