T3307 and environment001 just fail on MSYS
[packages/base.git] / tests / hGetBuf003.stdout
1 import System.IO
2 import Foreign
3 import Foreign.C
4 import Control.Monad
5
6 main = do test True; test False
7
8 test blocking = do
9   h <- openBinaryFile "hGetBuf003.hs" ReadMode
10
11   let sz = 42
12       loop = do
13          -- mix ordinary char buffering with hGetBuf
14          eof <- hIsEOF h
15          when (not eof) $ hGetChar h >>= putChar
16          b <- allocaBytes sz $ \ptr -> do
17                 r <- (if blocking then hGetBuf else hGetBufNonBlocking) h ptr sz
18                 if (r == 0)
19                    then return True
20                    else do s <- peekCStringLen (ptr,r)
21                            putStr s
22                            return False
23          if b then return () else loop -- tail call
24
25   loop
26
27 import System.IO
28 import Foreign
29 import Foreign.C
30 import Control.Monad
31
32 main = do test True; test False
33
34 test blocking = do
35   h <- openBinaryFile "hGetBuf003.hs" ReadMode
36
37   let sz = 42
38       loop = do
39          -- mix ordinary char buffering with hGetBuf
40          eof <- hIsEOF h
41          when (not eof) $ hGetChar h >>= putChar
42          b <- allocaBytes sz $ \ptr -> do
43                 r <- (if blocking then hGetBuf else hGetBufNonBlocking) h ptr sz
44                 if (r == 0)
45                    then return True
46                    else do s <- peekCStringLen (ptr,r)
47                            putStr s
48                            return False
49          if b then return () else loop -- tail call
50
51   loop
52