0b8c7cb8a95bde070c58c8f34bbaee00a4981ccb
[ghc.git] / testsuite / tests / safeHaskell / check / all.T
1 # Just do the normal way, SafeHaskell is all in the frontend
2 def f( opts ):
3   opts.only_ways = ['normal']
4
5 setTestOpts(f)
6
7 test('CheckA', normal, compile, [''])
8 test('CheckB',
9      extra_clean(['CheckB_Aux.hi', 'CheckB_Aux.o']),
10      multimod_compile, ['CheckB', '-trust base'])
11
12 # fail as we don't trust base when compiling Check01
13 test('Check01', normal, multi_compile_fail, ['Check01 -distrust base', [
14                                             ('Check01_A.hs', ''),
15                                             ('Check01_B.hs', '-trust base')
16                                             ], ''])
17
18 # suceed this time since we trust base when we compile AND use CheckB
19 test('Check02', normal, multi_compile, ['Check02', [
20                                        ('Check02_A.hs', ''),
21                                        ('Check02_B.hs', '')
22                                        ], '-trust base'])
23
24 # suceed as while like Check01_fail we don't import CheckB as a safe
25 # import this time, so don't require base trusted when used.
26 test('Check03', normal, multi_compile, ['Check03', [
27                                        ('Check03_A.hs', ''),
28                                        ('Check03_B.hs', '-trust base')
29                                        ], ''])
30
31 # Check a slightly larger transitive program. Check01 isn't imported
32 # safely by Check03 so we don't require base trused at end.
33 test('Check04', normal, multi_compile, ['Check04', [
34                                        ('Check04_A.hs', ''),
35                                        ('Check04_B.hs', '-trust base'),
36                                        ('Check04_1.hs', '-trust base')
37                                        ], ''])
38