diff options
author | David Terei <davidterei@gmail.com> | 2011-07-20 11:09:03 -0700 |
---|---|---|
committer | David Terei <davidterei@gmail.com> | 2011-07-20 11:26:35 -0700 |
commit | 16514f272fb42af6e9c7674a9bd6c9dce369231f (patch) | |
tree | e4f332b45fe65e2a7a2451be5674f887b42bf199 /testsuite/tests/lib/IO/hSetEncoding001.hs | |
parent | ebd422aed41048476aa61dd4c520d43becd78682 (diff) | |
download | haskell-16514f272fb42af6e9c7674a9bd6c9dce369231f.tar.gz |
Move tests from tests/ghc-regress/* to just tests/*
Diffstat (limited to 'testsuite/tests/lib/IO/hSetEncoding001.hs')
-rw-r--r-- | testsuite/tests/lib/IO/hSetEncoding001.hs | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/testsuite/tests/lib/IO/hSetEncoding001.hs b/testsuite/tests/lib/IO/hSetEncoding001.hs new file mode 100644 index 0000000000..95f570d094 --- /dev/null +++ b/testsuite/tests/lib/IO/hSetEncoding001.hs @@ -0,0 +1,49 @@ +import System.IO +import GHC.IO.Handle +import GHC.IO.Encoding +import System.Environment + +-- Test switching encodings +-- The test file is built by the Makefile + +main = do + [file] <- getArgs + test file NoBuffering + test file (BlockBuffering Nothing) + test file (BlockBuffering (Just 5)) + +test file buf = do + hSetEncoding stdout utf8 + h <- openBinaryFile file ReadMode + hSetBuffering stdout buf + putStrLn "no encoding:" + getUntilX h + hSetEncoding h utf8 + putStrLn "UTF8:" + getUntilX h + hSetEncoding h utf16le + putStrLn "UTF16LE:" + getUntilX h + hSetEncoding h utf16be + putStrLn "UTF16BE:" + getUntilX h + hSetEncoding h utf16 + putStrLn "UTF16:" + getUntilX h + hSetEncoding h utf32 + putStrLn "UTF32:" + getUntilX h + hSetEncoding h utf32le + putStrLn "UTF32LE:" + getUntilX h + hSetEncoding h utf32be + putStrLn "UTF32BE:" + getUntilX h + hSetEncoding h utf8_bom + putStrLn "UTF8-BOM:" + getUntilX h + hIsEOF h >>= print + +getUntilX h = do + c <- hGetChar h + if c == 'X' then return () else do putChar c; getUntilX h |