testsuite: skip test requiring RTS linker on PowerPC
authorPeter Trommler <ptrommler@acm.org>
Sun, 3 Nov 2019 12:54:41 +0000 (13:54 +0100)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Tue, 5 Nov 2019 07:46:48 +0000 (02:46 -0500)
The RTS linker is not available on 64-bit PowerPC. Instead of
marking tests that require the RTS linker as broken on PowerPC
64-bit skip the respective tests on all platforms where the
RTS linker or a statically linked external interpreter is not
available.

Fixes #11259

13 files changed:
testsuite/tests/driver/all.T
testsuite/tests/driver/linkwhole/all.T
testsuite/tests/ghc-api/T10052/all.T
testsuite/tests/ghc-api/all.T
testsuite/tests/ghc-api/dynCompileExpr/all.T
testsuite/tests/ghci/T16392/all.T
testsuite/tests/ghci/linking/all.T
testsuite/tests/ghci/linking/dyn/all.T
testsuite/tests/ghci/prog001/prog001.T
testsuite/tests/ghci/scripts/all.T
testsuite/tests/quasiquotation/all.T
testsuite/tests/rts/linker/all.T
testsuite/tests/rts/linker/unload_multiple_objs/all.T

index 239a70d..3df5ca3 100644 (file)
@@ -130,7 +130,7 @@ test('dynHelloWorld',
      [''])
 
 test('T5313',
-     [ when(arch('powerpc64') or arch('powerpc64le'), expect_broken(11259)),
+     [ unless(config.have_RTS_linker, skip),
        extra_run_opts('"' + config.libdir + '"')],
      compile_and_run,
      ['-package ghc'])
@@ -278,4 +278,4 @@ test('T16737',
       expect_broken_for(16541, ['ghci'])],
      compile_and_run, ['-optP=-isystem -optP=T16737include'])
 
-test('T17143', exit_code(1), run_command, ['{compiler} T17143.hs -S -fno-code'])
\ No newline at end of file
+test('T17143', exit_code(1), run_command, ['{compiler} T17143.hs -S -fno-code'])
index ed5b9cc..e4881bb 100644 (file)
@@ -1,6 +1,6 @@
 test('linkwhole',
      [extra_files(['Types.hs','Main.hs','MyCode.hs','Handles.hs']),
-      when(arch('powerpc64') or arch('powerpc64le'), expect_broken(11259)),
+      unless(config.have_RTS_linker, skip),
       when(opsys('freebsd'), expect_broken(16035)),
       when(opsys('mingw32'), skip)],
      makefile_test, [])
index 7913ba4..0e0f3bc 100644 (file)
@@ -1,3 +1,3 @@
-test('T10052', [when(arch('powerpc64') or arch('powerpc64le'),
-                expect_broken(11259)), req_interp],
+test('T10052', [unless(config.have_RTS_linker, skip),
+               req_interp],
      makefile_test, ['T10052'])
index b4e24ec..8df85e0 100644 (file)
@@ -1,17 +1,14 @@
 test('ghcApi', normal, compile_and_run, ['-package ghc'])
 test('T6145', normal, makefile_test, ['T6145'])
-test('T8639_api', when(arch('powerpc64') or arch('powerpc64le'),
-                       expect_broken(11259)),
+test('T8639_api', unless (config.have_RTS_linker, skip),
               makefile_test, ['T8639_api'])
-test('T8628', when(arch('powerpc64') or arch('powerpc64le'),
-                   expect_broken(11259)),
+test('T8628', unless(config.have_RTS_linker, skip),
               makefile_test, ['T8628'])
 test('T9595', extra_run_opts('"' + config.libdir + '"'),
               compile_and_run,
               ['-package ghc'])
 test('T10508_api', [ extra_run_opts('"' + config.libdir + '"'),
-                     when(arch('powerpc64') or arch('powerpc64le'),
-                          expect_broken(11259))],
+                     unless(config.have_RTS_linker, skip)],
                    compile_and_run,
                    ['-package ghc'])
 test('T10942', extra_run_opts('"' + config.libdir + '"'),
index 29c7ac6..fd47e95 100644 (file)
@@ -1,6 +1,6 @@
 test('dynCompileExpr',
      [ extra_run_opts('"' + config.libdir + '"'),
        when(opsys('mingw32'), expect_broken_for(5987, ['dyn'])),
-       when(arch('powerpc64') or arch('powerpc64le'), expect_broken(11259)),
+       unless(config.have_RTS_linker, skip),
        omit_ways(prof_ways) ], # cannot run interpreted code with -prof
      compile_and_run, ['-package ghc'])
index a77e0fd..7b9bd4b 100644 (file)
@@ -1,4 +1,4 @@
 test('T16392',
      [extra_files(['A.hs']),
-      extra_ways(['ghci-ext'])],
+      when(config.have_ext_interp, extra_ways(['ghci-ext']))],
      ghci_script, ['T16392.script'])
index 88ada22..a049df3 100644 (file)
@@ -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),
-      when(arch('powerpc64') or arch('powerpc64le'), expect_broken(11259))],
+      unless(config.have_RTS_linker, skip)],
      makefile_test, ['ghcilink004'])
 
 test('ghcilink005',
index 46ba064..550ae1b 100644 (file)
@@ -48,6 +48,7 @@ test('big-obj', [extra_files(['big-obj-c.c', 'big-obj.hs']),
 test('T3372',
      [unless(doing_ghci, skip),
       extra_run_opts('"' + config.libdir + '"'),
+      unless(config.have_RTS_linker, skip),
       # Concurrent GHC sessions is fragile on Windows since we must lock the
       # package database even for read-only access.
       # See Note [Locking package database on Windows] in GHC.PackageDb
index 49aa486..7cd60c0 100644 (file)
@@ -1,7 +1,5 @@
 test('prog001',
      [extra_files(['../shell.hs', 'A.hs', 'B.hs', 'C1.hs', 'D1.hs', 'D2.hs']),
       cmd_prefix('ghciWayFlags=' + config.ghci_way_flags),
-      when(arch('powerpc64') or arch('powerpc64le'),
-           expect_broken_for(11259, ['ghci-ext'])),
-      unless(opsys('mingw32'), extra_ways(['ghci-ext']))],
+      unless(opsys('mingw32') or (not config.have_ext_interp), extra_ways(['ghci-ext']))],
      ghci_script, ['prog001.script'])
index ede2805..0a2b2f1 100755 (executable)
@@ -11,15 +11,11 @@ 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,
-                 when(arch('powerpc64') or arch('powerpc64le'),
-                       expect_broken_for(11259,['ghci-ext'])),
-                  unless(opsys('mingw32'),extra_ways(['ghci-ext'])) ],
+                  unless(opsys('mingw32') or (not config.have_ext_interp),extra_ways(['ghci-ext'])) ],
                 ghci_script, ['ghci004.script'])
 test('ghci005', combined_output, ghci_script, ['ghci005.script'])
 test('ghci006', [ combined_output,
-                  when(arch('powerpc64') or arch('powerpc64le'),
-                       expect_broken_for(11259,['ghci-ext'])),
-                  unless(opsys('mingw32'),extra_ways(['ghci-ext'])) ],
+                  unless(opsys('mingw32') or (not config.have_ext_interp),extra_ways(['ghci-ext'])) ],
                 ghci_script, ['ghci006.script'])
 test('ghci007', combined_output, ghci_script, ['ghci007.script'])
 test('ghci008', [ combined_output,
index e8320a9..331f7c1 100644 (file)
@@ -8,5 +8,6 @@ test('T7918',
 test('T14028',
      [req_interp,
       only_ways([config.ghc_th_way]),
+      unless(config.have_ext_interp, skip),
       when(opsys('linux') and arch('x86_64'), expect_broken_for(17300, ['dyn']))],
      makefile_test, ['T14028'])
index f57edc4..2f1bb2b 100644 (file)
@@ -57,19 +57,16 @@ def checkDynAsm(actual_file, normaliser):
 # 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']),
-                     when(arch('powerpc64') or arch('powerpc64le'),
-                          expect_broken(11259))],
+                       unless(config.have_RTS_linker, skip)],
      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']),
-                      when(arch('powerpc64') or arch('powerpc64le'),
-                          expect_broken(11259)),
+                       unless(config.have_RTS_linker, skip),
                       when(opsys('darwin') or opsys('mingw32'), skip)],
      makefile_test, ['T5435_v_asm_b'])
 test('T5435_v_gcc', [extra_files(['T5435.hs', 'T5435_gcc.c']),
-                     when(arch('powerpc64') or arch('powerpc64le'),
-                          expect_broken(11259))],
+                     unless(config.have_RTS_linker, skip)],
      makefile_test, ['T5435_v_gcc'])
 test('T5435_dyn_asm', [extra_files(['T5435.hs', 'T5435_asm.c']),
                        check_stdout(checkDynAsm)],
@@ -79,7 +76,7 @@ test('T5435_dyn_gcc', extra_files(['T5435.hs', 'T5435_gcc.c']) , makefile_test,
 ######################################
 test('linker_unload',
      [extra_files(['LinkerUnload.hs', 'Test.hs']),
-      when(arch('powerpc64') or arch('powerpc64le'), expect_broken(11259))],
+      unless(config.have_RTS_linker, skip)],
      makefile_test, ['linker_unload'])
 
 ######################################
index e7b1e2f..378177c 100644 (file)
@@ -1,4 +1,4 @@
 test('linker_unload_multiple_objs',
      [extra_files(['../LinkerUnload.hs', 'A.hs', 'B.hs', 'C.hs', 'D.hs',]),
-      when(arch('powerpc64') or arch('powerpc64le'), expect_broken(11259))],
+      unless(config.have_RTS_linker, skip)],
      run_command, ['$MAKE -s --no-print-directory linker_unload_multiple_objs'])