diff options
Diffstat (limited to 'testsuite/tests/lib/System')
-rw-r--r-- | testsuite/tests/lib/System/Makefile | 3 | ||||
-rw-r--r-- | testsuite/tests/lib/System/all.T | 8 | ||||
-rw-r--r-- | testsuite/tests/lib/System/exitWith001.hs | 3 | ||||
-rw-r--r-- | testsuite/tests/lib/System/exitWith001.stdout | 0 | ||||
-rw-r--r-- | testsuite/tests/lib/System/getArgs001.hs | 9 | ||||
-rw-r--r-- | testsuite/tests/lib/System/getArgs001.stdout | 1 | ||||
-rw-r--r-- | testsuite/tests/lib/System/getEnv001.hs | 15 | ||||
-rw-r--r-- | testsuite/tests/lib/System/getEnv001.stdout | 2 | ||||
-rw-r--r-- | testsuite/tests/lib/System/system001.hs | 14 | ||||
-rw-r--r-- | testsuite/tests/lib/System/system001.stdout | 14 |
10 files changed, 69 insertions, 0 deletions
diff --git a/testsuite/tests/lib/System/Makefile b/testsuite/tests/lib/System/Makefile new file mode 100644 index 0000000000..9101fbd40a --- /dev/null +++ b/testsuite/tests/lib/System/Makefile @@ -0,0 +1,3 @@ +TOP=../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk diff --git a/testsuite/tests/lib/System/all.T b/testsuite/tests/lib/System/all.T new file mode 100644 index 0000000000..996946fd69 --- /dev/null +++ b/testsuite/tests/lib/System/all.T @@ -0,0 +1,8 @@ + +test('exitWith001', exit_code(42), compile_and_run, ['']) +test('getArgs001', normal, compile_and_run, ['']) +test('getEnv001', normal, compile_and_run, ['']) + +test('system001', if_platform("i386-unknown-mingw32", expect_fail), \ + compile_and_run, ['']) + diff --git a/testsuite/tests/lib/System/exitWith001.hs b/testsuite/tests/lib/System/exitWith001.hs new file mode 100644 index 0000000000..38dc38a9d5 --- /dev/null +++ b/testsuite/tests/lib/System/exitWith001.hs @@ -0,0 +1,3 @@ +import System.Exit (exitWith, ExitCode(..)) + +main = exitWith (ExitFailure 42) diff --git a/testsuite/tests/lib/System/exitWith001.stdout b/testsuite/tests/lib/System/exitWith001.stdout new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/testsuite/tests/lib/System/exitWith001.stdout diff --git a/testsuite/tests/lib/System/getArgs001.hs b/testsuite/tests/lib/System/getArgs001.hs new file mode 100644 index 0000000000..4b8df9101b --- /dev/null +++ b/testsuite/tests/lib/System/getArgs001.hs @@ -0,0 +1,9 @@ +import System.Environment (getProgName, getArgs) + +main = + getProgName >>= \ argv0 -> + putStr argv0 >> + getArgs >>= \ argv -> + sequence (map (\ x -> putChar ' ' >> putStr x) argv) >> + putChar '\n' + diff --git a/testsuite/tests/lib/System/getArgs001.stdout b/testsuite/tests/lib/System/getArgs001.stdout new file mode 100644 index 0000000000..e732087713 --- /dev/null +++ b/testsuite/tests/lib/System/getArgs001.stdout @@ -0,0 +1 @@ +getArgs001 diff --git a/testsuite/tests/lib/System/getEnv001.hs b/testsuite/tests/lib/System/getEnv001.hs new file mode 100644 index 0000000000..745f8eaa7f --- /dev/null +++ b/testsuite/tests/lib/System/getEnv001.hs @@ -0,0 +1,15 @@ + +import System.Environment (getEnv) +import System.IO.Error (catchIOError, isDoesNotExistError) + +main :: IO () +main = do + term <- getEnv "PATH" + putStrLn "Got $PATH" + fish <- getEnv "One fish, two fish, red fish, blue fish" `catchIOError` getEnv_except + putStrLn fish + +getEnv_except :: IOError -> IO String +getEnv_except ioe + | isDoesNotExistError ioe = return "" + | otherwise = ioError ioe diff --git a/testsuite/tests/lib/System/getEnv001.stdout b/testsuite/tests/lib/System/getEnv001.stdout new file mode 100644 index 0000000000..b191cc3dd1 --- /dev/null +++ b/testsuite/tests/lib/System/getEnv001.stdout @@ -0,0 +1,2 @@ +Got $PATH + diff --git a/testsuite/tests/lib/System/system001.hs b/testsuite/tests/lib/System/system001.hs new file mode 100644 index 0000000000..4237d526af --- /dev/null +++ b/testsuite/tests/lib/System/system001.hs @@ -0,0 +1,14 @@ +-- Not run on mingw, because of /dev/null use + +import System.Cmd (system) +import System.Exit (ExitCode(..), exitWith) + +main = + system "cat dog 1>/dev/null 2>&1" >>= \ ec -> + case ec of + ExitSuccess -> putStr "What?!?\n" >> ioError (userError "dog succeeded") + ExitFailure _ -> + system "cat system001.hs 2>/dev/null" >>= \ ec -> + case ec of + ExitSuccess -> exitWith ExitSuccess + ExitFailure _ -> putStr "What?!?\n" >> ioError (userError "cat failed") diff --git a/testsuite/tests/lib/System/system001.stdout b/testsuite/tests/lib/System/system001.stdout new file mode 100644 index 0000000000..4237d526af --- /dev/null +++ b/testsuite/tests/lib/System/system001.stdout @@ -0,0 +1,14 @@ +-- Not run on mingw, because of /dev/null use + +import System.Cmd (system) +import System.Exit (ExitCode(..), exitWith) + +main = + system "cat dog 1>/dev/null 2>&1" >>= \ ec -> + case ec of + ExitSuccess -> putStr "What?!?\n" >> ioError (userError "dog succeeded") + ExitFailure _ -> + system "cat system001.hs 2>/dev/null" >>= \ ec -> + case ec of + ExitSuccess -> exitWith ExitSuccess + ExitFailure _ -> putStr "What?!?\n" >> ioError (userError "cat failed") |