diff options
Diffstat (limited to 'testsuite/tests/driver/options_ghc/all.T')
-rw-r--r-- | testsuite/tests/driver/options_ghc/all.T | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/testsuite/tests/driver/options_ghc/all.T b/testsuite/tests/driver/options_ghc/all.T new file mode 100644 index 0000000000..73202f85cc --- /dev/null +++ b/testsuite/tests/driver/options_ghc/all.T @@ -0,0 +1,44 @@ +# Tests for various scenarios in multi module compilation when code generation +# options (-fasm, -fllvm, -fobject-code, -fbyte-code) are used via OPTIONS_GHC +# pragma +# (Only one of the llvm way is sufficient to test these) + +# Basic working of overriding 'backend' via OPTIONS_GHC +test('options_ghc_fasm_fllvm', + [ when(fast(), skip), + only_ways(['llvm', 'ghci']), + extra_files(['Mod_fasm.hs', 'Mod_fllvm.hs', 'Mod_fasm_fllvm.hs'])], + multimod_compile, + ['Mod_fasm_fllvm', '']) + +# Test that llvm is indeed getting used +test('options_ghc_fasm_fllvm_2', + [ when(fast(), skip), + only_ways(['llvm']), + extra_files(['Mod_fasm.hs', 'Mod_fllvm.hs', 'Mod_fasm_fllvm.hs'])], + multimod_compile_fail, + ['Mod_fasm_fllvm', '-optlc -SOMETHING_INVALID']) + +# This should compile, as llvm should not be used with -fasm override +test('options_ghc_fasm', + [ when(fast(), skip), + only_ways(['llvm']), + extra_files(['Mod_fasm.hs'])], + multimod_compile, + ['Mod_fasm', '-optlc -SOMETHING_INVALID']) + +# Should cause object-code creation +test('options_ghc_fobject-code', + [ when(fast(), skip), + only_ways(['ghci']), + extra_files(['Mod_fasm.hs', 'Mod_fllvm.hs', 'Mod_fbyte_code.hs', 'Mod_fobject_code.hs', 'Mod_top.hs', 'Load_Mod_top.script'])], + ghci_script, + ['Load_Mod_top.script']) + +# Should override the -fbyte-code in normal compile +test('options_ghc_fbyte-code', + [ when(fast(), skip), + only_ways(['llvm']), + extra_files(['Mod_fasm.hs', 'Mod_fllvm.hs', 'Mod_fbyte_code.hs', 'Mod_fobject_code.hs', 'Mod_top.hs'])], + multimod_compile, + ['Mod_top', ''])
\ No newline at end of file |