[project @ 2001-06-07 10:45:30 by sewardj]
authorsewardj <unknown>
Thu, 7 Jun 2001 10:45:30 +0000 (10:45 +0000)
committersewardj <unknown>
Thu, 7 Jun 2001 10:45:30 +0000 (10:45 +0000)
Track current changes in the text-mode-seek-on-Windows saga.

17 files changed:
ghc/tests/lib/IO/Makefile
ghc/tests/lib/IO/hGetLine001.hs
ghc/tests/lib/IO/hGetLine001.stdout-mingw
ghc/tests/lib/IO/hGetPosn001.hs
ghc/tests/lib/IO/hIsEOF002.hs
ghc/tests/lib/IO/hReady001.hs
ghc/tests/lib/IO/hSeek001.hs
ghc/tests/lib/IO/hSeek002.hs
ghc/tests/lib/IO/hSeek003.hs
ghc/tests/lib/IO/hSeek004.hs
ghc/tests/lib/IO/ioeGetErrorString001.hs
ghc/tests/lib/IO/ioeGetFileName001.hs
ghc/tests/lib/IO/ioeGetHandle001.hs
ghc/tests/lib/IO/openFile003.stdout-mingw [new file with mode: 0644]
ghc/tests/lib/IO/openFile005.stdout-mingw [new file with mode: 0644]
ghc/tests/lib/IO/readwrite001.hs
ghc/tests/lib/IO/readwrite002.hs

index 3504bd5..05bbe3b 100644 (file)
@@ -1,5 +1,5 @@
 # -----------------------------------------------------------------------------
-# $Id: Makefile,v 1.7 2001/06/01 14:33:01 sewardj Exp $
+# $Id: Makefile,v 1.8 2001/06/07 10:45:30 sewardj Exp $
 
 TOP = ../..
 
@@ -7,7 +7,7 @@ include $(TOP)/mk/boilerplate.mk
 
 include $(TOP)/mk/should_run.mk
 
-SRC_HC_OPTS += -dcore-lint
+SRC_HC_OPTS += -dcore-lint -cpp
 
 hGetBuffering001_RUNTEST_OPTS += -i hGetBuffering001.hs
 hSetBuffering002_RUNTEST_OPTS += -i hSetBuffering002.hs
@@ -21,6 +21,8 @@ hGetLine001_RUNTEST_OPTS      += -i hGetLine001.hs -o1 hGetLine001.stdout-mingw
 hFileSize001_RUNTEST_OPTS     += -o1 hFileSize001.stdout-mingw
 hSeek004_RUNTEST_OPTS         += -o1 hSeek004.stdout-mingw
 hGetPosn001_RUNTEST_OPTS      += -o1 hGetPosn001.stdout-mingw
+openFile003_RUNTEST_OPTS      += -o1 openFile003.stdout-mingw
+openFile005_RUNTEST_OPTS      += -o1 openFile005.stdout-mingw
 
 .PRECIOUS: %.o %.bin
 
index a950ab8..2f612ad 100644 (file)
@@ -1,6 +1,9 @@
 -- !!! testing hGetLine
 
 import IO
+#if defined(__MINGW32__)
+import PrelHandle(hSetBinaryMode)
+#endif
 
 -- one version of 'cat'
 main = do
@@ -10,7 +13,10 @@ main = do
   loop stdin 
 
   h <- openFile "hGetLine001.hs" ReadMode
+
+# if defined(__MINGW32__)
   hSetBinaryMode h True
+# endif
 
   hSetBuffering h NoBuffering
   loop h
index a70b13d..d3dc4ef 100644 (file)
@@ -1,6 +1,9 @@
 -- !!! testing hGetLine
 
 import IO
+#if defined(__MINGW32__)
+import PrelHandle(hSetBinaryMode)
+#endif
 
 -- one version of 'cat'
 main = do
@@ -10,7 +13,10 @@ main = do
   loop stdin 
 
   h <- openFile "hGetLine001.hs" ReadMode
+
+# if defined(__MINGW32__)
   hSetBinaryMode h True
+# endif
 
   hSetBuffering h NoBuffering
   loop h
@@ -25,6 +31,9 @@ main = do
 -- !!! testing hGetLine\r
 \r
 import IO\r
+#if defined(__MINGW32__)\r
+import PrelHandle(hSetBinaryMode)\r
+#endif\r
 \r
 -- one version of 'cat'\r
 main = do\r
@@ -34,7 +43,10 @@ main = do
   loop stdin \r
 \r
   h <- openFile "hGetLine001.hs" ReadMode\r
+\r
+# if defined(__MINGW32__)\r
   hSetBinaryMode h True\r
+# endif\r
 \r
   hSetBuffering h NoBuffering\r
   loop h\r
@@ -49,6 +61,9 @@ main = do
 -- !!! testing hGetLine\r
 \r
 import IO\r
+#if defined(__MINGW32__)\r
+import PrelHandle(hSetBinaryMode)\r
+#endif\r
 \r
 -- one version of 'cat'\r
 main = do\r
@@ -58,7 +73,10 @@ main = do
   loop stdin \r
 \r
   h <- openFile "hGetLine001.hs" ReadMode\r
+\r
+# if defined(__MINGW32__)\r
   hSetBinaryMode h True\r
+# endif\r
 \r
   hSetBuffering h NoBuffering\r
   loop h\r
@@ -73,6 +91,9 @@ main = do
 -- !!! testing hGetLine\r
 \r
 import IO\r
+#if defined(__MINGW32__)\r
+import PrelHandle(hSetBinaryMode)\r
+#endif\r
 \r
 -- one version of 'cat'\r
 main = do\r
@@ -82,7 +103,10 @@ main = do
   loop stdin \r
 \r
   h <- openFile "hGetLine001.hs" ReadMode\r
+\r
+# if defined(__MINGW32__)\r
   hSetBinaryMode h True\r
+# endif\r
 \r
   hSetBuffering h NoBuffering\r
   loop h\r
index f8726b5..c1b6836 100644 (file)
@@ -4,16 +4,22 @@ module Main(main) where
 
 import IO
 import Monad
-
 import Directory (removeFile, doesFileExist)
+#if defined(__MINGW32__)
+import PrelHandle(hSetBinaryMode)
+#endif
 
 main = do
   hIn <- openFile "hGetPosn001.in" ReadMode
+# if defined(__MINGW32__)
   hSetBinaryMode hIn True
+# endif
   f <- doesFileExist "hGetPosn001.out"
   when f (removeFile "hGetPosn001.out")
   hOut <- openFile "hGetPosn001.out" ReadWriteMode
+# if defined(__MINGW32__)
   hSetBinaryMode hOut True
+# endif
   bof <- hGetPosn hIn
   copy hIn hOut
   hSetPosn bof
index 78a654a..d2c6070 100644 (file)
@@ -1,10 +1,15 @@
 -- !!! test hIsEOF in various buffering situations
 
 import IO
+#if defined(__MINGW32__)
+import PrelHandle(hSetBinaryMode)
+#endif
 
 main = do
   h <- openFile "hIsEOF002.hs" ReadMode
+# if defined(__MINGW32__)
   hSetBinaryMode h True
+# endif
   hSetBuffering h NoBuffering
   hSeek h SeekFromEnd 0
   hIsEOF h >>= print
@@ -39,7 +44,9 @@ main = do
   hClose h
 
   h <- openFile "hIsEOF002.out" ReadWriteMode
+# if defined(__MINGW32__)
   hSetBinaryMode h True
+# endif
   hSetBuffering h NoBuffering
   hSeek h SeekFromEnd 0
   hIsEOF h >>= print
index daae59b..2c2431c 100644 (file)
@@ -4,9 +4,14 @@
  -- but in GHC it returns True (known bug).
 
 import IO
+#if defined(__MINGW32__)
+import PrelHandle(hSetBinaryMode)
+#endif
 
 main = do
  h <- openFile "hReady001.hs" ReadMode
+#if defined(__MINGW32__)
  hSetBinaryMode h True
+#endif
  hSeek h SeekFromEnd 0
  hReady h >>= print
index 98b75f5..9bfd4ba 100644 (file)
@@ -1,10 +1,15 @@
 -- !!! Test seeking
 
 import IO
+#if defined(__MINGW32__)
+import PrelHandle(hSetBinaryMode)
+#endif
 
 main = do
     h  <- openFile "hSeek001.in" ReadMode
+#   if defined(__MINGW32__)
     hSetBinaryMode h True
+#   endif
     True <- hIsSeekable h
     hSeek h SeekFromEnd (-1)
     z <- hGetChar h
index d11a3df..c9b795f 100644 (file)
@@ -3,11 +3,16 @@ module Main(main) where
 
 import IO
 import Directory ( removeFile )
+#if defined(__MINGW32__)
+import PrelHandle(hSetBinaryMode)
+#endif
 
 main :: IO ()
 main = do
    hdl <- openFile "hSeek002.hs" ReadMode
+#  if defined(__MINGW32__)
    hSetBinaryMode hdl True
+#  endif
    flg <- hIsEOF hdl
    print flg
    hSeek hdl SeekFromEnd 0
index d6fa8e1..6ab3015 100644 (file)
@@ -3,6 +3,9 @@ module Main(main) where
 
 import IO
 import Monad ( sequence )
+#if defined(__MINGW32__)
+import PrelHandle(hSetBinaryMode)
+#endif
 
 testPosns :: Handle -> BufferMode -> IO ()
 testPosns hdl bmo = do
@@ -15,7 +18,9 @@ bmo_ls = [NoBuffering, LineBuffering, BlockBuffering Nothing,
 
 main = do
   hdl  <- openFile "hSeek003.hs" ReadMode
+# if defined(__MINGW32__)
   hSetBinaryMode hdl True
+# endif
   sequence (zipWith testPosns (repeat hdl) bmo_ls)
   hClose hdl
 
index 5078388..bce8105 100644 (file)
@@ -1,8 +1,13 @@
 -- !!! can't seek an AppendMode handle
 
 import IO
+#if defined(__MINGW32__)
+import PrelHandle(hSetBinaryMode)
+#endif
 
 main = do
   h <- openFile "hSeek004.out" AppendMode
+# if defined(__MINGW32__)
   hSetBinaryMode h True
+# endif
   try (hSeek h AbsoluteSeek 0) >>= print
index dc47f91..0a34e4b 100644 (file)
@@ -2,10 +2,15 @@
 
 import IO
 import Maybe
+#if defined(__MINGW32__)
+import PrelHandle(hSetBinaryMode)
+#endif
 
 main = do
   h <- openFile "ioeGetErrorString001.hs" ReadMode
+# if defined(__MINGW32__)
   hSetBinaryMode h True
+# endif
   hSeek h SeekFromEnd 0
   (hGetChar h >> return ()) `catch`
        \e -> if isEOFError e
index ee7ec29..dd60f68 100644 (file)
@@ -1,10 +1,15 @@
 -- !!! test ioeGetFileName
 
 import IO
+#if defined(__MINGW32__)
+import PrelHandle(hSetBinaryMode)
+#endif
 
 main = do
   h <- openFile "ioeGetFileName001.hs" ReadMode
+# if defined(__MINGW32__)
   hSetBinaryMode h True
+# endif
   hSeek h SeekFromEnd 0
   (hGetChar h >> return ()) `catch`
        \e -> if isEOFError e 
index e7e8f71..dc3d375 100644 (file)
@@ -2,10 +2,15 @@
 
 import IO
 import Maybe
+#if defined(__MINGW32__)
+import PrelHandle(hSetBinaryMode)
+#endif
 
 main = do
   h <- openFile "ioeGetHandle001.hs" ReadMode
+# if defined(__MINGW32__)
   hSetBinaryMode h True
+# endif
   hSeek h SeekFromEnd 0
   (hGetChar h >> return ()) `catch`
        \e -> if isEOFError e && fromJust (ioeGetHandle e) == h
diff --git a/ghc/tests/lib/IO/openFile003.stdout-mingw b/ghc/tests/lib/IO/openFile003.stdout-mingw
new file mode 100644 (file)
index 0000000..f7d4410
--- /dev/null
@@ -0,0 +1,16 @@
+Left permission denied
+Action: openFile
+Reason: Permission denied
+File: .
+Left permission denied
+Action: openFile
+Reason: Permission denied
+File: .
+Left permission denied
+Action: openFile
+Reason: Permission denied
+File: .
+Left permission denied
+Action: openFile
+Reason: Permission denied
+File: .
diff --git a/ghc/tests/lib/IO/openFile005.stdout-mingw b/ghc/tests/lib/IO/openFile005.stdout-mingw
new file mode 100644 (file)
index 0000000..9c97133
--- /dev/null
@@ -0,0 +1,12 @@
+two writes (should fail)
+Right {loc=openFile005.out1,type=writable,binary=False,buffering=block (512)}
+write and an append (should fail)
+Right {loc=openFile005.out1,type=writable (append),binary=False,buffering=block (512)}
+read/write and a write (should fail)
+Right {loc=openFile005.out1,type=writable,binary=False,buffering=block (512)}
+read and a read/write (should fail)
+Right {loc=openFile005.out1,type=read-writable,binary=False,buffering=block (512)}
+write and a read (should fail)
+Right {loc=openFile005.out1,type=readable,binary=False,buffering=block (512)}
+two writes, different files (silly, but should succeed)
+two reads, should succeed
index c3b542d..ebd80cf 100644 (file)
@@ -4,12 +4,17 @@ module Main(main) where
 import IO
 import Directory ( removeFile, doesFileExist )
 import Monad
+#if defined(__MINGW32__)
+import PrelHandle(hSetBinaryMode)
+#endif
 
 main = do
   f <- doesFileExist "readwrite001.inout" 
   when f (removeFile "readwrite001.inout")
   hdl <- openFile "readwrite001.inout" ReadWriteMode
+# if defined(__MINGW32__)
   hSetBinaryMode hdl True
+# endif
   hSetBuffering hdl LineBuffering
   hPutStr hdl "as"
   hSeek hdl AbsoluteSeek 0
index 0743e19..cd6e34d 100644 (file)
@@ -2,6 +2,9 @@
 import IO
 import Directory (removeFile, doesFileExist)
 import Monad
+#if defined(__MINGW32__)
+import PrelHandle(hSetBinaryMode)
+#endif
 
 -- This test is weird, full marks to whoever dreamt it up!
 
@@ -11,7 +14,9 @@ main = do
    f <- doesFileExist username
    when f (removeFile username)
    cd <- openFile username ReadWriteMode
+#  if defined(__MINGW32__)
    hSetBinaryMode cd True
+#  endif
    hSetBuffering stdin NoBuffering
    hSetBuffering stdout NoBuffering
    hSetBuffering cd NoBuffering