diff options
Diffstat (limited to 'testsuite/tests/safeHaskell/flags')
-rw-r--r-- | testsuite/tests/safeHaskell/flags/SafeFlags21.hs | 9 | ||||
-rw-r--r-- | testsuite/tests/safeHaskell/flags/SafeFlags22.hs | 11 | ||||
-rw-r--r-- | testsuite/tests/safeHaskell/flags/SafeFlags22.stderr | 5 | ||||
-rw-r--r-- | testsuite/tests/safeHaskell/flags/SafeFlags23.hs | 11 | ||||
-rw-r--r-- | testsuite/tests/safeHaskell/flags/SafeFlags23.stderr | 8 | ||||
-rw-r--r-- | testsuite/tests/safeHaskell/flags/SafeFlags24.hs | 11 | ||||
-rw-r--r-- | testsuite/tests/safeHaskell/flags/SafeFlags25.hs | 9 | ||||
-rw-r--r-- | testsuite/tests/safeHaskell/flags/SafeFlags25.stderr | 3 | ||||
-rw-r--r-- | testsuite/tests/safeHaskell/flags/SafeFlags26.hs | 9 | ||||
-rw-r--r-- | testsuite/tests/safeHaskell/flags/SafeFlags26.stderr | 6 | ||||
-rw-r--r-- | testsuite/tests/safeHaskell/flags/SafeFlags27.hs | 9 | ||||
-rw-r--r-- | testsuite/tests/safeHaskell/flags/all.T | 18 |
12 files changed, 107 insertions, 2 deletions
diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags21.hs b/testsuite/tests/safeHaskell/flags/SafeFlags21.hs new file mode 100644 index 0000000000..c7e8b0d87a --- /dev/null +++ b/testsuite/tests/safeHaskell/flags/SafeFlags21.hs @@ -0,0 +1,9 @@ +{-# OPTIONS_GHC -fwarn-unsafe #-} +-- | Basic test to see if Safe warning flags compile +-- Warn if module is infered unsafe +-- In this test the warning _shouldn't_ fire +module SafeFlags21 where + +f :: Int +f = 1 + diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags22.hs b/testsuite/tests/safeHaskell/flags/SafeFlags22.hs new file mode 100644 index 0000000000..0b94cff91c --- /dev/null +++ b/testsuite/tests/safeHaskell/flags/SafeFlags22.hs @@ -0,0 +1,11 @@ +{-# OPTIONS_GHC -fwarn-unsafe #-} +-- | Basic test to see if Safe warning flags compile +-- Warn if module is infered unsafe +-- In this test the warning _should_ fire +module SafeFlags22 where + +import System.IO.Unsafe + +f :: Int +f = 1 + diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags22.stderr b/testsuite/tests/safeHaskell/flags/SafeFlags22.stderr new file mode 100644 index 0000000000..7913f6847d --- /dev/null +++ b/testsuite/tests/safeHaskell/flags/SafeFlags22.stderr @@ -0,0 +1,5 @@ + +SafeFlags22.hs:1:16: + Warning: `SafeFlags22' has been infered as unsafe! + Reason: + base:System.IO.Unsafe can't be safely imported! The module itself isn't safe. diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags23.hs b/testsuite/tests/safeHaskell/flags/SafeFlags23.hs new file mode 100644 index 0000000000..87f7b2dc5d --- /dev/null +++ b/testsuite/tests/safeHaskell/flags/SafeFlags23.hs @@ -0,0 +1,11 @@ +{-# OPTIONS_GHC -fwarn-unsafe -Werror #-} +-- | Basic test to see if Safe warning flags compile +-- Warn if module is infered unsafe +-- In this test the warning _should_ fire and cause a compile fail +module SafeFlags22 where + +import System.IO.Unsafe + +f :: Int +f = 1 + diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags23.stderr b/testsuite/tests/safeHaskell/flags/SafeFlags23.stderr new file mode 100644 index 0000000000..bf8b7d937e --- /dev/null +++ b/testsuite/tests/safeHaskell/flags/SafeFlags23.stderr @@ -0,0 +1,8 @@ + +SafeFlags23.hs:1:16: + Warning: `SafeFlags22' has been infered as unsafe! + Reason: + base:System.IO.Unsafe can't be safely imported! The module itself isn't safe. + +<no location info>: +Failing due to -Werror. diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags24.hs b/testsuite/tests/safeHaskell/flags/SafeFlags24.hs new file mode 100644 index 0000000000..928d322e3c --- /dev/null +++ b/testsuite/tests/safeHaskell/flags/SafeFlags24.hs @@ -0,0 +1,11 @@ +{-# OPTIONS_GHC -fwarn-safe #-} +-- | Basic test to see if Safe warning flags compile +-- Warn if module is infered safe +-- In this test the warning _shouldn't_ fire +module SafeFlags23 where + +import System.IO.Unsafe + +f :: Int +f = 1 + diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags25.hs b/testsuite/tests/safeHaskell/flags/SafeFlags25.hs new file mode 100644 index 0000000000..c97fa885d1 --- /dev/null +++ b/testsuite/tests/safeHaskell/flags/SafeFlags25.hs @@ -0,0 +1,9 @@ +{-# OPTIONS_GHC -fwarn-safe #-} +-- | Basic test to see if Safe warning flags compile +-- Warn if module is infered safe +-- In this test the warning _should_ fire +module SafeFlags25 where + +f :: Int +f = 1 + diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags25.stderr b/testsuite/tests/safeHaskell/flags/SafeFlags25.stderr new file mode 100644 index 0000000000..2889ca6a36 --- /dev/null +++ b/testsuite/tests/safeHaskell/flags/SafeFlags25.stderr @@ -0,0 +1,3 @@ + +SafeFlags25.hs:1:16: + Warning: `SafeFlags25' has been infered as safe! diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags26.hs b/testsuite/tests/safeHaskell/flags/SafeFlags26.hs new file mode 100644 index 0000000000..0767448bca --- /dev/null +++ b/testsuite/tests/safeHaskell/flags/SafeFlags26.hs @@ -0,0 +1,9 @@ +{-# OPTIONS_GHC -fwarn-safe -Werror #-} +-- | Basic test to see if Safe warning flags compile +-- Warn if module is infered safe +-- In this test the warning _should_ fire and cause a compile fail +module SafeFlags26 where + +f :: Int +f = 1 + diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags26.stderr b/testsuite/tests/safeHaskell/flags/SafeFlags26.stderr new file mode 100644 index 0000000000..3079a7a20d --- /dev/null +++ b/testsuite/tests/safeHaskell/flags/SafeFlags26.stderr @@ -0,0 +1,6 @@ + +SafeFlags26.hs:1:16: + Warning: `SafeFlags26' has been infered as safe! + +<no location info>: +Failing due to -Werror. diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags27.hs b/testsuite/tests/safeHaskell/flags/SafeFlags27.hs new file mode 100644 index 0000000000..e6da435db4 --- /dev/null +++ b/testsuite/tests/safeHaskell/flags/SafeFlags27.hs @@ -0,0 +1,9 @@ +{-# OPTIONS_GHC -fno-safe-infer #-} +-- | Basic test to see if no safe infer flag compiles +-- This module would usually infer safely, so it shouldn't be safe now. +-- We don't actually check that here though, see test '' for that. +module SafeFlags27 where + +f :: Int +f = 1 + diff --git a/testsuite/tests/safeHaskell/flags/all.T b/testsuite/tests/safeHaskell/flags/all.T index 9e7ef4b433..f5e9a896d0 100644 --- a/testsuite/tests/safeHaskell/flags/all.T +++ b/testsuite/tests/safeHaskell/flags/all.T @@ -41,6 +41,20 @@ test('SafeFlags18', normal, compile, ['-trust base']) test('SafeFlags19', normal, compile_fail, ['']) test('SafeFlags20', normal, compile, ['-trust base']) -test('Flags01', normal, compile, ['']) -test('Flags02', normal, compile, ['']) +# test -Wunsafe flag +test('SafeFlags21', normal, compile, ['']) +test('SafeFlags22', normal, compile, ['']) +test('SafeFlags23', normal, compile_fail, ['']) + +# test -Wsafe flag +test('SafeFlags24', normal, compile, ['']) +test('SafeFlags25', normal, compile, ['']) +test('SafeFlags26', normal, compile_fail, ['']) + +# test -fno-safe-infer +test('SafeFlags27', normal, compile, ['']) + +# test certain flags are still allowed under -XSafe +test('Flags01', normal, compile, ['-XSafe']) +test('Flags02', normal, compile, ['-XSafe']) |