Commit 487ede42 authored by Peter Trommler's avatar Peter Trommler 🥁 Committed by Marge Bot
Browse files

testsuite: skip test requiring RTS linker on PowerPC

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
parent d57059f7
Pipeline #12187 passed with stages
in 503 minutes and 19 seconds
......@@ -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'])
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, [])
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'])
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 + '"'),
......
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'])
test('T16392',
[extra_files(['A.hs']),
extra_ways(['ghci-ext'])],
when(config.have_ext_interp, extra_ways(['ghci-ext']))],
ghci_script, ['T16392.script'])
......@@ -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',
......
......@@ -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
......
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'])
......@@ -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,
......
......@@ -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'])
......@@ -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'])
######################################
......
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'])
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment