summaryrefslogtreecommitdiff
path: root/testsuite/tests
diff options
context:
space:
mode:
authorDavid Terei <davidterei@gmail.com>2011-10-20 21:33:14 -0700
committerDavid Terei <davidterei@gmail.com>2011-10-25 14:47:32 -0700
commit5c466ca9e672f48870f71746e0ee6a480b6e6eb7 (patch)
tree5d785e5f6b44b4b6eb0050b3718cd7e9b1f0cd98 /testsuite/tests
parentac8c632592a3603bed6ba5317223378837d35710 (diff)
downloadhaskell-5c466ca9e672f48870f71746e0ee6a480b6e6eb7.tar.gz
More fixes to Safe Haskell test for design changes
Diffstat (limited to 'testsuite/tests')
-rw-r--r--testsuite/tests/safeHaskell/NOTES4
-rw-r--r--testsuite/tests/safeHaskell/check/Check03.hs1
-rw-r--r--testsuite/tests/safeHaskell/flags/all.T2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/Mixed03.hs11
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/Mixed03.stderr3
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/SafeInfered01.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/SafeInfered02.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/SafeInfered03.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/all.T1
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/BadImport01.stderr2
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/BadImport02.stderr0
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/BadImport04.stderr3
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/BadImport05.stderr3
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/BadImport06.stderr3
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/BadImport07.stderr3
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/BadImport08.stderr3
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/BadImport09.hs12
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/BadImport09.stderr3
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/Dep05.stderr3
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/Dep06.stderr3
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/Dep07.stderr3
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/Dep08.stderr3
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/Dep09.stderr3
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/Dep10.stderr3
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/GoodImport03.hs2
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/all.T1
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, [''])