diff --git a/testsuite/driver/testlib.py b/testsuite/driver/testlib.py index 4177a2a15d18c156043d1cf22cd436ede63f6992..3ee9a8afdf386f87398e4397662550f5adb84068 100644 --- a/testsuite/driver/testlib.py +++ b/testsuite/driver/testlib.py @@ -192,6 +192,10 @@ def req_interp( name, opts ): if not config.have_interp: opts.expect = 'fail' +def req_rts_linker( name, opts ): + if not config.have_RTS_linker: + opts.expect = 'fail' + def req_th( name, opts ): """ Mark a test as requiring TemplateHaskell. In addition to having interpreter diff --git a/testsuite/tests/driver/all.T b/testsuite/tests/driver/all.T index 3df5ca3f6845a7b012549ae8249f952d74913887..11796951f2055f7a1b11508dcf47e3e017275127 100644 --- a/testsuite/tests/driver/all.T +++ b/testsuite/tests/driver/all.T @@ -130,8 +130,7 @@ test('dynHelloWorld', ['']) test('T5313', - [ unless(config.have_RTS_linker, skip), - extra_run_opts('"' + config.libdir + '"')], + [ req_rts_linker, extra_run_opts('"' + config.libdir + '"')], compile_and_run, ['-package ghc']) diff --git a/testsuite/tests/driver/linkwhole/all.T b/testsuite/tests/driver/linkwhole/all.T index e4881bbcc5313e11f27a9482821a89f13dba3fce..37030528b0aea9fef390661237523dd5cc1904bf 100644 --- a/testsuite/tests/driver/linkwhole/all.T +++ b/testsuite/tests/driver/linkwhole/all.T @@ -1,6 +1,6 @@ test('linkwhole', [extra_files(['Types.hs','Main.hs','MyCode.hs','Handles.hs']), - unless(config.have_RTS_linker, skip), + req_rts_linker, when(opsys('freebsd'), expect_broken(16035)), when(opsys('mingw32'), skip)], makefile_test, []) diff --git a/testsuite/tests/ghc-api/T10052/all.T b/testsuite/tests/ghc-api/T10052/all.T index 0e0f3bc866da9fb3a66a24a51d5dde329f81c794..a3b70406080b9ca4659169e92c9c96469063686d 100644 --- a/testsuite/tests/ghc-api/T10052/all.T +++ b/testsuite/tests/ghc-api/T10052/all.T @@ -1,3 +1,2 @@ -test('T10052', [unless(config.have_RTS_linker, skip), - req_interp], +test('T10052', [req_rts_linker, req_interp], makefile_test, ['T10052']) diff --git a/testsuite/tests/ghc-api/all.T b/testsuite/tests/ghc-api/all.T index 8df85e07dbb0bb844d254abb80ff94029e1a2fd1..fa7f7a93483d97a2d17621e98dac55fe9f574a67 100644 --- a/testsuite/tests/ghc-api/all.T +++ b/testsuite/tests/ghc-api/all.T @@ -1,14 +1,14 @@ test('ghcApi', normal, compile_and_run, ['-package ghc']) test('T6145', normal, makefile_test, ['T6145']) -test('T8639_api', unless (config.have_RTS_linker, skip), +test('T8639_api', req_rts_linker, makefile_test, ['T8639_api']) -test('T8628', unless(config.have_RTS_linker, skip), +test('T8628', req_rts_linker, makefile_test, ['T8628']) test('T9595', extra_run_opts('"' + config.libdir + '"'), compile_and_run, ['-package ghc']) test('T10508_api', [ extra_run_opts('"' + config.libdir + '"'), - unless(config.have_RTS_linker, skip)], + req_rts_linker ], compile_and_run, ['-package ghc']) test('T10942', extra_run_opts('"' + config.libdir + '"'), diff --git a/testsuite/tests/ghc-api/dynCompileExpr/all.T b/testsuite/tests/ghc-api/dynCompileExpr/all.T index fd47e95a521c22b91c373f7257c44f55df23bdf6..d067e690e247e2489cf002a459ab61a4044a7afd 100644 --- a/testsuite/tests/ghc-api/dynCompileExpr/all.T +++ b/testsuite/tests/ghc-api/dynCompileExpr/all.T @@ -1,6 +1,5 @@ test('dynCompileExpr', [ extra_run_opts('"' + config.libdir + '"'), when(opsys('mingw32'), expect_broken_for(5987, ['dyn'])), - unless(config.have_RTS_linker, skip), - omit_ways(prof_ways) ], # cannot run interpreted code with -prof + req_rts_linker, omit_ways(prof_ways) ], # cannot run interpreted code with -prof compile_and_run, ['-package ghc']) diff --git a/testsuite/tests/ghci/T16392/all.T b/testsuite/tests/ghci/T16392/all.T index 7b9bd4bf6b8d3d0ed3a68658c8e79d40a264e8c8..fa16e2daa44f4cf47a470c968a9142304924d095 100644 --- a/testsuite/tests/ghci/T16392/all.T +++ b/testsuite/tests/ghci/T16392/all.T @@ -1,4 +1,5 @@ test('T16392', [extra_files(['A.hs']), - when(config.have_ext_interp, extra_ways(['ghci-ext']))], + extra_ways(['ghci-ext']), + req_rts_linker], ghci_script, ['T16392.script']) diff --git a/testsuite/tests/ghci/linking/all.T b/testsuite/tests/ghci/linking/all.T index a049df3b3421cb465d7c4174e4db862d52dee7a8..c537066f089e5b9c33a1328247e35f57c9153fb6 100644 --- a/testsuite/tests/ghci/linking/all.T +++ b/testsuite/tests/ghci/linking/all.T @@ -15,7 +15,7 @@ test('ghcilink003', [unless(doing_ghci, skip)], makefile_test, ['ghcilink003']) test('ghcilink004', [extra_files(['TestLink.hs', 'f.c']), unless(doing_ghci, skip), - unless(config.have_RTS_linker, skip)], + req_rts_linker], makefile_test, ['ghcilink004']) test('ghcilink005', diff --git a/testsuite/tests/ghci/linking/dyn/all.T b/testsuite/tests/ghci/linking/dyn/all.T index 550ae1b0d8a1ede42b702db2b13191a037c91c85..9a54670732363f14e18ef9fd3c7d82ae0e6bcfd1 100644 --- a/testsuite/tests/ghci/linking/dyn/all.T +++ b/testsuite/tests/ghci/linking/dyn/all.T @@ -47,6 +47,7 @@ test('big-obj', [extra_files(['big-obj-c.c', 'big-obj.hs']), test('T3372', [unless(doing_ghci, skip), + req_rts_linker, extra_run_opts('"' + config.libdir + '"'), unless(config.have_RTS_linker, skip), # Concurrent GHC sessions is fragile on Windows since we must lock the diff --git a/testsuite/tests/ghci/prog001/prog001.T b/testsuite/tests/ghci/prog001/prog001.T index 7cd60c0b20b66199c51523a39baa0fa236414657..3f2d1bea36c44f41c3211f64b546208c198affa9 100644 --- a/testsuite/tests/ghci/prog001/prog001.T +++ b/testsuite/tests/ghci/prog001/prog001.T @@ -1,5 +1,6 @@ test('prog001', [extra_files(['../shell.hs', 'A.hs', 'B.hs', 'C1.hs', 'D1.hs', 'D2.hs']), cmd_prefix('ghciWayFlags=' + config.ghci_way_flags), - unless(opsys('mingw32') or (not config.have_ext_interp), extra_ways(['ghci-ext']))], + req_rts_linker, + unless(opsys('mingw32'), extra_ways(['ghci-ext']))], ghci_script, ['prog001.script']) diff --git a/testsuite/tests/ghci/scripts/all.T b/testsuite/tests/ghci/scripts/all.T index 0a2b2f1d6114fba61293ab7c7c6160439e9cfd1c..ae0e38cb4e83f9f1db3708d097b774e1e4914e18 100755 --- a/testsuite/tests/ghci/scripts/all.T +++ b/testsuite/tests/ghci/scripts/all.T @@ -10,12 +10,12 @@ test('ghci001', combined_output, ghci_script, ['ghci001.script']) test('ghci002', combined_output, ghci_script, ['ghci002.script']) test('ghci003', combined_output, ghci_script, ['ghci003.script']) -test('ghci004', [ combined_output, - unless(opsys('mingw32') or (not config.have_ext_interp),extra_ways(['ghci-ext'])) ], +test('ghci004', [ combined_output, req_rts_linker, + unless(opsys('mingw32'),extra_ways(['ghci-ext'])) ], ghci_script, ['ghci004.script']) test('ghci005', combined_output, ghci_script, ['ghci005.script']) -test('ghci006', [ combined_output, - unless(opsys('mingw32') or (not config.have_ext_interp),extra_ways(['ghci-ext'])) ], +test('ghci006', [ combined_output, req_rts_linker, + unless(opsys('mingw32'),extra_ways(['ghci-ext'])) ], ghci_script, ['ghci006.script']) test('ghci007', combined_output, ghci_script, ['ghci007.script']) test('ghci008', [ combined_output, diff --git a/testsuite/tests/printer/all.T b/testsuite/tests/printer/all.T index 879d2aa51ca8033b700e6eb82063a01f196cb2ea..3440f574585c1c0f851fe4fc165ab68447c24db1 100644 --- a/testsuite/tests/printer/all.T +++ b/testsuite/tests/printer/all.T @@ -24,7 +24,7 @@ test('Ppr023', ignore_stderr, makefile_test, ['ppr023']) test('Ppr024', ignore_stderr, makefile_test, ['ppr024']) test('Ppr025', ignore_stderr, makefile_test, ['ppr025']) test('Ppr026', ignore_stderr, makefile_test, ['ppr026']) -test('Ppr027', ignore_stderr, makefile_test, ['ppr027']) +test('Ppr027', [ignore_stderr, req_rts_linker], makefile_test, ['ppr027']) test('Ppr028', ignore_stderr, makefile_test, ['ppr028']) test('Ppr029', ignore_stderr, makefile_test, ['ppr029']) test('Ppr030', ignore_stderr, makefile_test, ['ppr030']) @@ -37,22 +37,22 @@ test('Ppr036', ignore_stderr, makefile_test, ['ppr036']) test('Ppr037', ignore_stderr, makefile_test, ['ppr037']) test('Ppr038', ignore_stderr, makefile_test, ['ppr038']) test('Ppr039', ignore_stderr, makefile_test, ['ppr039']) -test('Ppr040', ignore_stderr, makefile_test, ['ppr040']) +test('Ppr040', [ignore_stderr, req_rts_linker], makefile_test, ['ppr040']) test('Ppr041', ignore_stderr, makefile_test, ['ppr041']) test('Ppr042', ignore_stderr, makefile_test, ['ppr042']) -test('Ppr043', ignore_stderr, makefile_test, ['ppr043']) +test('Ppr043', [ignore_stderr, req_rts_linker], makefile_test, ['ppr043']) test('Ppr044', ignore_stderr, makefile_test, ['ppr044']) test('Ppr045', ignore_stderr, makefile_test, ['ppr045']) test('Ppr046', ignore_stderr, makefile_test, ['ppr046']) test('Ppr047', expect_fail, makefile_test, ['ppr047']) test('Ppr048', ignore_stderr, makefile_test, ['ppr048']) -test('T13199', ignore_stderr, makefile_test, ['T13199']) +test('T13199', [ignore_stderr, req_rts_linker], makefile_test, ['T13199']) test('T13050p', ignore_stderr, makefile_test, ['T13050p']) -test('T13550', ignore_stderr, makefile_test, ['T13550']) -test('T13942', ignore_stderr, makefile_test, ['T13942']) -test('T14289', ignore_stderr, makefile_test, ['T14289']) -test('T14289b', ignore_stderr, makefile_test, ['T14289b']) -test('T14289c', ignore_stderr, makefile_test, ['T14289c']) +test('T13550', [ignore_stderr, req_rts_linker], makefile_test, ['T13550']) +test('T13942', [ignore_stderr, req_rts_linker], makefile_test, ['T13942']) +test('T14289', [ignore_stderr, req_rts_linker], makefile_test, ['T14289']) +test('T14289b', [ignore_stderr, req_rts_linker], makefile_test, ['T14289b']) +test('T14289c', [ignore_stderr, req_rts_linker], makefile_test, ['T14289c']) test('T14306', ignore_stderr, makefile_test, ['T14306']) test('T14343', normal, compile_fail, ['']) test('T14343b', normal, compile_fail, ['']) diff --git a/testsuite/tests/quasiquotation/all.T b/testsuite/tests/quasiquotation/all.T index 331f7c16ae76ec456e17862947e010f160588312..23263d9475aab0871f1e285e9ea8fd0ce3efea0c 100644 --- a/testsuite/tests/quasiquotation/all.T +++ b/testsuite/tests/quasiquotation/all.T @@ -6,7 +6,7 @@ test('T7918', only_ways([config.ghc_th_way]), unless(have_dynamic(), skip)], compile_and_run, ['-package ghc ' + config.ghc_th_way_flags]) test('T14028', - [req_interp, + [req_interp, req_rts_linker, only_ways([config.ghc_th_way]), unless(config.have_ext_interp, skip), when(opsys('linux') and arch('x86_64'), expect_broken_for(17300, ['dyn']))], diff --git a/testsuite/tests/rts/all.T b/testsuite/tests/rts/all.T index 36f63c571ead24c7092b5837a5bb8f87f0003e3d..33853dc3d2bf067088786b841f0ac093ec304a66 100644 --- a/testsuite/tests/rts/all.T +++ b/testsuite/tests/rts/all.T @@ -395,6 +395,7 @@ test('keep-cafs', when(opsys('mingw32'), expect_broken (5987)), when(platform('powerpc64le-unknown-linux'), expect_broken(11261)), when(opsys('freebsd'), expect_broken(16035)), + req_rts_linker ], makefile_test, ['KeepCafs']) diff --git a/testsuite/tests/rts/linker/all.T b/testsuite/tests/rts/linker/all.T index 2f1bb2bb61a7633b23ae6ed1fb919783c6ce0c0e..d2bb5891fd0b202f58b72e26eef60cc97ab3edd4 100644 --- a/testsuite/tests/rts/linker/all.T +++ b/testsuite/tests/rts/linker/all.T @@ -56,17 +56,14 @@ def checkDynAsm(actual_file, normaliser): # separately now. # These should have extra_clean() arguments, but I need # to somehow extract out the name of DLLs to do that -test('T5435_v_asm_a', [extra_files(['T5435.hs', 'T5435_asm.c']), - unless(config.have_RTS_linker, skip)], +test('T5435_v_asm_a', [extra_files(['T5435.hs', 'T5435_asm.c']), req_rts_linker], makefile_test, ['T5435_v_asm_a']) # this one just needs to run on linux, as darwin/mingw32 are covered # by the _a test already. -test('T5435_v_asm_b', [extra_files(['T5435.hs', 'T5435_asm.c']), - unless(config.have_RTS_linker, skip), - when(opsys('darwin') or opsys('mingw32'), skip)], +test('T5435_v_asm_b', [extra_files(['T5435.hs', 'T5435_asm.c']), req_rts_linker, + when(opsys('darwin') or opsys('mingw32'), skip)], makefile_test, ['T5435_v_asm_b']) -test('T5435_v_gcc', [extra_files(['T5435.hs', 'T5435_gcc.c']), - unless(config.have_RTS_linker, skip)], +test('T5435_v_gcc', [extra_files(['T5435.hs', 'T5435_gcc.c']), req_rts_linker], makefile_test, ['T5435_v_gcc']) test('T5435_dyn_asm', [extra_files(['T5435.hs', 'T5435_asm.c']), check_stdout(checkDynAsm)], @@ -75,8 +72,7 @@ test('T5435_dyn_gcc', extra_files(['T5435.hs', 'T5435_gcc.c']) , makefile_test, ###################################### test('linker_unload', - [extra_files(['LinkerUnload.hs', 'Test.hs']), - unless(config.have_RTS_linker, skip)], + [extra_files(['LinkerUnload.hs', 'Test.hs']), req_rts_linker], makefile_test, ['linker_unload']) ###################################### diff --git a/testsuite/tests/rts/linker/unload_multiple_objs/all.T b/testsuite/tests/rts/linker/unload_multiple_objs/all.T index 378177cf411f3d0df6fb4163dea110b91fa3a061..52f35b4e26de63793041dd0762d879d7cf91695b 100644 --- a/testsuite/tests/rts/linker/unload_multiple_objs/all.T +++ b/testsuite/tests/rts/linker/unload_multiple_objs/all.T @@ -1,4 +1,4 @@ test('linker_unload_multiple_objs', [extra_files(['../LinkerUnload.hs', 'A.hs', 'B.hs', 'C.hs', 'D.hs',]), - unless(config.have_RTS_linker, skip)], + req_rts_linker], run_command, ['$MAKE -s --no-print-directory linker_unload_multiple_objs'])