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