diff options
author | David Terei <davidterei@gmail.com> | 2011-10-20 21:33:14 -0700 |
---|---|---|
committer | David Terei <davidterei@gmail.com> | 2011-10-25 14:47:32 -0700 |
commit | 5c466ca9e672f48870f71746e0ee6a480b6e6eb7 (patch) | |
tree | 5d785e5f6b44b4b6eb0050b3718cd7e9b1f0cd98 /testsuite/tests | |
parent | ac8c632592a3603bed6ba5317223378837d35710 (diff) | |
download | haskell-5c466ca9e672f48870f71746e0ee6a480b6e6eb7.tar.gz |
More fixes to Safe Haskell test for design changes
Diffstat (limited to 'testsuite/tests')
26 files changed, 78 insertions, 3 deletions
diff --git a/testsuite/tests/safeHaskell/NOTES b/testsuite/tests/safeHaskell/NOTES new file mode 100644 index 0000000000..0deeb1847c --- /dev/null +++ b/testsuite/tests/safeHaskell/NOTES @@ -0,0 +1,4 @@ + - No test for infer safe when overlapping used + - Should just the enabling of RULES make a module unsafe or only if there are actual rules defined? + - As above but with newtype deriving + diff --git a/testsuite/tests/safeHaskell/check/Check03.hs b/testsuite/tests/safeHaskell/check/Check03.hs index e06b4f83fb..71d158d7f6 100644 --- a/testsuite/tests/safeHaskell/check/Check03.hs +++ b/testsuite/tests/safeHaskell/check/Check03.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE Unsafe #-} module Check03 where import Check03_B diff --git a/testsuite/tests/safeHaskell/flags/all.T b/testsuite/tests/safeHaskell/flags/all.T index 1100cedf50..9e7ef4b433 100644 --- a/testsuite/tests/safeHaskell/flags/all.T +++ b/testsuite/tests/safeHaskell/flags/all.T @@ -37,7 +37,7 @@ test('SafeFlags14', normal, compile_fail, ['']) test('SafeFlags15', normal, compile, ['']) test('SafeFlags16', normal, compile, ['']) test('SafeFlags17', normal, compile_fail, ['-distrust base']) -test('SafeFlags18', normal, compile, ['']) +test('SafeFlags18', normal, compile, ['-trust base']) test('SafeFlags19', normal, compile_fail, ['']) test('SafeFlags20', normal, compile, ['-trust base']) diff --git a/testsuite/tests/safeHaskell/safeInfered/Mixed03.hs b/testsuite/tests/safeHaskell/safeInfered/Mixed03.hs new file mode 100644 index 0000000000..fba39654d9 --- /dev/null +++ b/testsuite/tests/safeHaskell/safeInfered/Mixed03.hs @@ -0,0 +1,11 @@ +{-# LANGUAGE Unsafe #-} +-- | Should fail compilation because we import Data.Word as safe and unsafe +module Mixed03 where + +import safe qualified Data.Word as DW +import System.IO +import Data.Word + +f :: Int +f = 1 + diff --git a/testsuite/tests/safeHaskell/safeInfered/Mixed03.stderr b/testsuite/tests/safeHaskell/safeInfered/Mixed03.stderr new file mode 100644 index 0000000000..4f4dcccbcf --- /dev/null +++ b/testsuite/tests/safeHaskell/safeInfered/Mixed03.stderr @@ -0,0 +1,3 @@ + +Mixed03.hs:5:1: + Module DW is imported both as a safe and unsafe import! diff --git a/testsuite/tests/safeHaskell/safeInfered/SafeInfered01.stderr b/testsuite/tests/safeHaskell/safeInfered/SafeInfered01.stderr new file mode 100644 index 0000000000..134cbbe20b --- /dev/null +++ b/testsuite/tests/safeHaskell/safeInfered/SafeInfered01.stderr @@ -0,0 +1,2 @@ +[1 of 2] Compiling SafeInfered01_A ( SafeInfered01_A.hs, SafeInfered01_A.o ) +[2 of 2] Compiling SafeInfered01 ( SafeInfered01.hs, SafeInfered01.o ) diff --git a/testsuite/tests/safeHaskell/safeInfered/SafeInfered02.stderr b/testsuite/tests/safeHaskell/safeInfered/SafeInfered02.stderr new file mode 100644 index 0000000000..ffbce376b1 --- /dev/null +++ b/testsuite/tests/safeHaskell/safeInfered/SafeInfered02.stderr @@ -0,0 +1,2 @@ +[1 of 2] Compiling SafeInfered02_A ( SafeInfered02_A.hs, SafeInfered02_A.o ) +[2 of 2] Compiling SafeInfered02 ( SafeInfered02.hs, SafeInfered02.o ) diff --git a/testsuite/tests/safeHaskell/safeInfered/SafeInfered03.stderr b/testsuite/tests/safeHaskell/safeInfered/SafeInfered03.stderr new file mode 100644 index 0000000000..18940a98f2 --- /dev/null +++ b/testsuite/tests/safeHaskell/safeInfered/SafeInfered03.stderr @@ -0,0 +1,2 @@ +[1 of 2] Compiling SafeInfered03_A ( SafeInfered03_A.hs, SafeInfered03_A.o ) +[2 of 2] Compiling SafeInfered03 ( SafeInfered03.hs, SafeInfered03.o ) diff --git a/testsuite/tests/safeHaskell/safeInfered/all.T b/testsuite/tests/safeHaskell/safeInfered/all.T index 19a788b792..255897fc01 100644 --- a/testsuite/tests/safeHaskell/safeInfered/all.T +++ b/testsuite/tests/safeHaskell/safeInfered/all.T @@ -26,4 +26,5 @@ test('UnsafeInfered09', normal, multimod_compile_fail, ['UnsafeInfered09', '']) # Mixed tests test('Mixed01', normal, compile_fail, ['']) test('Mixed02', normal, compile_fail, ['']) +test('Mixed03', normal, compile_fail, ['']) diff --git a/testsuite/tests/safeHaskell/unsafeLibs/BadImport01.stderr b/testsuite/tests/safeHaskell/unsafeLibs/BadImport01.stderr index 983e043591..bc676ca6f1 100644 --- a/testsuite/tests/safeHaskell/unsafeLibs/BadImport01.stderr +++ b/testsuite/tests/safeHaskell/unsafeLibs/BadImport01.stderr @@ -1,3 +1,3 @@ -BadImport01.hs:4:1: +BadImport01.hs:5:1: base:System.IO.Unsafe can't be safely imported! The module itself isn't safe. diff --git a/testsuite/tests/safeHaskell/unsafeLibs/BadImport02.stderr b/testsuite/tests/safeHaskell/unsafeLibs/BadImport02.stderr new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/testsuite/tests/safeHaskell/unsafeLibs/BadImport02.stderr diff --git a/testsuite/tests/safeHaskell/unsafeLibs/BadImport04.stderr b/testsuite/tests/safeHaskell/unsafeLibs/BadImport04.stderr new file mode 100644 index 0000000000..f653cd697e --- /dev/null +++ b/testsuite/tests/safeHaskell/unsafeLibs/BadImport04.stderr @@ -0,0 +1,3 @@ + +BadImport04.hs:5:1: + base:Foreign can't be safely imported! The module itself isn't safe. diff --git a/testsuite/tests/safeHaskell/unsafeLibs/BadImport05.stderr b/testsuite/tests/safeHaskell/unsafeLibs/BadImport05.stderr new file mode 100644 index 0000000000..7d8be6a70f --- /dev/null +++ b/testsuite/tests/safeHaskell/unsafeLibs/BadImport05.stderr @@ -0,0 +1,3 @@ + +BadImport05.hs:5:1: + base:System.IO.Unsafe can't be safely imported! The module itself isn't safe. diff --git a/testsuite/tests/safeHaskell/unsafeLibs/BadImport06.stderr b/testsuite/tests/safeHaskell/unsafeLibs/BadImport06.stderr new file mode 100644 index 0000000000..6fbf954599 --- /dev/null +++ b/testsuite/tests/safeHaskell/unsafeLibs/BadImport06.stderr @@ -0,0 +1,3 @@ + +BadImport06.hs:5:1: + base:Debug.Trace can't be safely imported! The module itself isn't safe. diff --git a/testsuite/tests/safeHaskell/unsafeLibs/BadImport07.stderr b/testsuite/tests/safeHaskell/unsafeLibs/BadImport07.stderr new file mode 100644 index 0000000000..ccd6b34563 --- /dev/null +++ b/testsuite/tests/safeHaskell/unsafeLibs/BadImport07.stderr @@ -0,0 +1,3 @@ + +BadImport07.hs:5:1: + base:Unsafe.Coerce can't be safely imported! The module itself isn't safe. diff --git a/testsuite/tests/safeHaskell/unsafeLibs/BadImport08.stderr b/testsuite/tests/safeHaskell/unsafeLibs/BadImport08.stderr new file mode 100644 index 0000000000..a62d1543a0 --- /dev/null +++ b/testsuite/tests/safeHaskell/unsafeLibs/BadImport08.stderr @@ -0,0 +1,3 @@ + +BadImport08.hs:5:1: + base:Control.Monad.ST can't be safely imported! The module itself isn't safe. diff --git a/testsuite/tests/safeHaskell/unsafeLibs/BadImport09.hs b/testsuite/tests/safeHaskell/unsafeLibs/BadImport09.hs new file mode 100644 index 0000000000..30881b1430 --- /dev/null +++ b/testsuite/tests/safeHaskell/unsafeLibs/BadImport09.hs @@ -0,0 +1,12 @@ +{-# LANGUAGE Safe #-} +-- | Import unsafe module Foreign.Marshal to make sure it fails +module Main where + +import Foreign.Marshal + +f :: Int +f = unsafeLocalState $ putStrLn "What kind of swallow?" >> return 2 + +main :: IO () +main = putStrLn $ "X is: " ++ show f + diff --git a/testsuite/tests/safeHaskell/unsafeLibs/BadImport09.stderr b/testsuite/tests/safeHaskell/unsafeLibs/BadImport09.stderr new file mode 100644 index 0000000000..3db67ac12f --- /dev/null +++ b/testsuite/tests/safeHaskell/unsafeLibs/BadImport09.stderr @@ -0,0 +1,3 @@ + +BadImport09.hs:5:1: + base:Foreign.Marshal can't be safely imported! The module itself isn't safe. diff --git a/testsuite/tests/safeHaskell/unsafeLibs/Dep05.stderr b/testsuite/tests/safeHaskell/unsafeLibs/Dep05.stderr index e69de29bb2..6176ffb0a5 100644 --- a/testsuite/tests/safeHaskell/unsafeLibs/Dep05.stderr +++ b/testsuite/tests/safeHaskell/unsafeLibs/Dep05.stderr @@ -0,0 +1,3 @@ + +Dep05.hs:5:1: + base:GHC.Arr can't be safely imported! The module itself isn't safe. diff --git a/testsuite/tests/safeHaskell/unsafeLibs/Dep06.stderr b/testsuite/tests/safeHaskell/unsafeLibs/Dep06.stderr index e69de29bb2..7e0b4d0d55 100644 --- a/testsuite/tests/safeHaskell/unsafeLibs/Dep06.stderr +++ b/testsuite/tests/safeHaskell/unsafeLibs/Dep06.stderr @@ -0,0 +1,3 @@ + +Dep06.hs:4:1: + base:GHC.Conc can't be safely imported! The module itself isn't safe. diff --git a/testsuite/tests/safeHaskell/unsafeLibs/Dep07.stderr b/testsuite/tests/safeHaskell/unsafeLibs/Dep07.stderr index e69de29bb2..5faecb951b 100644 --- a/testsuite/tests/safeHaskell/unsafeLibs/Dep07.stderr +++ b/testsuite/tests/safeHaskell/unsafeLibs/Dep07.stderr @@ -0,0 +1,3 @@ + +Dep07.hs:4:1: + base:GHC.ForeignPtr can't be safely imported! The module itself isn't safe. diff --git a/testsuite/tests/safeHaskell/unsafeLibs/Dep08.stderr b/testsuite/tests/safeHaskell/unsafeLibs/Dep08.stderr index e69de29bb2..9e06797427 100644 --- a/testsuite/tests/safeHaskell/unsafeLibs/Dep08.stderr +++ b/testsuite/tests/safeHaskell/unsafeLibs/Dep08.stderr @@ -0,0 +1,3 @@ + +Dep08.hs:5:1: + base:GHC.IOArray can't be safely imported! The module itself isn't safe. diff --git a/testsuite/tests/safeHaskell/unsafeLibs/Dep09.stderr b/testsuite/tests/safeHaskell/unsafeLibs/Dep09.stderr index e69de29bb2..e0de172782 100644 --- a/testsuite/tests/safeHaskell/unsafeLibs/Dep09.stderr +++ b/testsuite/tests/safeHaskell/unsafeLibs/Dep09.stderr @@ -0,0 +1,3 @@ + +Dep09.hs:4:1: + base:GHC.Ptr can't be safely imported! The module itself isn't safe. diff --git a/testsuite/tests/safeHaskell/unsafeLibs/Dep10.stderr b/testsuite/tests/safeHaskell/unsafeLibs/Dep10.stderr index e69de29bb2..4ef525183e 100644 --- a/testsuite/tests/safeHaskell/unsafeLibs/Dep10.stderr +++ b/testsuite/tests/safeHaskell/unsafeLibs/Dep10.stderr @@ -0,0 +1,3 @@ + +Dep10.hs:4:1: + base:GHC.ST can't be safely imported! The module itself isn't safe. diff --git a/testsuite/tests/safeHaskell/unsafeLibs/GoodImport03.hs b/testsuite/tests/safeHaskell/unsafeLibs/GoodImport03.hs index 5ad44026a8..34a5e4ebac 100644 --- a/testsuite/tests/safeHaskell/unsafeLibs/GoodImport03.hs +++ b/testsuite/tests/safeHaskell/unsafeLibs/GoodImport03.hs @@ -75,7 +75,7 @@ import Foreign.C.Error import Foreign.C.String import Foreign.C.Types -import Foreign.Marshal +-- import Foreign.Marshal import Foreign.Marshal.Alloc import Foreign.Marshal.Array import Foreign.Marshal.Error diff --git a/testsuite/tests/safeHaskell/unsafeLibs/all.T b/testsuite/tests/safeHaskell/unsafeLibs/all.T index 949511579d..eddf9566cf 100644 --- a/testsuite/tests/safeHaskell/unsafeLibs/all.T +++ b/testsuite/tests/safeHaskell/unsafeLibs/all.T @@ -36,6 +36,7 @@ test('BadImport05', normal, compile_fail, ['']) test('BadImport06', normal, compile_fail, ['']) test('BadImport07', normal, compile_fail, ['']) test('BadImport08', normal, compile_fail, ['']) +test('BadImport09', normal, compile_fail, ['']) # check safe modules are marked safe test('GoodImport01', normal, compile, ['']) |