summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/config/ghc29
-rw-r--r--testsuite/driver/testlib.py36
-rw-r--r--testsuite/tests/backpack/cabal/T15594/all.T2
-rw-r--r--testsuite/tests/backpack/cabal/T16219/all.T6
-rw-r--r--testsuite/tests/backpack/cabal/T20509/all.T6
-rw-r--r--testsuite/tests/backpack/cabal/bkpcabal01/all.T1
-rw-r--r--testsuite/tests/backpack/cabal/bkpcabal02/all.T3
-rw-r--r--testsuite/tests/backpack/cabal/bkpcabal03/all.T3
-rw-r--r--testsuite/tests/backpack/cabal/bkpcabal04/all.T3
-rw-r--r--testsuite/tests/backpack/cabal/bkpcabal05/all.T3
-rw-r--r--testsuite/tests/backpack/cabal/bkpcabal06/all.T1
-rw-r--r--testsuite/tests/backpack/cabal/bkpcabal07/all.T1
-rw-r--r--testsuite/tests/cabal/T12733/all.T4
-rw-r--r--testsuite/tests/cabal/cabal01/all.T3
-rw-r--r--testsuite/tests/cabal/cabal03/all.T3
-rw-r--r--testsuite/tests/cabal/cabal04/all.T3
-rw-r--r--testsuite/tests/cabal/cabal05/all.T3
-rw-r--r--testsuite/tests/cabal/cabal06/all.T3
-rw-r--r--testsuite/tests/cabal/cabal08/all.T3
-rw-r--r--testsuite/tests/cabal/cabal09/all.T3
-rw-r--r--testsuite/tests/cabal/cabal10/all.T3
-rw-r--r--testsuite/tests/cabal/t18567/all.T4
-rw-r--r--testsuite/tests/cabal/t19518/all.T4
-rw-r--r--testsuite/tests/cabal/t20242/all.T2
-rw-r--r--testsuite/tests/callarity/perf/all.T3
-rw-r--r--testsuite/tests/callarity/unittest/all.T2
-rw-r--r--testsuite/tests/cmm/opt/all.T2
-rw-r--r--testsuite/tests/cmm/should_compile/T21370/all.T5
-rw-r--r--testsuite/tests/cmm/should_compile/all.T5
-rw-r--r--testsuite/tests/cmm/should_run/all.T2
-rw-r--r--testsuite/tests/codeGen/should_compile/all.T29
-rw-r--r--testsuite/tests/codeGen/should_compile/cg010/all.T5
-rw-r--r--testsuite/tests/codeGen/should_run/all.T22
-rw-r--r--testsuite/tests/concurrent/should_run/all.T48
-rw-r--r--testsuite/tests/corelint/all.T2
-rw-r--r--testsuite/tests/dependent/should_compile/all.T4
-rw-r--r--testsuite/tests/driver/MergeObjsMode/all.T4
-rw-r--r--testsuite/tests/driver/T12674/all.T8
-rw-r--r--testsuite/tests/driver/T1372/all.T2
-rw-r--r--testsuite/tests/driver/T13914/all.T4
-rw-r--r--testsuite/tests/driver/T14075/all.T3
-rw-r--r--testsuite/tests/driver/T16318/all.T2
-rw-r--r--testsuite/tests/driver/T1959/test.T2
-rw-r--r--testsuite/tests/driver/T3007/all.T4
-rw-r--r--testsuite/tests/driver/all.T47
-rw-r--r--testsuite/tests/driver/fat-iface/all.T2
-rw-r--r--testsuite/tests/driver/multipleHomeUnits/all.T6
-rw-r--r--testsuite/tests/driver/multipleHomeUnits/different-db/all.T4
-rw-r--r--testsuite/tests/driver/multipleHomeUnits/hi-dir/all.T1
-rw-r--r--testsuite/tests/driver/multipleHomeUnits/mhu-closure/all.T4
-rw-r--r--testsuite/tests/driver/multipleHomeUnits/o-files/all.T1
-rw-r--r--testsuite/tests/driver/multipleHomeUnits/target-file-path/all.T1
-rw-r--r--testsuite/tests/driver/package-imports-t20779/all.T2
-rw-r--r--testsuite/tests/driver/recomp004/all.T2
-rw-r--r--testsuite/tests/driver/recomp007/all.T6
-rw-r--r--testsuite/tests/driver/recomp008/all.T6
-rw-r--r--testsuite/tests/driver/recomp011/all.T6
-rw-r--r--testsuite/tests/driver/recomp015/all.T1
-rw-r--r--testsuite/tests/driver/recompChangedPackage/all.T7
-rw-r--r--testsuite/tests/driver/recompTHpackage/all.T3
-rw-r--r--testsuite/tests/ffi/should_run/all.T63
-rw-r--r--testsuite/tests/ghc-api/T4891/all.T2
-rw-r--r--testsuite/tests/ghc-api/all.T14
-rw-r--r--testsuite/tests/ghc-api/annotations-literals/all.T4
-rw-r--r--testsuite/tests/ghc-api/apirecomp001/all.T3
-rw-r--r--testsuite/tests/ghc-api/downsweep/all.T2
-rw-r--r--testsuite/tests/ghc-api/target-contents/all.T4
-rw-r--r--testsuite/tests/ghci/T13786/all.T2
-rw-r--r--testsuite/tests/ghci/caf_crash/all.T3
-rw-r--r--testsuite/tests/ghci/linking/all.T20
-rw-r--r--testsuite/tests/ghci/linking/dyn/all.T14
-rwxr-xr-xtestsuite/tests/ghci/scripts/all.T2
-rw-r--r--testsuite/tests/ghci/should_fail/all.T2
-rw-r--r--testsuite/tests/haddock/perf/all.T4
-rw-r--r--testsuite/tests/hiefile/should_run/all.T2
-rw-r--r--testsuite/tests/hp2ps/all.T2
-rw-r--r--testsuite/tests/hpc/all.T2
-rw-r--r--testsuite/tests/hsc2hs/all.T22
-rw-r--r--testsuite/tests/indexed-types/should_compile/all.T2
-rw-r--r--testsuite/tests/lib/base/all.T4
-rw-r--r--testsuite/tests/numeric/should_run/all.T4
-rw-r--r--testsuite/tests/patsyn/should_compile/T13350/all.T3
-rw-r--r--testsuite/tests/perf/compiler/all.T1
-rw-r--r--testsuite/tests/perf/should_run/all.T5
-rw-r--r--testsuite/tests/perf/space_leaks/all.T1
-rw-r--r--testsuite/tests/primops/should_run/all.T5
-rw-r--r--testsuite/tests/profiling/should_run/all.T2
-rw-r--r--testsuite/tests/programs/seward-space-leak/test.T6
-rw-r--r--testsuite/tests/rename/prog006/all.T2
-rw-r--r--testsuite/tests/rep-poly/all.T16
-rw-r--r--testsuite/tests/rts/T15261/all.T4
-rw-r--r--testsuite/tests/rts/T15894/all.T4
-rw-r--r--testsuite/tests/rts/T1791/all.T4
-rw-r--r--testsuite/tests/rts/T8308/all.T2
-rw-r--r--testsuite/tests/rts/T9579/all.T2
-rw-r--r--testsuite/tests/rts/all.T127
-rw-r--r--testsuite/tests/rts/continuations/all.T2
-rw-r--r--testsuite/tests/rts/flags/T17720/all.T11
-rw-r--r--testsuite/tests/rts/flags/all.T2
-rw-r--r--testsuite/tests/rts/linker/T11223/all.T24
-rw-r--r--testsuite/tests/rts/linker/all.T11
-rw-r--r--testsuite/tests/rts/pause-resume/all.T7
-rw-r--r--testsuite/tests/rts/pause-resume/shouldfail/all.T3
-rw-r--r--testsuite/tests/safeHaskell/check/pkg01/all.T33
-rw-r--r--testsuite/tests/showIface/all.T2
-rw-r--r--testsuite/tests/simplCore/should_compile/all.T11
-rw-r--r--testsuite/tests/tcplugins/all.T1
-rw-r--r--testsuite/tests/typecheck/T13168/all.T2
-rw-r--r--testsuite/tests/typecheck/bug1465/all.T2
-rw-r--r--testsuite/tests/typecheck/should_compile/all.T6
-rw-r--r--testsuite/tests/typecheck/should_fail/all.T6
-rw-r--r--testsuite/tests/typecheck/testeq1/test.T6
-rw-r--r--testsuite/tests/unboxedsums/module/all.T2
-rw-r--r--testsuite/tests/unlifted-datatypes/should_compile/all.T4
-rw-r--r--testsuite/tests/utils/should_run/all.T3
115 files changed, 609 insertions, 279 deletions
diff --git a/testsuite/config/ghc b/testsuite/config/ghc
index 9e6fa8db0a..8916ffa3a9 100644
--- a/testsuite/config/ghc
+++ b/testsuite/config/ghc
@@ -8,16 +8,17 @@ import re
#
config.compiler_always_flags = ghc_compiler_always_flags.split()
-# By default, the 'normal' and 'hpc' ways are enabled. In addition, certain
+# By default, the 'normal' way is enabled. In addition, certain
# ways are enabled automatically if this GHC supports them. Ways that fall in
-# this group are 'optasm', 'optllvm', 'profasm', 'threaded1', 'threaded2',
+# this group are 'hpc', 'optasm', 'optllvm', 'profasm', 'threaded1', 'threaded2',
# 'profthreaded', 'ghci', and whichever of 'static/dyn' is not this GHC's
# default mode. Other ways should be set explicitly from .T files.
-config.compile_ways = ['normal', 'hpc']
-config.run_ways = ['normal', 'hpc']
+config.compile_ways = ['normal']
+config.run_ways = ['normal']
# ways that are not enabled by default, but can always be invoked explicitly
-config.other_ways = ['prof', 'normal_h',
+config.other_ways = ['hpc',
+ 'prof', 'normal_h',
'prof_hc_hb','prof_hb',
'prof_hd','prof_hy','prof_hr',
'sanity',
@@ -34,6 +35,7 @@ config.other_ways = ['prof', 'normal_h',
'compacting_gc',
]
+
if ghc_with_native_codegen:
config.compile_ways.append('optasm')
config.run_ways.append('optasm')
@@ -65,6 +67,16 @@ if windows:
else:
config.other_ways += winio_ways
+# LLVM
+if not config.unregisterised and not config.arch == "js" and config.have_llvm:
+ config.compile_ways.append('optllvm')
+ config.run_ways.append('optllvm')
+
+# HPC
+if not config.arch == "js":
+ config.compile_ways.append('hpc')
+ config.run_ways.append('hpc')
+
config.way_flags = {
'normal' : [],
'normal_h' : [],
@@ -179,13 +191,6 @@ llvm_ways = [x[0] for x in config.way_flags.items()
if '-fllvm' in x[1]]
def get_compiler_info():
- if config.unregisterised:
- print("Unregisterised build; skipping LLVM ways...")
- elif config.have_llvm:
- config.compile_ways.append('optllvm')
- config.run_ways.append('optllvm')
- else:
- print("Failed to find `llc` command; skipping LLVM ways...")
# Whether GHC itself was built using the LLVM backend. We need to know this
# since some tests in ext-interp fail when stage2 ghc is built using
diff --git a/testsuite/driver/testlib.py b/testsuite/driver/testlib.py
index a0f97098ab..39ba7d8b31 100644
--- a/testsuite/driver/testlib.py
+++ b/testsuite/driver/testlib.py
@@ -137,6 +137,18 @@ def no_deps( name, opts):
def skip( name, opts ):
opts.skip = True
+# disable test on JS arch
+def js_skip( name, opts ):
+ if arch("js"):
+ skip(name,opts)
+
+# expect broken for the JS backend
+def js_broken( bug: IssueNumber ):
+ if arch("js"):
+ return expect_broken(bug);
+ else:
+ return normal;
+
def expect_fail( name, opts ):
# The compiler, testdriver, OS or platform is missing a certain
# feature, and we don't plan to or can't fix it now or in the
@@ -250,15 +262,28 @@ def req_dynamic_hs( name, opts ):
def req_interp( name, opts ):
if not config.have_interp:
opts.expect = 'fail'
+ # JS backend doesn't provide an interpreter yet
+ js_skip(name, opts)
def req_rts_linker( name, opts ):
if not config.have_RTS_linker:
opts.expect = 'fail'
+ # JS backend doesn't provide the RTS linker
+ js_skip(name, opts)
def req_c( name, opts ):
"""
Mark a test as requiring C source file support
"""
+ # JS backend doesn't support C (yet)
+ js_skip(name, opts)
+
+def req_ffi_exports( name, opts):
+ """
+ Mark a test as requiring FFI exports
+ """
+ # JS backend doesn't support FFI exports (yet)
+ js_skip(name, opts)
def req_th( name, opts ):
"""
@@ -739,6 +764,8 @@ def objcpp_src( name, opts ):
def cmm_src( name, opts ):
opts.cmm_src = True
+ # JS backend doesn't support Cmm
+ js_skip(name, opts)
def outputdir( odir ):
return lambda name, opts, d=odir: _outputdir(name, opts, d)
@@ -2313,6 +2340,8 @@ def normalise_errmsg(s: str) -> str:
# hacky solution is used in place of more sophisticated filename
# mangling
s = re.sub('([^\\s])\\.exe', '\\1', s)
+ # Same thing for .jsexe directories generated by the JS backend
+ s = re.sub('([^\\s])\\.jsexe', '\\1', s)
# normalise slashes, minimise Windows/Unix filename differences
s = re.sub('\\\\', '/', s)
@@ -2320,6 +2349,10 @@ def normalise_errmsg(s: str) -> str:
# The inplace ghc's are called ghc-stage[123] to avoid filename
# collisions, so we need to normalise that to just "ghc"
s = re.sub('ghc-stage[123]', 'ghc', s)
+ # Remove platform prefix (e.g. js-unknown-ghcjs) for cross-compiled tools
+ # (ghc, ghc-pkg, unlit, etc.)
+ s = re.sub('\\w+-\\w+-\\w+-ghc', 'ghc', s)
+ s = re.sub('\\w+-\\w+-\\w+-unlit', 'unlit', s)
# On windows error messages can mention versioned executables
s = re.sub('ghc-[0-9.]+', 'ghc', s)
@@ -2428,6 +2461,7 @@ def normalise_slashes_( s: str ) -> str:
def normalise_exe_( s: str ) -> str:
s = re.sub('\.exe', '', s)
+ s = re.sub('\.jsexe', '', s)
return s
def normalise_output( s: str ) -> str:
@@ -2436,8 +2470,10 @@ def normalise_output( s: str ) -> str:
s = modify_lines(s, lambda l: re.sub(' error:', '', l))
s = modify_lines(s, lambda l: re.sub(' Warning:', ' warning:', l))
# Remove a .exe extension (for Windows)
+ # and .jsexe extension (for the JS backend)
# This can occur in error messages generated by the program.
s = re.sub('([^\\s])\\.exe', '\\1', s)
+ s = re.sub('([^\\s])\\.jsexe', '\\1', s)
s = normalise_callstacks(s)
s = normalise_type_reps(s)
# ghci outputs are pretty unstable with -fexternal-dynamic-refs, which is
diff --git a/testsuite/tests/backpack/cabal/T15594/all.T b/testsuite/tests/backpack/cabal/T15594/all.T
index 1978865665..919f327ed7 100644
--- a/testsuite/tests/backpack/cabal/T15594/all.T
+++ b/testsuite/tests/backpack/cabal/T15594/all.T
@@ -4,6 +4,6 @@ else:
cleanup = 'CLEANUP=0'
test('T15594',
- extra_files(['Setup.hs', 'Stuff.hs', 'Sig.hsig', 'pkg.cabal', 'src']),
+ [extra_files(['Setup.hs', 'Stuff.hs', 'Sig.hsig', 'pkg.cabal', 'src']), js_broken(22356)],
run_command,
['$MAKE -s --no-print-directory T15594 ' + cleanup])
diff --git a/testsuite/tests/backpack/cabal/T16219/all.T b/testsuite/tests/backpack/cabal/T16219/all.T
index dc53deb2be..b0bc08c625 100644
--- a/testsuite/tests/backpack/cabal/T16219/all.T
+++ b/testsuite/tests/backpack/cabal/T16219/all.T
@@ -4,7 +4,9 @@ else:
cleanup = 'CLEANUP=0'
test('T16219',
- [extra_files(['Setup.hs', 'backpack-issue.cabal', 'library-a', 'library-a-impl', 'library-b']),
- when(opsys('mingw32'), fragile(17452))],
+ [ extra_files(['Setup.hs', 'backpack-issue.cabal', 'library-a', 'library-a-impl', 'library-b'])
+ , when(opsys('mingw32'), fragile(17452))
+ , js_broken(22356)
+ ],
run_command,
['$MAKE -s --no-print-directory T16219 ' + cleanup])
diff --git a/testsuite/tests/backpack/cabal/T20509/all.T b/testsuite/tests/backpack/cabal/T20509/all.T
index d94879a8d7..fa5f220454 100644
--- a/testsuite/tests/backpack/cabal/T20509/all.T
+++ b/testsuite/tests/backpack/cabal/T20509/all.T
@@ -4,7 +4,9 @@ else:
cleanup = 'CLEANUP=0'
test('T20509',
- [extra_files(['p', 'q', 'T20509.cabal', 'Setup.hs']),
- run_timeout_multiplier(2)],
+ [extra_files(['p', 'q', 'T20509.cabal', 'Setup.hs'])
+ , run_timeout_multiplier(2)
+ , js_broken(22356)
+ ],
run_command,
['$MAKE -s --no-print-directory T20509 ' + cleanup])
diff --git a/testsuite/tests/backpack/cabal/bkpcabal01/all.T b/testsuite/tests/backpack/cabal/bkpcabal01/all.T
index 1b72bd2f70..f1987fc381 100644
--- a/testsuite/tests/backpack/cabal/bkpcabal01/all.T
+++ b/testsuite/tests/backpack/cabal/bkpcabal01/all.T
@@ -5,6 +5,7 @@ else:
test('bkpcabal01',
[extra_files(['p', 'q', 'impl', 'bkpcabal01.cabal', 'Setup.hs', 'Main.hs']),
+ js_broken(22351),
run_timeout_multiplier(2)],
run_command,
['$MAKE -s --no-print-directory bkpcabal01 ' + cleanup])
diff --git a/testsuite/tests/backpack/cabal/bkpcabal02/all.T b/testsuite/tests/backpack/cabal/bkpcabal02/all.T
index f9639dadfd..995f945080 100644
--- a/testsuite/tests/backpack/cabal/bkpcabal02/all.T
+++ b/testsuite/tests/backpack/cabal/bkpcabal02/all.T
@@ -4,6 +4,7 @@ else:
cleanup = 'CLEANUP=0'
test('bkpcabal02',
- extra_files(['p', 'q', 'bkpcabal02.cabal', 'Setup.hs']),
+ [extra_files(['p', 'q', 'bkpcabal02.cabal', 'Setup.hs']),
+ js_broken(22351)],
run_command,
['$MAKE -s --no-print-directory bkpcabal02 ' + cleanup])
diff --git a/testsuite/tests/backpack/cabal/bkpcabal03/all.T b/testsuite/tests/backpack/cabal/bkpcabal03/all.T
index 28bea90fd9..a8df318dbd 100644
--- a/testsuite/tests/backpack/cabal/bkpcabal03/all.T
+++ b/testsuite/tests/backpack/cabal/bkpcabal03/all.T
@@ -4,6 +4,7 @@ else:
cleanup = 'CLEANUP=0'
test('bkpcabal03',
- extra_files(['asig1', 'asig2', 'bkpcabal03.cabal.in1', 'bkpcabal03.cabal.in2', 'Setup.hs', 'Mod.hs']),
+ [extra_files(['asig1', 'asig2', 'bkpcabal03.cabal.in1', 'bkpcabal03.cabal.in2', 'Setup.hs', 'Mod.hs']),
+ js_broken(22351)],
run_command,
['$MAKE -s --no-print-directory bkpcabal03 ' + cleanup])
diff --git a/testsuite/tests/backpack/cabal/bkpcabal04/all.T b/testsuite/tests/backpack/cabal/bkpcabal04/all.T
index 2acc61182b..59c245069f 100644
--- a/testsuite/tests/backpack/cabal/bkpcabal04/all.T
+++ b/testsuite/tests/backpack/cabal/bkpcabal04/all.T
@@ -5,6 +5,7 @@ else:
# Test recompilation checking on signatures
test('bkpcabal04',
- extra_files(['p', 'q', 'bkpcabal04.cabal.in1', 'bkpcabal04.cabal.in2', 'Setup.hs']),
+ [extra_files(['p', 'q', 'bkpcabal04.cabal.in1', 'bkpcabal04.cabal.in2', 'Setup.hs']),
+ js_broken(22351)],
run_command,
['$MAKE -s --no-print-directory bkpcabal04 ' + cleanup])
diff --git a/testsuite/tests/backpack/cabal/bkpcabal05/all.T b/testsuite/tests/backpack/cabal/bkpcabal05/all.T
index f6b74f2feb..e3ccc5c296 100644
--- a/testsuite/tests/backpack/cabal/bkpcabal05/all.T
+++ b/testsuite/tests/backpack/cabal/bkpcabal05/all.T
@@ -4,6 +4,7 @@ else:
cleanup = 'CLEANUP=0'
test('bkpcabal05',
- extra_files(['bkpcabal05.cabal', 'A.hsig.in1', 'A.hsig.in2', 'M.hs', 'Setup.hs']),
+ [extra_files(['bkpcabal05.cabal', 'A.hsig.in1', 'A.hsig.in2', 'M.hs', 'Setup.hs']),
+ js_broken(22351)],
run_command,
['$MAKE -s --no-print-directory bkpcabal05 ' + cleanup])
diff --git a/testsuite/tests/backpack/cabal/bkpcabal06/all.T b/testsuite/tests/backpack/cabal/bkpcabal06/all.T
index 40ad858aee..b10c9a8f52 100644
--- a/testsuite/tests/backpack/cabal/bkpcabal06/all.T
+++ b/testsuite/tests/backpack/cabal/bkpcabal06/all.T
@@ -5,6 +5,7 @@ else:
test('bkpcabal06',
[extra_files(['bkpcabal06.cabal', 'Setup.hs', 'sig', 'impl']),
+ js_broken(22351),
when(opsys('mingw32'), skip)],
run_command,
['$MAKE -s --no-print-directory bkpcabal06 ' + cleanup])
diff --git a/testsuite/tests/backpack/cabal/bkpcabal07/all.T b/testsuite/tests/backpack/cabal/bkpcabal07/all.T
index bd6e689a4b..b4144540cc 100644
--- a/testsuite/tests/backpack/cabal/bkpcabal07/all.T
+++ b/testsuite/tests/backpack/cabal/bkpcabal07/all.T
@@ -5,6 +5,7 @@ else:
test('bkpcabal07',
[extra_files(['bkpcabal07.cabal', 'Setup.hs', 'M.hs', 'P.hsig']),
+ js_broken(22351),
when(opsys('mingw32'), skip)],
run_command,
['$MAKE -s --no-print-directory bkpcabal07 ' + cleanup])
diff --git a/testsuite/tests/cabal/T12733/all.T b/testsuite/tests/cabal/T12733/all.T
index a9cf30f441..3a2c2f8af2 100644
--- a/testsuite/tests/cabal/T12733/all.T
+++ b/testsuite/tests/cabal/T12733/all.T
@@ -4,6 +4,8 @@ else:
cleanup = 'CLEANUP=0'
test('T12733',
- extra_files(['p/', 'q/', 'Setup.hs']),
+ [extra_files(['p/', 'q/', 'Setup.hs'])
+ , js_broken(22356)
+ ],
run_command,
['$MAKE -s --no-print-directory T12733 ' + cleanup])
diff --git a/testsuite/tests/cabal/cabal01/all.T b/testsuite/tests/cabal/cabal01/all.T
index 4a17490f18..123a64c59d 100644
--- a/testsuite/tests/cabal/cabal01/all.T
+++ b/testsuite/tests/cabal/cabal01/all.T
@@ -23,6 +23,7 @@ def ignoreLdOutput(str):
test('cabal01',
[extra_files(['A.hs', 'B/', 'MainA.hs', 'Setup.lhs', 'c_src/', 'hello.c', 'test.cabal']),
- normalise_errmsg_fun(ignoreLdOutput)],
+ normalise_errmsg_fun(ignoreLdOutput),
+ js_broken(22351)],
run_command,
['$MAKE -s --no-print-directory cabal01 VANILLA=' + vanilla + ' PROF=' + prof + ' DYN=' + dyn + ' ' + cleanup])
diff --git a/testsuite/tests/cabal/cabal03/all.T b/testsuite/tests/cabal/cabal03/all.T
index 938d0e4c48..057f44e643 100644
--- a/testsuite/tests/cabal/cabal03/all.T
+++ b/testsuite/tests/cabal/cabal03/all.T
@@ -4,6 +4,7 @@ else:
cleanup = 'CLEANUP=0'
test('cabal03',
- extra_files(['Setup.lhs', 'p/', 'q/', 'r/']),
+ [extra_files(['Setup.lhs', 'p/', 'q/', 'r/']),
+ js_broken(22351)],
run_command,
['$MAKE -s --no-print-directory cabal03 ' + cleanup])
diff --git a/testsuite/tests/cabal/cabal04/all.T b/testsuite/tests/cabal/cabal04/all.T
index d84acf98b3..ebb76b7d3c 100644
--- a/testsuite/tests/cabal/cabal04/all.T
+++ b/testsuite/tests/cabal/cabal04/all.T
@@ -19,6 +19,7 @@ else:
cleanup = 'CLEANUP=0'
test('cabal04',
- extra_files(['Library.hs', 'Setup.lhs', 'TH.hs', 'thtest.cabal']),
+ [extra_files(['Library.hs', 'Setup.lhs', 'TH.hs', 'thtest.cabal']),
+ js_broken(22351)],
run_command,
['$MAKE -s --no-print-directory cabal04 VANILLA=' + vanilla + ' PROF=' + prof + ' DYN=' + dyn + ' ' + cleanup])
diff --git a/testsuite/tests/cabal/cabal05/all.T b/testsuite/tests/cabal/cabal05/all.T
index 0a2a0fd670..833d6edfa4 100644
--- a/testsuite/tests/cabal/cabal05/all.T
+++ b/testsuite/tests/cabal/cabal05/all.T
@@ -4,6 +4,7 @@ else:
cleanup = 'CLEANUP=0'
test('cabal05',
- extra_files(['Setup.hs', 'p/', 'q/', 'r/', 's/', 't/']),
+ [extra_files(['Setup.hs', 'p/', 'q/', 'r/', 's/', 't/']),
+ js_broken(22351)],
run_command,
['$MAKE -s --no-print-directory cabal05 ' + cleanup])
diff --git a/testsuite/tests/cabal/cabal06/all.T b/testsuite/tests/cabal/cabal06/all.T
index aa53948738..cd7be2a70c 100644
--- a/testsuite/tests/cabal/cabal06/all.T
+++ b/testsuite/tests/cabal/cabal06/all.T
@@ -4,6 +4,7 @@ else:
cleanup = 'CLEANUP=0'
test('cabal06',
- extra_files(['Setup.hs', 'p-1.0/', 'p-1.1/', 'q/', 'r/']),
+ [extra_files(['Setup.hs', 'p-1.0/', 'p-1.1/', 'q/', 'r/']),
+ js_broken(22351)],
run_command,
['$MAKE -s --no-print-directory cabal06 ' + cleanup])
diff --git a/testsuite/tests/cabal/cabal08/all.T b/testsuite/tests/cabal/cabal08/all.T
index 95864fdf96..3f1665b8fc 100644
--- a/testsuite/tests/cabal/cabal08/all.T
+++ b/testsuite/tests/cabal/cabal08/all.T
@@ -4,6 +4,7 @@ else:
cleanup = 'CLEANUP=0'
test('cabal08',
- extra_files(['Main.hs', 'Setup.hs', 'p1/', 'p2/']),
+ [extra_files(['Main.hs', 'Setup.hs', 'p1/', 'p2/']),
+ js_broken(22351)],
run_command,
['$MAKE -s --no-print-directory cabal08 ' + cleanup])
diff --git a/testsuite/tests/cabal/cabal09/all.T b/testsuite/tests/cabal/cabal09/all.T
index 438161b05b..12b048bcfd 100644
--- a/testsuite/tests/cabal/cabal09/all.T
+++ b/testsuite/tests/cabal/cabal09/all.T
@@ -4,6 +4,7 @@ else:
cleanup = 'CLEANUP=0'
test('cabal09',
- extra_files(['Main.hs', 'Setup.hs', 'reexport.cabal']),
+ [extra_files(['Main.hs', 'Setup.hs', 'reexport.cabal']),
+ js_broken(22351)],
run_command,
['$MAKE -s --no-print-directory cabal09 ' + cleanup])
diff --git a/testsuite/tests/cabal/cabal10/all.T b/testsuite/tests/cabal/cabal10/all.T
index 778637d948..15a255f82b 100644
--- a/testsuite/tests/cabal/cabal10/all.T
+++ b/testsuite/tests/cabal/cabal10/all.T
@@ -4,6 +4,7 @@ else:
cleanup = 'CLEANUP=0'
test('cabal10',
- extra_files(['Use.hs', 'Setup.hs', 'src/', 'internal-lib.cabal']),
+ [extra_files(['Use.hs', 'Setup.hs', 'src/', 'internal-lib.cabal']),
+ js_broken(22351)],
run_command,
['$MAKE -s --no-print-directory cabal10 ' + cleanup])
diff --git a/testsuite/tests/cabal/t18567/all.T b/testsuite/tests/cabal/t18567/all.T
index 5b30bfaaf9..bbe84cda99 100644
--- a/testsuite/tests/cabal/t18567/all.T
+++ b/testsuite/tests/cabal/t18567/all.T
@@ -4,6 +4,8 @@ else:
cleanup = 'CLEANUP=0'
test('T18567',
- extra_files(['Setup.hs', 'sublib/', 'sublib-unused', 'src/', 'internal-lib.cabal']),
+ [ extra_files(['Setup.hs', 'sublib/', 'sublib-unused', 'src/', 'internal-lib.cabal'])
+ , js_broken(22356)
+ ],
run_command,
['$MAKE -s --no-print-directory T18567 ' + cleanup])
diff --git a/testsuite/tests/cabal/t19518/all.T b/testsuite/tests/cabal/t19518/all.T
index a2cd241a70..e9daf4e970 100644
--- a/testsuite/tests/cabal/t19518/all.T
+++ b/testsuite/tests/cabal/t19518/all.T
@@ -4,6 +4,8 @@ else:
cleanup = 'CLEANUP=0'
test('t19518',
- extra_files(['Setup.hs', 'p/', 'q/', 'r/']),
+ [ extra_files(['Setup.hs', 'p/', 'q/', 'r/'])
+ , js_broken(22356)
+ ],
run_command,
['$MAKE -s --no-print-directory t19518 ' + cleanup])
diff --git a/testsuite/tests/cabal/t20242/all.T b/testsuite/tests/cabal/t20242/all.T
index 4e1c0387ee..d0e93ef66b 100644
--- a/testsuite/tests/cabal/t20242/all.T
+++ b/testsuite/tests/cabal/t20242/all.T
@@ -4,6 +4,6 @@ else:
cleanup = 'CLEANUP=0'
test('T20242',
- [extra_files(['Setup.hs', 'BootNoHeader.cabal','Foo.hs', 'Foo.hs-boot', 'Main.hs'])],
+ [extra_files(['Setup.hs', 'BootNoHeader.cabal','Foo.hs', 'Foo.hs-boot', 'Main.hs']), js_broken(22352)],
run_command,
['$MAKE -s --no-print-directory T20242 ' + cleanup])
diff --git a/testsuite/tests/callarity/perf/all.T b/testsuite/tests/callarity/perf/all.T
index 37e40e6f9c..b5c282ee18 100644
--- a/testsuite/tests/callarity/perf/all.T
+++ b/testsuite/tests/callarity/perf/all.T
@@ -1,7 +1,8 @@
test('T3924',
[collect_stats('bytes allocated',8)
, only_ways(['normal'])
- ],
+ , js_broken(22261)
+ ],
compile_and_run,
['-O'])
diff --git a/testsuite/tests/callarity/unittest/all.T b/testsuite/tests/callarity/unittest/all.T
index e39c1d7597..bbdff0d676 100644
--- a/testsuite/tests/callarity/unittest/all.T
+++ b/testsuite/tests/callarity/unittest/all.T
@@ -5,4 +5,4 @@ setTestOpts(f)
setTestOpts(extra_hc_opts('-package ghc'))
setTestOpts(extra_run_opts('"' + config.libdir + '"'))
-test('CallArity1', normal, compile_and_run, [''])
+test('CallArity1', js_broken(22362), compile_and_run, [''])
diff --git a/testsuite/tests/cmm/opt/all.T b/testsuite/tests/cmm/opt/all.T
index 0e4fc9abf2..9fdb8a700b 100644
--- a/testsuite/tests/cmm/opt/all.T
+++ b/testsuite/tests/cmm/opt/all.T
@@ -1,5 +1,5 @@
# Verify that we optimize away conditional branches which always jump
# to the same target.
-test('T15188', normal, makefile_test, [])
+test('T15188', cmm_src, makefile_test, [])
test('T18141', normal, compile, [''])
test('T20142', normal, compile, [''])
diff --git a/testsuite/tests/cmm/should_compile/T21370/all.T b/testsuite/tests/cmm/should_compile/T21370/all.T
index a88bb4d26f..f0df98e111 100644
--- a/testsuite/tests/cmm/should_compile/T21370/all.T
+++ b/testsuite/tests/cmm/should_compile/T21370/all.T
@@ -1 +1,4 @@
-test('T21370', [extra_files(["subdir", "test.cmm", "test2.cmm", "Main.hs"])] , makefile_test, [])
+test('T21370',
+ [ extra_files(["subdir", "test.cmm", "test2.cmm", "Main.hs"])
+ , js_skip # use Cmm
+ ], makefile_test, [])
diff --git a/testsuite/tests/cmm/should_compile/all.T b/testsuite/tests/cmm/should_compile/all.T
index 40813f01ec..ce38d8d9a1 100644
--- a/testsuite/tests/cmm/should_compile/all.T
+++ b/testsuite/tests/cmm/should_compile/all.T
@@ -1,4 +1,7 @@
-#
+setTestOpts(
+ [ js_skip # Cmm not supported by the JS backend
+ ])
+
test('selfloop', [cmm_src], compile, ['-no-hs-main'])
test('cmm_sink_sp', [ only_ways(['optasm']), grep_errmsg('(\[Sp.*\]).*(=).*(\[.*R1.*\]).*;',[1,2,3]), cmm_src], compile, ['-no-hs-main -ddump-cmm -dsuppress-uniques -O'])
diff --git a/testsuite/tests/cmm/should_run/all.T b/testsuite/tests/cmm/should_run/all.T
index bb667a93de..7290fee784 100644
--- a/testsuite/tests/cmm/should_run/all.T
+++ b/testsuite/tests/cmm/should_run/all.T
@@ -6,6 +6,7 @@ test('HooplPostorder',
test('cmp64',
[ extra_run_opts('"' + config.libdir + '"')
, omit_ways(['ghci'])
+ , js_skip
],
multi_compile_and_run,
['cmp64', [('cmp64_cmm.cmm', '')], '-O'])
@@ -20,6 +21,7 @@ test('cmp64',
test('ByteSwitch',
[ extra_run_opts('"' + config.libdir + '"')
, omit_ways(['ghci'])
+ , js_skip
],
multi_compile_and_run,
['ByteSwitch', [('ByteSwitch_cmm.cmm', '')], ''])
diff --git a/testsuite/tests/codeGen/should_compile/all.T b/testsuite/tests/codeGen/should_compile/all.T
index 58600faa98..4c636eb57d 100644
--- a/testsuite/tests/codeGen/should_compile/all.T
+++ b/testsuite/tests/codeGen/should_compile/all.T
@@ -27,7 +27,12 @@ test('T9155', normal, compile, ['-O2'])
test('T9303', normal, compile, ['-O2'])
test('T9329', [when(unregisterised(), expect_broken(15467)), cmm_src], compile, ['-no-hs-main'])
-test('debug', normal, makefile_test, [])
+test('debug',
+ [ normal,
+ js_skip # requires Cmm
+ ],
+ makefile_test, [])
+
test('T9964', normal, compile, ['-O'])
test('T10518', [cmm_src], compile, ['-no-hs-main'])
test('T10667', normal, compile, ['-g'])
@@ -66,30 +71,40 @@ test('T17334', [ unless(have_ncg() and (arch('x86_64') or arch('i386')), skip)
, only_ways(['normal'])
], compile, ['-O'])
-test('T14373', [],
+test('T14373',
+ [ js_skip # JS backend doesn't produce Cmm
+ ],
multimod_compile_filter, ['T14373', '-fasm -O2 -c -ddump-cmm-from-stg',
'grep -e "const T14373\.._closure+.;"'])
switch_skeleton_only = 'grep -e "switch \[" -e "case " -e "default: " | sed -e "s|\] .*|\]|g" -e "s|goto .*|goto |g"'
-test('T14373a', [],
+test('T14373a',
+ [ js_skip # JS backend doesn't produce Cmm
+ ],
multimod_compile_filter, ['T14373a', '-fasm -O2 -c -ddump-cmm-from-stg',
switch_skeleton_only])
-test('T14373b', [],
+test('T14373b',
+ [ js_skip # JS backend doesn't produce Cmm
+ ],
multimod_compile_filter, ['T14373b', '-fasm -O2 -c -ddump-cmm-from-stg',
switch_skeleton_only])
-test('T14373c', [],
+test('T14373c',
+ [ js_skip # JS backend doesn't produce Cmm
+ ],
multimod_compile_filter, ['T14373c', '-fasm -O2 -c -ddump-cmm-from-stg',
switch_skeleton_only])
switch_skeleton_and_entries_only = ('grep -e "switch \[" -e "case " -e "default: " -e "Default_entry(" -e "R1 = .*_closure+2;"'
'| sed -e "s|\] .*|\]|g" -e "s|goto .*|goto |g" -e "s|R1 = .*_closure+2;.*|R1 = XYZ_closure+2;|g" -e "s|//.*|//|g"')
-test('T14373d', [],
+test('T14373d',
+ [ js_skip # JS backend doesn't produce Cmm
+ ],
multimod_compile_filter, ['T14373d', '-fasm -O2 -c -ddump-cmm-from-stg',
switch_skeleton_and_entries_only])
-test('T17648', normal, makefile_test, [])
+test('T17648', js_broken(22370), makefile_test, [])
test('T17904', normal, compile, ['-O'])
test('T18227A', normal, compile, [''])
test('T18227B', normal, compile, [''])
diff --git a/testsuite/tests/codeGen/should_compile/cg010/all.T b/testsuite/tests/codeGen/should_compile/cg010/all.T
index 7ce20471be..8c42213c44 100644
--- a/testsuite/tests/codeGen/should_compile/cg010/all.T
+++ b/testsuite/tests/codeGen/should_compile/cg010/all.T
@@ -1 +1,4 @@
-test('cg010', [extra_files(['A.hs','Main.hs'])], makefile_test, ['cg010'])
+test('cg010',
+ [ extra_files(['A.hs','Main.hs'])
+ , js_skip # skip with JS backend because Cmm is required
+ ], makefile_test, ['cg010'])
diff --git a/testsuite/tests/codeGen/should_run/all.T b/testsuite/tests/codeGen/should_run/all.T
index 4b6d1b38a1..416eb4ecfd 100644
--- a/testsuite/tests/codeGen/should_run/all.T
+++ b/testsuite/tests/codeGen/should_run/all.T
@@ -74,7 +74,7 @@ test('cgrun065', normal, compile_and_run, [''])
test('cgrun066', normal, compile_and_run, [''])
test('cgrun067', [extra_files(['Cgrun067A.hs'])], compile_and_run, [''])
test('cgrun069',
- [ omit_ways(['ghci'])],
+ [ omit_ways(['ghci']), js_skip],
multi_compile_and_run,
['cgrun069', [('cgrun069_cmm.cmm', '')], ''])
test('cgrun070', normal, compile_and_run, [''])
@@ -99,7 +99,7 @@ test('T3207', normal, compile_and_run, [''])
test('T3561', normal, compile_and_run, [''])
test('T3677', extra_run_opts('+RTS -K8k -RTS'), compile_and_run, [''])
test('T4441', normal, compile_and_run, [''])
-test('T5149', omit_ways(['ghci']), multi_compile_and_run,
+test('T5149', [omit_ways(['ghci']), js_skip], multi_compile_and_run,
['T5149', [('T5149_cmm.cmm', '')], ''])
test('T5129',
# The bug is in simplifier when run with -O1 and above, so only run it
@@ -148,8 +148,8 @@ test('T9013', omit_ways(['ghci']), # ghci doesn't support unboxed tuples
compile_and_run, [''])
test('T9340', normal, compile_and_run, [''])
test('cgrun074', normal, compile_and_run, [''])
-test('CmmSwitchTest32', unless(wordsize(32), skip), compile_and_run, [''])
-test('CmmSwitchTest64', unless(wordsize(64), skip), compile_and_run, [''])
+test('CmmSwitchTest32', [unless(wordsize(32), skip),js_skip], compile_and_run, [''])
+test('CmmSwitchTest64', [unless(wordsize(64), skip),js_skip], compile_and_run, [''])
# Skipping WAY=ghci, because it is not broken.
test('T10245', normal, compile_and_run, [''])
test('T10246', normal, compile_and_run, [''])
@@ -161,9 +161,15 @@ test('T10414', [only_ways(['threaded2']), extra_ways(['threaded2']), req_smp],
test('T10521', normal, compile_and_run, [''])
test('T10521b', normal, compile_and_run, [''])
test('T10870', when(wordsize(32), skip), compile_and_run, [''])
-test('PopCnt', omit_ways(['ghci']), multi_compile_and_run,
+test('PopCnt',
+ [omit_ways(['ghci'])
+ , js_skip # use Cmm
+ ], multi_compile_and_run,
['PopCnt', [('PopCnt_cmm.cmm', '')], ''])
-test('T12059', normal, compile_and_run, [''])
+test('T12059',
+ [ js_skip # ByteArrays are always pinned with the JS backend
+ ],
+ compile_and_run, [''])
test('T12433', normal, compile_and_run, [''])
test('T12622', normal, multimod_compile_and_run, ['T12622', '-O'])
test('T12757', normal, compile_and_run, [''])
@@ -177,7 +183,9 @@ test('T9577', [ unless(arch('x86_64') or arch('i386'),skip),
test('T13425', normal, compile_and_run, ['-O'])
test('castFloatWord', normal, compile_and_run, ['-dcmm-lint'])
test('T13825-unit',
- extra_run_opts('"' + config.libdir + '"'),
+ [ extra_run_opts('"' + config.libdir + '"')
+ , js_broken(22362)
+ ],
compile_and_run,
['-package ghc'])
test('T14619', normal, compile_and_run, [''])
diff --git a/testsuite/tests/concurrent/should_run/all.T b/testsuite/tests/concurrent/should_run/all.T
index 6bfeab4410..e57204b2c2 100644
--- a/testsuite/tests/concurrent/should_run/all.T
+++ b/testsuite/tests/concurrent/should_run/all.T
@@ -17,7 +17,10 @@ test('conc069a', only_threaded_ways, compile_and_run, [''])
# those for now.
test('conc070', only_threaded_ways, compile_and_run, [''])
-test('conc071', omit_ways(concurrent_ways), compile_and_run, [''])
+test('conc071',
+ [ omit_ways(concurrent_ways)
+ , js_skip # JS RTS doesn't report the same cap/locked status
+ ] , compile_and_run, [''])
test('conc072', only_ways(concurrent_ways), compile_and_run, [''])
test('conc073', normal, compile_and_run, [''])
@@ -42,7 +45,7 @@ test('throwto002', normal, compile_and_run, [''])
test('throwto003', normal, compile_and_run, [''])
test('mask001', normal, compile_and_run, [''])
-test('mask002', normal, compile_and_run, [''])
+test('mask002', js_broken(22261), compile_and_run, [''])
test('async001', normal, compile_and_run, [''])
@@ -86,15 +89,20 @@ test('threadstatus-9333', [fragile_for(16555, ['ghci', 'profthreaded']), omit_wa
test('T9379', normal, compile_and_run, [''])
-test('allocLimit1', exit_code(1), compile_and_run, [''])
-test('allocLimit2', normal, compile_and_run, [''])
+# Skip the allocLimit* tests with the JS backend as it doesn't support
+# setThreadAllocationCounter
+
+test('allocLimit1', [exit_code(1), js_skip], compile_and_run, [''])
+test('allocLimit2', js_skip, compile_and_run, [''])
# The non-threaded RTS on Windows doesn't handle throwing exceptions at I/O
# operations very well, and ends up duplicating the I/O, giving wrong results.
test('allocLimit3', [ when(opsys('mingw32'), only_ways(threaded_ways)),
+ js_skip,
exit_code(1) ], compile_and_run, [''])
test('allocLimit4', [ extra_run_opts('+RTS -xq300k -RTS'),
+ js_skip,
# ghci consumes part of set limit at startup
omit_ways(['ghci']) ],
compile_and_run, [''])
@@ -114,21 +122,31 @@ test('conc010', normal, compile_and_run, [''])
# conc012(ghci) needs a smaller stack, or it takes forever
test('conc012',
- extra_run_opts('+RTS -K8m -RTS'),
+ [ extra_run_opts('+RTS -K8m -RTS')
+ , js_skip # no stack overflow detection with the JS backend (yet)
+ ],
compile_and_run, [''])
test('conc013', normal, compile_and_run, [''])
test('conc014', normal, compile_and_run, [''])
-test('conc015', normal, compile_and_run, [''])
+test('conc015',
+ [ when(arch("js"), fragile(22261)) # delays are flaky with the JS backend when the system is overloaded
+ ], compile_and_run, [''])
test('conc015a', normal, compile_and_run, [''])
-test('conc016', omit_ways(concurrent_ways), # see comment in conc016.hs
+test('conc016', [omit_ways(concurrent_ways) # see comment in conc016.hs
+ , js_skip
+ ],
compile_and_run, [''])
test('conc017', normal, compile_and_run, [''])
test('conc017a', normal, compile_and_run, [''])
test('conc018', normal, compile_and_run, [''])
test('conc019', extra_run_opts('+RTS -K16m -RTS'), compile_and_run, [''])
test('conc020', normal, compile_and_run, [''])
-test('conc021', [ omit_ways(['ghci']), exit_code(1) ], compile_and_run, [''])
+test('conc021',
+ [ omit_ways(['ghci']), exit_code(1)
+ , js_skip # foreign exports not supported yet
+ ],
+ compile_and_run, [''])
test('conc022', normal, compile_and_run, [''])
test('conc024', normal, compile_and_run, [''])
@@ -147,7 +165,8 @@ test('conc033', normal, compile_and_run, [''])
test('conc034', [
normal,
omit_ways(['ghci']),
- extra_run_opts('+RTS -C0 -RTS')],
+ extra_run_opts('+RTS -C0 -RTS'),
+ js_skip],
compile_and_run, [''])
test('conc035', normal, compile_and_run, [''])
@@ -181,13 +200,13 @@ test('foreignInterruptible', [when(fast(), skip),
test('conc037', only_ways(['threaded1', 'threaded2', 'nonmoving_thr']), compile_and_run, [''])
test('conc038', only_ways(['threaded1', 'threaded2', 'nonmoving_thr']), compile_and_run, [''])
-# Omit for GHCi, uses foreign export
+# Omit for GHCi and for the JS backend, uses foreign export
# Omit for the threaded ways, because in this case the main thread is allowed to
# complete, which causes the child thread to be interrupted.
-test('conc039', omit_ways(['ghci'] + threaded_ways), compile_and_run, [''])
+test('conc039', [omit_ways(['ghci'] + threaded_ways), js_skip], compile_and_run, [''])
-# Omit for GHCi, uses foreign export
-test('conc040', [exit_code(1), omit_ways(['ghci'])], compile_and_run, [''])
+# Omit for GHCi and for the JS backend, uses foreign export
+test('conc040', [exit_code(1), omit_ways(['ghci']), js_skip], compile_and_run, [''])
# STM-related tests.
test('conc041', normal, compile_and_run, [''])
@@ -236,6 +255,7 @@ test('hs_try_putmvar001',
[
when(opsys('mingw32'),skip), # uses pthread APIs in the C code
only_ways(['threaded1', 'threaded2', 'nonmoving_thr']),
+ js_skip
],
compile_and_run,
['hs_try_putmvar001_c.c'])
@@ -245,6 +265,7 @@ test('hs_try_putmvar001',
test('hs_try_putmvar002',
[pre_cmd('$MAKE -s --no-print-directory hs_try_putmvar002_setup'),
omit_ways(['ghci']),
+ js_skip,
extra_run_opts('1 8 10000')],
compile_and_run, ['hs_try_putmvar002_c.c'])
@@ -254,6 +275,7 @@ test('hs_try_putmvar003',
when(opsys('mingw32'),skip), # uses pthread APIs in the C code
pre_cmd('$MAKE -s --no-print-directory hs_try_putmvar003_setup'),
only_ways(['threaded1', 'threaded2', 'nonmoving_thr']),
+ js_skip,
extra_run_opts('1 16 32 100'),
fragile_for(16361, ['threaded1'])
],
diff --git a/testsuite/tests/corelint/all.T b/testsuite/tests/corelint/all.T
index 4271974c83..43c2cdd8f4 100644
--- a/testsuite/tests/corelint/all.T
+++ b/testsuite/tests/corelint/all.T
@@ -7,6 +7,6 @@ test('T21152', normal, compile, ['-g3'])
setTestOpts(extra_hc_opts('-package ghc'))
setTestOpts(extra_run_opts('"' + config.libdir + '"'))
-test('LintEtaExpand', normal, compile_and_run, [''])
+test('LintEtaExpand', js_broken(22362), compile_and_run, [''])
## These tests use the GHC API.
## Test cases which don't use the GHC API should be added nearer the top.
diff --git a/testsuite/tests/dependent/should_compile/all.T b/testsuite/tests/dependent/should_compile/all.T
index 9e68957784..965e57dd16 100644
--- a/testsuite/tests/dependent/should_compile/all.T
+++ b/testsuite/tests/dependent/should_compile/all.T
@@ -1,6 +1,6 @@
test('Dep1', only_ways(['normal']), compile, [''])
test('Dep2', only_ways(['normal']), compile, [''])
-test('Dep3', only_ways(['normal']), compile, [''])
+test('Dep3', [only_ways(['normal']), js_broken(22364)], compile, [''])
test('KindEqualities', only_ways(['normal']), compile, [''])
test('KindEqualities2', [req_th,only_ways(['normal'])], compile, [''])
test('Rae31', [req_th,only_ways(['normal'])], compile, [''])
@@ -40,7 +40,7 @@ test('T13938', [req_th, extra_files(['T13938a.hs'])], makefile_test, ['T13938'])
test('T14556', normal, compile, [''])
test('T14720', normal, compile, [''])
test('T14066a', normal, compile, [''])
-test('T14749', normal, compile, [''])
+test('T14749', js_broken(22364), compile, [''])
test('T14845_compile', normal, compile, [''])
test('T14991', normal, compile, [''])
test('DkNameRes', normal, compile, [''])
diff --git a/testsuite/tests/driver/MergeObjsMode/all.T b/testsuite/tests/driver/MergeObjsMode/all.T
index ebcf4546c6..034b0a0dbd 100644
--- a/testsuite/tests/driver/MergeObjsMode/all.T
+++ b/testsuite/tests/driver/MergeObjsMode/all.T
@@ -1,4 +1,6 @@
test('MergeObjsMode',
- extra_files(['A.hs', 'B.hs', 'Main.hs']),
+ [ extra_files(['A.hs', 'B.hs', 'Main.hs'])
+ , js_broken(22261)
+ ],
makefile_test,
[])
diff --git a/testsuite/tests/driver/T12674/all.T b/testsuite/tests/driver/T12674/all.T
index 716bc7d07f..1024e01f64 100644
--- a/testsuite/tests/driver/T12674/all.T
+++ b/testsuite/tests/driver/T12674/all.T
@@ -1,6 +1,10 @@
test('T12674', [extra_files(['-T12674.hs', '-T12674c.c']),
- when(opsys('darwin') and arch('aarch64'), skip)],
+ when(opsys('darwin') and arch('aarch64'), skip),
+ req_c
+ ],
makefile_test, [])
test('T12674w', [extra_files(['-T12674.hs', '-T12674c.c']),
- unless(opsys('mingw32'), skip)],
+ unless(opsys('mingw32'), skip),
+ req_c
+ ],
makefile_test, [])
diff --git a/testsuite/tests/driver/T1372/all.T b/testsuite/tests/driver/T1372/all.T
index 0edd81d622..13b0f99703 100644
--- a/testsuite/tests/driver/T1372/all.T
+++ b/testsuite/tests/driver/T1372/all.T
@@ -1 +1 @@
-test('T1372', [extra_files(['p1/', 'p2/'])], makefile_test, ['T1372'])
+test('T1372', [extra_files(['p1/', 'p2/']), js_broken(22356)], makefile_test, ['T1372'])
diff --git a/testsuite/tests/driver/T13914/all.T b/testsuite/tests/driver/T13914/all.T
index 7b11a62f0a..fe641a0a31 100644
--- a/testsuite/tests/driver/T13914/all.T
+++ b/testsuite/tests/driver/T13914/all.T
@@ -1,3 +1,5 @@
test('T13914',
- [extra_files(['main.hs'])],
+ [ extra_files(['main.hs'])
+ , js_broken(22261)
+ ],
makefile_test, ['t13914'])
diff --git a/testsuite/tests/driver/T14075/all.T b/testsuite/tests/driver/T14075/all.T
index 9cc75e2feb..16f0e482f9 100644
--- a/testsuite/tests/driver/T14075/all.T
+++ b/testsuite/tests/driver/T14075/all.T
@@ -1,5 +1,6 @@
test('T14075',
[ extra_files(['F.hs', 'F.hs-boot', 'O.hs', 'V.hs', 'V.hs-boot'])
- , req_smp, # uses ghc --make -j2
+ , req_smp # uses ghc --make -j2
+ , js_broken(22261)
],
makefile_test, [])
diff --git a/testsuite/tests/driver/T16318/all.T b/testsuite/tests/driver/T16318/all.T
index 131ede819d..36c8c6f596 100644
--- a/testsuite/tests/driver/T16318/all.T
+++ b/testsuite/tests/driver/T16318/all.T
@@ -1 +1 @@
-test('T16318', normal, makefile_test, [])
+test('T16318', js_broken(22370), makefile_test, [])
diff --git a/testsuite/tests/driver/T1959/test.T b/testsuite/tests/driver/T1959/test.T
index 77cfd75dc6..967310935a 100644
--- a/testsuite/tests/driver/T1959/test.T
+++ b/testsuite/tests/driver/T1959/test.T
@@ -1 +1 @@
-test('T1959', [extra_files(['B.hs', 'C.hs', 'D.hs', 'E1.hs', 'E2.hs'])], makefile_test, ['dotest'])
+test('T1959', [extra_files(['B.hs', 'C.hs', 'D.hs', 'E1.hs', 'E2.hs']), js_broken(22261)], makefile_test, ['dotest'])
diff --git a/testsuite/tests/driver/T3007/all.T b/testsuite/tests/driver/T3007/all.T
index d0442712e9..5fd79d7024 100644
--- a/testsuite/tests/driver/T3007/all.T
+++ b/testsuite/tests/driver/T3007/all.T
@@ -1,3 +1,5 @@
test('T3007',
- [extra_files(['A/', 'B/'])],
+ [ extra_files(['A/', 'B/'])
+ , js_broken(22356)
+ ],
makefile_test, [])
diff --git a/testsuite/tests/driver/all.T b/testsuite/tests/driver/all.T
index 489e5c06a3..ab9cfcbcf5 100644
--- a/testsuite/tests/driver/all.T
+++ b/testsuite/tests/driver/all.T
@@ -8,15 +8,15 @@ test('driver014', [extra_files(['A014.hs'])], makefile_test, ['test014'])
test('driver015', [extra_files(['A015.hs'])], makefile_test, ['test015'])
-test('driver016', [extra_files(['F016.hs'])], makefile_test, ['test016'])
+test('driver016', [req_ffi_exports, extra_files(['F016.hs'])], makefile_test, ['test016']) # JS backend doesn't support foreign export yet
-test('driver017', [extra_files(['F017.hs'])], makefile_test, ['test017'])
+test('driver017', [req_ffi_exports, extra_files(['F017.hs'])], makefile_test, ['test017']) # JS backend doesn't support foreign export yet
test('driver018', [extra_files(['F018.hs'])], makefile_test, ['test018'])
test('driver018a', [extra_files(['F018a.hs'])], makefile_test, ['test018a'])
-test('driver019', [extra_files(['F019.hs'])], makefile_test, ['test019'])
+test('driver019', [req_ffi_exports, extra_files(['F019.hs'])], makefile_test, ['test019']) # JS backend doesn't support foreign export yet
test('driver021', [extra_files(['B021/'])], makefile_test, ['test021'])
@@ -32,9 +32,9 @@ test('driver025', [extra_files(['B025/'])], makefile_test, ['test025'])
test('driver026', [extra_files(['d026/'])], makefile_test, ['test026'])
-test('driver027', [extra_files(['B027/'])], makefile_test, ['test027'])
+test('driver027', [req_ffi_exports, extra_files(['B027/'])], makefile_test, ['test027']) # JS backend doesn't support foreign export yet
-test('driver028', [extra_files(['B028/'])], makefile_test, ['test028'])
+test('driver028', [req_ffi_exports, extra_files(['B028/'])], makefile_test, ['test028']) # JS backend doesn't support foreign export yet
test('driver031', [extra_files(['A031.hs'])], makefile_test, ['test031'])
@@ -42,9 +42,9 @@ test('driver032', [extra_files(['A032.hs'])], makefile_test, ['test032'])
test('driver033', [extra_files(['A033.hs'])], makefile_test, ['test033'])
-test('driver034', [extra_files(['F034.hs'])], makefile_test, ['test034'])
+test('driver034', [req_ffi_exports, extra_files(['F034.hs'])], makefile_test, ['test034']) # JS backend doesn't support foreign export yet
-test('driver035', [extra_files(['F035.hs'])], makefile_test, ['test035'])
+test('driver035', [req_ffi_exports, extra_files(['F035.hs'])], makefile_test, ['test035']) # JS backend doesn't support foreign export yet
test('driver041', [extra_files(['B041/'])], makefile_test, ['test041'])
@@ -54,9 +54,9 @@ test('driver042stub', [extra_files(['B042stub/'])], makefile_test, ['test042stub
test('driver043', [extra_files(['B043/'])], makefile_test, ['test043'])
-test('driver044', [extra_files(['B044/'])], makefile_test, ['test044'])
+test('driver044', [req_ffi_exports, extra_files(['B044/'])], makefile_test, ['test044']) # JS backend doesn't support foreign export yet
-test('driver045', [extra_files(['B045/'])], makefile_test, ['test045'])
+test('driver045', [req_ffi_exports, extra_files(['B045/'])], makefile_test, ['test045']) # JS backend doesn't support foreign export yet
test('driver051', [extra_files(['d051_1/', 'd051_2/'])], makefile_test, ['test051'])
@@ -64,9 +64,9 @@ test('driver052', [extra_files(['d052_1/', 'd052_2/'])], makefile_test, ['test05
test('driver053', [extra_files(['d053_1/', 'd053_2/'])], makefile_test, ['test053'])
-test('driver061a', [extra_files(['A061a.hs']), when(unregisterised(), skip)], makefile_test, ['test061a'])
+test('driver061a', [req_ffi_exports, extra_files(['A061a.hs']), when(unregisterised(), skip)], makefile_test, ['test061a']) # JS backend doesn't support foreign export yet
-test('driver061b', [extra_files(['A061b.hs']), when(unregisterised(), skip)], makefile_test, ['test061b'])
+test('driver061b', [req_ffi_exports, extra_files(['A061b.hs']), when(unregisterised(), skip)], makefile_test, ['test061b']) # JS backend doesn't support foreign export yet
test('driver062a', [], makefile_test, ['test062a'])
@@ -85,13 +85,13 @@ test('driver066', [extra_files(['A066.hs'])], makefile_test, ['test066'])
test('driver067', [extra_files(['A067.hs'])], makefile_test, ['test067'])
-test('driver070', [extra_files(['A070.hs']), when(unregisterised(), skip)], makefile_test, ['test070'])
+test('driver070', [req_ffi_exports, extra_files(['A070.hs']), when(unregisterised(), skip)], makefile_test, ['test070']) # JS backend doesn't support foreign export yet
-test('driver071', [extra_files(['A071.hs']), when(unregisterised(), skip)], makefile_test, ['test071'])
+test('driver071', [req_ffi_exports, extra_files(['A071.hs']), when(unregisterised(), skip)], makefile_test, ['test071']) # JS backend doesn't support foreign export yet
test('driver081a', [], makefile_test, ['test081a'])
-test('driver081b', [], makefile_test, ['test081b'])
+test('driver081b', [req_ffi_exports], makefile_test, ['test081b']) # JS backend doesn't support foreign export yet
test('driver100', [extra_files(['overlap/'])], makefile_test, ['test100'])
@@ -138,10 +138,13 @@ test('T5313',
test('T2464', normal, compile, [''])
test('T3674', [], makefile_test, [])
-test('rtsopts001', [extra_files(['rtsOpts.hs'])], makefile_test, [])
-test('rtsopts002', normal, makefile_test, [])
+test('rtsopts001',
+ [ extra_files(['rtsOpts.hs'])
+ , js_skip # JS RTS doesn't support -rtsopts
+ ], makefile_test, [])
+test('rtsopts002', js_broken(22370), makefile_test, [])
-test('withRtsOpts', [], makefile_test, [])
+test('withRtsOpts', js_broken(22370), makefile_test, [])
test('T3389', when(arch('i386'), expect_broken_for(17256, ['hpc'] + prof_ways)), compile_and_run, [''])
test('T3364', normalise_fun(normalise_errmsg), makefile_test, [])
@@ -270,14 +273,16 @@ test('json2', normalise_version('base','ghc-prim'), compile, ['-ddump-types -ddu
test('T16167', [req_interp,exit_code(1)], run_command,
['{compiler} -x hs -e ":set prog T16167.hs" -ddump-json T16167.hs'])
test('T13604', [], makefile_test, [])
-test('T13604a', [], makefile_test, [])
+test('T13604a',
+ [ js_broken(22261) # require HPC support
+ ], makefile_test, [])
# omitting hpc and profasm because they affect the
# inlining and unfoldings
test('inline-check', omit_ways(['hpc', 'profasm'])
, compile
, ['-dinline-check foo -O -ddebug-output'])
-test('T14452', [], makefile_test, [])
+test('T14452', js_broken(22261), makefile_test, [])
test('T14923', normal, makefile_test, [])
test('T15396', normal, compile_and_run, ['-package ghc'])
test('T16737',
@@ -292,7 +297,7 @@ test('T18369', normal, compile, ['-O'])
test('T21682', normal, compile_fail, ['-Werror=unrecognised-warning-flags -Wfoo'])
test('FullGHCVersion', normal, compile_and_run, ['-package ghc-boot'])
test('OneShotTH', req_th, makefile_test, [])
-test('T17481', normal, makefile_test, [])
+test('T17481', js_broken(22261), makefile_test, [])
test('T20084', normal, makefile_test, [])
test('RunMode', [req_interp,extra_files(['RunMode/Test.hs'])], run_command, ['{compiler} --run -iRunMode/ -ignore-dot-ghci RunMode.hs -- hello'])
test('T20439', normal, run_command,
@@ -310,7 +315,7 @@ test('T16476b', normal, makefile_test, [])
test('T20569', extra_files(["T20569/"]), makefile_test, [])
test('T21866', normal, multimod_compile, ['T21866','-no-link'])
test('T21349', extra_files(['T21349']), makefile_test, [])
-test('T21869', [normal, when(unregisterised(), skip)], makefile_test, [])
+test('T21869', [js_broken(22261), when(unregisterised(), skip)], makefile_test, [])
test('T22044', normal, makefile_test, [])
test('T22048', [only_ways(['normal']), grep_errmsg("_rule")], compile, ["-O -fomit-interface-pragmas -ddump-simpl"])
test('T21722', normal, compile_fail, ['-fno-show-error-context'])
diff --git a/testsuite/tests/driver/fat-iface/all.T b/testsuite/tests/driver/fat-iface/all.T
index e71b0f56bc..c526aa7493 100644
--- a/testsuite/tests/driver/fat-iface/all.T
+++ b/testsuite/tests/driver/fat-iface/all.T
@@ -1,5 +1,5 @@
test('fat001', [extra_files(['Fat.hs'])], makefile_test, ['fat001'])
-test('fat005', [extra_files(['Fat.hs']), filter_stdout_lines(r'= Proto-BCOs')], makefile_test, ['fat005'])
+test('fat005', [extra_files(['Fat.hs']), filter_stdout_lines(r'= Proto-BCOs'), js_broken(22261)], makefile_test, ['fat005'])
test('fat006', [extra_files(['Fat.hs'])], makefile_test, ['fat006'])
test('fat006a', [extra_files(['Fat.hs'])], makefile_test, ['fat006a'])
test('fat007', [extra_files(['Fat.hs'])], makefile_test, ['fat007'])
diff --git a/testsuite/tests/driver/multipleHomeUnits/all.T b/testsuite/tests/driver/multipleHomeUnits/all.T
index 9e454029d2..97974e19e2 100644
--- a/testsuite/tests/driver/multipleHomeUnits/all.T
+++ b/testsuite/tests/driver/multipleHomeUnits/all.T
@@ -1,7 +1,7 @@
test('multipleHomeUnits_single1', [extra_files([ 'a/', 'unitA'])], multiunit_compile, [['unitA'], '-fhide-source-paths'])
test('multipleHomeUnits_single2', [extra_files([ 'b/', 'unitB'])], multiunit_compile, [['unitB'], '-fhide-source-paths'])
-test('multipleHomeUnits_single3', [extra_files([ 'c/', 'unitC'])], multiunit_compile, [['unitC'], '-fhide-source-paths'])
-test('multipleHomeUnits_single4', [extra_files([ 'd/', 'unitD'])], multiunit_compile, [['unitD'], '-fhide-source-paths'])
+test('multipleHomeUnits_single3', [js_broken(22261),extra_files([ 'c/', 'unitC'])], multiunit_compile, [['unitC'], '-fhide-source-paths'])
+test('multipleHomeUnits_single4', [js_broken(22261),extra_files([ 'd/', 'unitD'])], multiunit_compile, [['unitD'], '-fhide-source-paths'])
test('multipleHomeUnits_single5', [req_th,extra_files([ 'th/', 'unitTH'])], multiunit_compile, [['unitTH'], '-fhide-source-paths'])
test('multipleHomeUnits_cpp', [extra_files([ 'cpp-includes/', 'unitCPPIncludes'])], multiunit_compile, [['unitCPPIncludes'], '-fhide-source-paths'])
test('multipleHomeUnits_cfile', [extra_files([ 'c-file/', 'unitCFile'])], multiunit_compile, [['unitCFile'], '-fhide-source-paths'])
@@ -22,12 +22,14 @@ test('multipleHomeUnits002',
[ extra_files(
[ 'c/', 'd/'
, 'unitC', 'unitD'])
+ , js_broken(22261)
], makefile_test, [])
test('multipleHomeUnits003',
[ extra_files(
[ 'a/', 'b/', 'c/', 'd/'
, 'unitA', 'unitB', 'unitC', 'unitD'])
+ , js_broken(22261)
], makefile_test, [])
test('multipleHomeUnits004',
diff --git a/testsuite/tests/driver/multipleHomeUnits/different-db/all.T b/testsuite/tests/driver/multipleHomeUnits/different-db/all.T
index 5661d6a017..56a4d3ceb3 100644
--- a/testsuite/tests/driver/multipleHomeUnits/different-db/all.T
+++ b/testsuite/tests/driver/multipleHomeUnits/different-db/all.T
@@ -4,6 +4,8 @@ else:
cleanup = 'CLEANUP=0'
test('different-db',
- extra_files(['p/', 'q/', 'r/', 'p1/', 'unitP', 'unitQ', 'unitR', 'unitP1', 'Setup.hs']),
+ [ extra_files(['p/', 'q/', 'r/', 'p1/', 'unitP', 'unitQ', 'unitR', 'unitP1', 'Setup.hs'])
+ , js_broken(22356)
+ ],
run_command,
['$MAKE -s --no-print-directory different-db ' + cleanup])
diff --git a/testsuite/tests/driver/multipleHomeUnits/hi-dir/all.T b/testsuite/tests/driver/multipleHomeUnits/hi-dir/all.T
index 0dcb2fb607..887bf5838a 100644
--- a/testsuite/tests/driver/multipleHomeUnits/hi-dir/all.T
+++ b/testsuite/tests/driver/multipleHomeUnits/hi-dir/all.T
@@ -1,6 +1,7 @@
# This test checks that getRootSummary doesn't cross package boundaries.
test('multipleHomeUnits_hidir'
, [extra_files([ 'p1/', 'unitP1'])
+ , js_broken(22261)
]
, makefile_test
, ['mhu-hidir'])
diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/all.T b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/all.T
index 16fb06efa9..20d7864498 100644
--- a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/all.T
+++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/all.T
@@ -4,6 +4,8 @@ else:
cleanup = 'CLEANUP=0'
test('mhu-closure',
- extra_files(['p/', 'q/', 'r/', 'r1/', 'unitP', 'unitQ', 'unitR', 'unitR1', 'Setup.hs']),
+ [ extra_files(['p/', 'q/', 'r/', 'r1/', 'unitP', 'unitQ', 'unitR', 'unitR1', 'Setup.hs'])
+ , js_broken(22356)
+ ],
run_command,
['$MAKE -s --no-print-directory mhu-closure ' + cleanup])
diff --git a/testsuite/tests/driver/multipleHomeUnits/o-files/all.T b/testsuite/tests/driver/multipleHomeUnits/o-files/all.T
index 0133545ea9..7fd69eeb40 100644
--- a/testsuite/tests/driver/multipleHomeUnits/o-files/all.T
+++ b/testsuite/tests/driver/multipleHomeUnits/o-files/all.T
@@ -1,6 +1,7 @@
# This test checks that getRootSummary doesn't cross package boundaries.
test('multipleHomeUnits_o-files'
, [extra_files([ 'p1/', 'unitP1'])
+ , js_broken(22261)
, pre_cmd('$MAKE -s --no-print-directory setup')]
, multiunit_compile
, [['unitP1'], '-fhide-source-paths'])
diff --git a/testsuite/tests/driver/multipleHomeUnits/target-file-path/all.T b/testsuite/tests/driver/multipleHomeUnits/target-file-path/all.T
index 74d9baf953..8a46f7f061 100644
--- a/testsuite/tests/driver/multipleHomeUnits/target-file-path/all.T
+++ b/testsuite/tests/driver/multipleHomeUnits/target-file-path/all.T
@@ -1,6 +1,7 @@
# This test checks that getRootSummary doesn't cross package boundaries.
test('multipleHomeUnits_target-file-path'
, [extra_files([ 'p1/', 'unitP1'])
+ , js_broken(22261)
]
, multiunit_compile
, [['unitP1'], '-fhide-source-paths'])
diff --git a/testsuite/tests/driver/package-imports-t20779/all.T b/testsuite/tests/driver/package-imports-t20779/all.T
index c6fc03d5f1..558ea98ef5 100644
--- a/testsuite/tests/driver/package-imports-t20779/all.T
+++ b/testsuite/tests/driver/package-imports-t20779/all.T
@@ -1,4 +1,4 @@
test('package-imports-20779', [extra_files(['q-1', 'q-2', 'q-3', 'p', 'Setup.hs']),
- when(fast(), skip)],
+ when(fast(), skip), js_broken(22356)],
makefile_test,
[])
diff --git a/testsuite/tests/driver/recomp004/all.T b/testsuite/tests/driver/recomp004/all.T
index cfb8a201dd..f6de00de79 100644
--- a/testsuite/tests/driver/recomp004/all.T
+++ b/testsuite/tests/driver/recomp004/all.T
@@ -1,2 +1,2 @@
-test('recomp004', [extra_files(['Main.hs', 'c.h', 'c1.c', 'c2.c'])],
+test('recomp004', [extra_files(['Main.hs', 'c.h', 'c1.c', 'c2.c']), req_c],
makefile_test, [])
diff --git a/testsuite/tests/driver/recomp007/all.T b/testsuite/tests/driver/recomp007/all.T
index 59fe8f5dad..0718f33e07 100644
--- a/testsuite/tests/driver/recomp007/all.T
+++ b/testsuite/tests/driver/recomp007/all.T
@@ -2,6 +2,8 @@
# See the patch
# "Fix a recompilation checking bug when a package dependency changes"
-test('recomp007', [extra_files(['Setup.hs', 'a1/', 'a2/', 'b/'])
+test('recomp007', [ extra_files(['Setup.hs', 'a1/', 'a2/', 'b/'])
, when(fast(), skip)
- , normalise_slashes], makefile_test, [])
+ , normalise_slashes
+ , js_broken(22352)
+ ], makefile_test, [])
diff --git a/testsuite/tests/driver/recomp008/all.T b/testsuite/tests/driver/recomp008/all.T
index 07bfd14776..702b3b6f64 100644
--- a/testsuite/tests/driver/recomp008/all.T
+++ b/testsuite/tests/driver/recomp008/all.T
@@ -1,6 +1,8 @@
# Test for #4469, a recompilation bug related to instances
test('recomp008',
- [extra_files(['A1.hs', 'A2.hs', 'B.hs', 'Main.hs']),
- when(fast(), skip), normalise_slashes],
+ [extra_files(['A1.hs', 'A2.hs', 'B.hs', 'Main.hs'])
+ , when(fast(), skip)
+ , normalise_slashes
+ , js_broken(22261)],
makefile_test, [])
diff --git a/testsuite/tests/driver/recomp011/all.T b/testsuite/tests/driver/recomp011/all.T
index 00a8e74608..8125f95280 100644
--- a/testsuite/tests/driver/recomp011/all.T
+++ b/testsuite/tests/driver/recomp011/all.T
@@ -1,6 +1,8 @@
# Test for #3589, recompiling when #included files change
test('recomp011',
- [extra_files(['Main.hs']),
- when(arch('powerpc64'), expect_broken(11260))],
+ [ extra_files(['Main.hs'])
+ , when(arch('powerpc64'), expect_broken(11260))
+ , js_broken(22261)
+ ],
makefile_test, [])
diff --git a/testsuite/tests/driver/recomp015/all.T b/testsuite/tests/driver/recomp015/all.T
index 25708b47d0..6810d901ae 100644
--- a/testsuite/tests/driver/recomp015/all.T
+++ b/testsuite/tests/driver/recomp015/all.T
@@ -5,6 +5,7 @@ test('recomp015',
# See ticket:11022#comment:7
unless(opsys('linux') or opsys('solaris2') or opsys('openbsd'), skip),
when(arch('arm'), skip),
+ js_skip, # JS backend doesn't support .s assembly files
when(arch('powerpc64'), expect_broken(11323))],
makefile_test, [])
diff --git a/testsuite/tests/driver/recompChangedPackage/all.T b/testsuite/tests/driver/recompChangedPackage/all.T
index f08a2534f6..384c66cff2 100644
--- a/testsuite/tests/driver/recompChangedPackage/all.T
+++ b/testsuite/tests/driver/recompChangedPackage/all.T
@@ -13,7 +13,10 @@ if not config.compiler_profiled and config.have_dynamic:
else:
dyn = '--disable-shared'
-test('recompChangedPackage', [extra_files(['q', 'Main.hs', 'Setup.hs', 'PLib1.hs']),
- when(fast(), skip)],
+test('recompChangedPackage',
+ [ extra_files(['q', 'Main.hs', 'Setup.hs', 'PLib1.hs']),
+ js_broken(22352),
+ when(fast(), skip)
+ ],
run_command,
['$MAKE -s --no-print-directory recompChangedPackage VANILLA=' + vanilla + ' PROF=' + prof + ' DYN=' + dyn])
diff --git a/testsuite/tests/driver/recompTHpackage/all.T b/testsuite/tests/driver/recompTHpackage/all.T
index 78de429b70..141e6f9586 100644
--- a/testsuite/tests/driver/recompTHpackage/all.T
+++ b/testsuite/tests/driver/recompTHpackage/all.T
@@ -14,6 +14,7 @@ else:
dyn = '--disable-shared'
test('recompTHpackage', [extra_files(['p', 'q', 'Setup.hs']),
- when(fast(), skip)],
+ when(fast(), skip),
+ js_broken(22352)],
run_command,
['$MAKE -s --no-print-directory recompTHpackage VANILLA=' + vanilla + ' PROF=' + prof + ' DYN=' + dyn])
diff --git a/testsuite/tests/ffi/should_run/all.T b/testsuite/tests/ffi/should_run/all.T
index da98a5ff6b..3cece482b2 100644
--- a/testsuite/tests/ffi/should_run/all.T
+++ b/testsuite/tests/ffi/should_run/all.T
@@ -4,12 +4,16 @@
# extra run flags
# expected process return value, if not zero
-test('fed001', normal, compile_and_run, [''])
+test( 'fed001', js_broken(22374) # qsort not yet implemented in JavaScript backend
+ , compile_and_run, [''])
# Omit GHCi for these two, as they use foreign export
-test('ffi001', omit_ways(['ghci']), compile_and_run, [''])
-test('ffi002', [ omit_ways(['ghci']),
- pre_cmd('$MAKE -s --no-print-directory ffi002_setup') ],
+test('ffi001', [ omit_ways(['ghci'])
+ , js_skip # JS backend doesn't support foreign export yet
+ ], compile_and_run, [''])
+test('ffi002', [ omit_ways(['ghci'])
+ , js_skip # JS backend doesn't support foreign export yet
+ , pre_cmd('$MAKE -s --no-print-directory ffi002_setup') ],
# The ffi002_setup hack is to ensure that we generate
# ffi002_stub.h before compiling ffi002_c.c, which
# needs it.
@@ -34,7 +38,7 @@ test('ffi005', [ omit_ways(prof_ways + ['ghci']),
req_c ],
compile_and_run, ['ffi005_c.c'])
-test('ffi006', normal, compile_and_run, [''])
+test('ffi006', [normal, js_broken(22363)], compile_and_run, [''])
# Skip ffi00{7,8} for GHCi. These tests both try to exit or raise an
# error from a foreign export, which shuts down the runtime. When
@@ -43,8 +47,10 @@ test('ffi006', normal, compile_and_run, [''])
# Sometimes we end up with the wrong exit code, or get an extra
# 'interrupted' message from the GHCi thread shutting down.
-test('ffi007', omit_ways(['ghci']), compile_and_run, [''])
-test('ffi008', [exit_code(1), omit_ways(['ghci'])], compile_and_run, [''])
+test('ffi007', [ omit_ways(['ghci'])
+ , js_skip # foreign "dynamic" call
+ ], compile_and_run, [''])
+test('ffi008', [exit_code(1), omit_ways(['ghci']), js_broken(22363)], compile_and_run, [''])
# On i386, we need -msse2 to get reliable floating point results
if config.platform.startswith('i386-'):
@@ -53,7 +59,7 @@ else:
opts = ''
test('ffi010', normal, compile_and_run, [''])
-test('ffi011', normal, compile_and_run, [''])
+test('ffi011', [normal, js_broken(22363)], compile_and_run, [''])
# The stdcall calling convention works on Windows, and sometimes on
# Linux, and fails everywhhere else. For now, we test only on Windows,
@@ -66,7 +72,7 @@ else:
skip_if_not_windows = skip
test('ffi012', skip_if_not_windows, compile_and_run, [''])
-test('ffi013', normal, compile_and_run, [''])
+test('ffi013', [normal, js_broken(22363)], compile_and_run, [''])
# threaded2 sometimes gives ffi014: Main_dDu: interrupted
test('ffi014', [only_ways(['threaded1', 'threaded2'])], compile_and_run,
@@ -76,7 +82,9 @@ test('ffi014', [only_ways(['threaded1', 'threaded2'])], compile_and_run,
test('ffi015', [req_c,omit_ways(['ghci'])], compile_and_run, ['ffi015_cbits.c'])
# GHCi can't handle foreign import "&"
-test('ffi016', omit_ways(['ghci']), compile_and_run, [''])
+test('ffi016', [ omit_ways(['ghci'])
+ , js_skip # foreign exports
+ ], compile_and_run, [''])
test('ffi017', normal, compile_and_run, [''])
@@ -86,13 +94,14 @@ test('ffi018_ghci',
[extra_files(['ffi018.h']),
only_ways(['ghci']),
when(unregisterised(), fragile(16085)),
- pre_cmd('$MAKE -s --no-print-directory ffi018_ghci_setup')],
+ pre_cmd('$MAKE -s --no-print-directory ffi018_ghci_setup'),
+ req_c],
compile_and_run, ['ffi018_ghci_c.o'])
-test('ffi019', normal, compile_and_run, [''])
+test('ffi019', [normal, js_broken(22363)], compile_and_run, [''])
# This one originally failed only GHCi, but doesn't hurt to test all ways.
-test('T1679', normal, compile_and_run, [''])
+test('T1679', js_broken(22261), compile_and_run, [''])
test('T1288', [omit_ways(['ghci']), req_c], compile_and_run, ['T1288_c.c'])
test('T1288_ghci',
@@ -107,7 +116,7 @@ test('T2276_ghci', [ only_ways(['ghci']),
pre_cmd('$MAKE -s --no-print-directory T2276_ghci_setup') ],
compile_and_run, ['-fobject-code T2276_ghci_c.o'])
-test('T2469', normal, compile_and_run, ['-optc-std=gnu99'])
+test('T2469', js_broken(22261), compile_and_run, ['-optc-std=gnu99'])
test('T2594', [omit_ways(['ghci']), req_c], compile_and_run, ['T2594_c.c'])
@@ -122,10 +131,11 @@ test('T2917a', normal, compile_and_run, [''])
# omit prof ways, because this test causes the RTS to exit (correctly)
# without generating profiling information.
test('ffi020', [ omit_ways(prof_ways),
- exit_code(1) ], compile_and_run, [''])
+ exit_code(1),
+ js_broken(22363)], compile_and_run, [''])
-test('ffi021', normal, compile_and_run, [''])
+test('ffi021', [normal, js_broken(22363)], compile_and_run, [''])
test('ffi022', normal, compile_and_run, [''])
@@ -134,7 +144,7 @@ if config.os == 'mingw32':
flagsForT4038 = ['-optl-Wl,--stack,10485760']
else:
flagsForT4038 = ['']
-test('T4038', normal, compile_and_run, flagsForT4038)
+test('T4038', js_broken(22261), compile_and_run, flagsForT4038)
test('T4221', [omit_ways(['ghci']),req_c], compile_and_run, ['T4221_c.c'])
@@ -143,20 +153,24 @@ test('T5402', [ omit_ways(['ghci']),
# The T5402_setup hack is to ensure that we generate
# T5402_stub.h before compiling T5402_main.c, which
# needs it.
- pre_cmd('$MAKE -s --no-print-directory T5402_setup') ],
+ pre_cmd('$MAKE -s --no-print-directory T5402_setup'),
+ req_c
+ ],
compile_and_run, ["-no-hs-main T5402_main.c"])
test('T5594', [ omit_ways(['ghci']),
- pre_cmd('$MAKE -s --no-print-directory T5594_setup') ],
+ pre_cmd('$MAKE -s --no-print-directory T5594_setup'),
# The T5594_setup hack is to ensure that we generate
# T5594_stub.h before compiling T5594_c.c, which
# needs it.
+ req_c
+ ],
compile_and_run, ['T5594_c.c -no-hs-main'])
-test('Capi_Ctype_001', [extra_files(['Capi_Ctype_A_001.hsc', 'capi_ctype_001.h', 'capi_ctype_001_c.c'])],
+test('Capi_Ctype_001', [extra_files(['Capi_Ctype_A_001.hsc', 'capi_ctype_001.h', 'capi_ctype_001_c.c']), js_broken(22374)],
makefile_test, ['Capi_Ctype_001'])
-test('Capi_Ctype_002', [extra_files(['Capi_Ctype_A_002.hsc', 'capi_ctype_002_A.h', 'capi_ctype_002_B.h'])],
+test('Capi_Ctype_002', [extra_files(['Capi_Ctype_A_002.hsc', 'capi_ctype_002_A.h', 'capi_ctype_002_B.h']), js_broken(22374)],
makefile_test, ['Capi_Ctype_002'])
test('ffi_parsing_001', [omit_ways(['ghci']), req_c], compile_and_run,
@@ -169,7 +183,7 @@ test('T7170',
exit_code(1)],
compile_and_run, [''])
-test('T4012', [expect_broken_for(7388, ['ghci'])], multimod_compile_and_run,
+test('T4012', [expect_broken_for(7388, ['ghci']), js_broken(22374)], multimod_compile_and_run,
['T4012', ''])
test('T8083', [omit_ways(['ghci']), req_c], compile_and_run, ['T8083_c.c'])
@@ -178,6 +192,7 @@ test('T9274', [omit_ways(['ghci'])], compile_and_run, [''])
test('ffi023', [ omit_ways(['ghci']),
extra_run_opts('1000 4'),
+ js_broken(22363),
pre_cmd('$MAKE -s --no-print-directory ffi023_setup') ],
# The ffi023_setup hack is to ensure that we generate
# ffi023_stub.h before compiling ffi023_c.c, which
@@ -227,9 +242,9 @@ test('IncallAffinity',
compile_and_run,
['IncallAffinity_c.c -no-hs-main'])
-test('T19237', normal, compile_and_run, ['T19237_c.c'])
+test('T19237', req_c, compile_and_run, ['T19237_c.c'])
-test('T21305', omit_ways(['ghci']), multi_compile_and_run,
+test('T21305', [cmm_src,omit_ways(['ghci'])], multi_compile_and_run,
['T21305', [('T21305_cmm.cmm', '')], ''])
test('T22159',
diff --git a/testsuite/tests/ghc-api/T4891/all.T b/testsuite/tests/ghc-api/T4891/all.T
index c179398c33..01ebba8fa8 100644
--- a/testsuite/tests/ghc-api/T4891/all.T
+++ b/testsuite/tests/ghc-api/T4891/all.T
@@ -1 +1 @@
-test('T4891', [extra_files(['X.hs'])], makefile_test, ['T4891'])
+test('T4891', [extra_files(['X.hs']), js_broken(22362)], makefile_test, ['T4891'])
diff --git a/testsuite/tests/ghc-api/all.T b/testsuite/tests/ghc-api/all.T
index 4d62a57682..4e6aa16748 100644
--- a/testsuite/tests/ghc-api/all.T
+++ b/testsuite/tests/ghc-api/all.T
@@ -1,23 +1,23 @@
test('ghcApi', normal, compile_and_run, ['-package ghc'])
-test('T6145', normal, makefile_test, ['T6145'])
+test('T6145', js_broken(22352), makefile_test, ['T6145'])
test('T8639_api', req_rts_linker,
makefile_test, ['T8639_api'])
test('T8628', req_rts_linker,
makefile_test, ['T8628'])
-test('T9595', extra_run_opts('"' + config.libdir + '"'),
+test('T9595', [extra_run_opts('"' + config.libdir + '"'), js_broken(22362)],
compile_and_run,
['-package ghc'])
test('T10508_api', [ extra_run_opts('"' + config.libdir + '"'),
req_rts_linker ],
compile_and_run,
['-package ghc'])
-test('T10942', extra_run_opts('"' + config.libdir + '"'),
+test('T10942', [extra_run_opts('"' + config.libdir + '"'), js_broken(22362)],
compile_and_run,
['-package ghc'])
test('T9015', extra_run_opts('"' + config.libdir + '"'),
compile_and_run,
['-package ghc'])
-test('T11579', extra_run_opts('"' + config.libdir + '"'), compile_and_run,
+test('T11579', [extra_run_opts('"' + config.libdir + '"'), js_skip], compile_and_run,
['-package ghc'])
test('T12099', normal, compile_and_run, ['-package ghc'])
test('T18181',
@@ -26,10 +26,12 @@ test('T18181',
compile_and_run,
['-package ghc'])
test('T18522-dbg-ppr',
- extra_run_opts('"' + config.libdir + '"'),
+ [extra_run_opts('"' + config.libdir + '"'), js_broken(22362)],
compile_and_run,
['-package ghc'])
-test('T19156', extra_run_opts('"' + config.libdir + '"'),
+test('T19156', [ extra_run_opts('"' + config.libdir + '"')
+ , js_broken(22261)
+ ],
compile_and_run,
['-package ghc'])
test('T20757', [unless(opsys('mingw32'), skip), exit_code(1)],
diff --git a/testsuite/tests/ghc-api/annotations-literals/all.T b/testsuite/tests/ghc-api/annotations-literals/all.T
index 88dd593bab..769aea7b42 100644
--- a/testsuite/tests/ghc-api/annotations-literals/all.T
+++ b/testsuite/tests/ghc-api/annotations-literals/all.T
@@ -1,2 +1,2 @@
-test('literals', [normalise_slashes, extra_files(['LiteralsTest.hs'])], makefile_test, ['literals'])
-test('parsed', [extra_files(['LiteralsTest2.hs'])], makefile_test, ['parsed'])
+test('literals', [normalise_slashes, extra_files(['LiteralsTest.hs']), js_broken(22352)], makefile_test, ['literals'])
+test('parsed', [extra_files(['LiteralsTest2.hs']), js_broken(22352)], makefile_test, ['parsed'])
diff --git a/testsuite/tests/ghc-api/apirecomp001/all.T b/testsuite/tests/ghc-api/apirecomp001/all.T
index 363f9c05ab..672b7b4ac8 100644
--- a/testsuite/tests/ghc-api/apirecomp001/all.T
+++ b/testsuite/tests/ghc-api/apirecomp001/all.T
@@ -1,3 +1,4 @@
test('apirecomp001',
- extra_files(['A.hs', 'B.hs', 'myghc.hs']),
+ [extra_files(['A.hs', 'B.hs', 'myghc.hs']),
+ js_broken(22352)],
makefile_test, ['apirecomp001'])
diff --git a/testsuite/tests/ghc-api/downsweep/all.T b/testsuite/tests/ghc-api/downsweep/all.T
index 1096159c2c..c293c73cc0 100644
--- a/testsuite/tests/ghc-api/downsweep/all.T
+++ b/testsuite/tests/ghc-api/downsweep/all.T
@@ -1,12 +1,14 @@
test('PartialDownsweep',
[ extra_run_opts('"' + config.libdir + '"')
, ignore_stderr
+ , js_broken(22352)
],
compile_and_run,
['-package ghc -package exceptions'])
test('OldModLocation',
[ extra_run_opts('"' + config.libdir + '"')
+ , js_broken(22362)
, when(opsys('mingw32'), expect_broken(16772))
],
compile_and_run,
diff --git a/testsuite/tests/ghc-api/target-contents/all.T b/testsuite/tests/ghc-api/target-contents/all.T
index fc6aa9230c..684cd06d74 100644
--- a/testsuite/tests/ghc-api/target-contents/all.T
+++ b/testsuite/tests/ghc-api/target-contents/all.T
@@ -1,4 +1,6 @@
test('TargetContents',
- [extra_run_opts('"' + config.libdir + '"')]
+ [ extra_run_opts('"' + config.libdir + '"')
+ , js_broken(22374)
+ ]
, compile_and_run,
['-package ghc -package exceptions'])
diff --git a/testsuite/tests/ghci/T13786/all.T b/testsuite/tests/ghci/T13786/all.T
index b406fad214..a25b548da6 100644
--- a/testsuite/tests/ghci/T13786/all.T
+++ b/testsuite/tests/ghci/T13786/all.T
@@ -1,4 +1,4 @@
test('T13786',
- when(unregisterised(), fragile(17018)),
+ [when(unregisterised(), fragile(17018)), js_broken(22359)],
makefile_test, [])
diff --git a/testsuite/tests/ghci/caf_crash/all.T b/testsuite/tests/ghci/caf_crash/all.T
index 6fe22dd454..d50cc5c423 100644
--- a/testsuite/tests/ghci/caf_crash/all.T
+++ b/testsuite/tests/ghci/caf_crash/all.T
@@ -2,5 +2,6 @@ test('caf_crash',
[extra_files(['A.hs', 'B.hs', 'D.hs', ]),
when(ghc_dynamic(), skip),
extra_ways(['ghci-ext']),
- omit_ways(['ghci']), ],
+ omit_ways(['ghci']),
+ js_broken(22359)],
ghci_script, ['caf_crash.script'])
diff --git a/testsuite/tests/ghci/linking/all.T b/testsuite/tests/ghci/linking/all.T
index 197500c039..d18d252a93 100644
--- a/testsuite/tests/ghci/linking/all.T
+++ b/testsuite/tests/ghci/linking/all.T
@@ -1,7 +1,8 @@
test('ghcilink001',
[extra_files(['TestLink.hs', 'f.c']),
when(ghc_dynamic(), expect_fail), # dynamic ghci can't load '.a's
- unless(doing_ghci, skip)],
+ unless(doing_ghci, skip),
+ req_interp], # JS backend doesn't use ghci
makefile_test, ['ghcilink001'])
test('ghcilink002', [extra_files(['TestLink.hs', 'f.c']),
@@ -15,7 +16,8 @@ test('ghcilink003',
# from Big Sur onwards, we can't dlopen libstdc++.dylib
# anymore. Will produce:
# dlopen(libstdc++.dylib, 5): image not found
- when(opsys('darwin'), fragile(16083))
+ when(opsys('darwin'), fragile(16083)),
+ req_interp
], makefile_test, ['ghcilink003'])
test('ghcilink004',
@@ -29,7 +31,8 @@ test('ghcilink005',
[extra_files(['TestLink.hs', 'f.c']),
when(unregisterised(), fragile(16085)),
unless(doing_ghci, skip),
- req_dynamic_lib_support],
+ req_dynamic_lib_support,
+ req_interp],
makefile_test, ['ghcilink005'])
test('ghcilink006',
@@ -37,18 +40,22 @@ test('ghcilink006',
# from Big Sur onwards, we can't dlopen libstdc++.dylib
# anymore. Will produce:
# dlopen(libstdc++.dylib, 5): image not found
- when(opsys('darwin'), fragile(16083))
+ when(opsys('darwin'), fragile(16083)),
+ req_interp
], makefile_test, ['ghcilink006'])
test('T3333',
[unless(doing_ghci, skip),
- when(unregisterised(), fragile(17018))],
+ when(unregisterised(), fragile(17018)),
+ js_broken(22359)],
makefile_test, ['T3333'])
test('T11531',
[extra_files(['T11531.hs', 'T11531.c', 'T11531.h']),
unless(doing_ghci, skip),
unless(opsys('linux'), skip),
+ req_c,
+ req_interp,
fragile(11531)],
makefile_test, ['T11531'])
@@ -60,7 +67,8 @@ test('T14708',
test('T15729',
[extra_files(['T15729.hs', 'T15729.c']),
- unless(doing_ghci, skip)],
+ unless(doing_ghci, skip),
+ js_broken(22359)],
makefile_test, ['T15729'])
test('big-obj', [extra_files(['big-obj-c.c', 'big-obj.hs']),
diff --git a/testsuite/tests/ghci/linking/dyn/all.T b/testsuite/tests/ghci/linking/dyn/all.T
index 9b05ed5fc3..7711f2eb7a 100644
--- a/testsuite/tests/ghci/linking/dyn/all.T
+++ b/testsuite/tests/ghci/linking/dyn/all.T
@@ -1,14 +1,17 @@
setTestOpts(req_dynamic_lib_support)
-test('load_short_name', [extra_files(['A.c']),
- unless(doing_ghci, skip)],
+test('load_short_name', [ extra_files(['A.c'])
+ , unless(doing_ghci, skip)
+ , req_c
+ ],
makefile_test, ['load_short_name'])
test('T1407',
[extra_files(['A.c']),
unless(doing_ghci, skip),
pre_cmd('$MAKE -s --no-print-directory compile_libT1407'),
- extra_hc_opts('-L"$PWD/T1407dir"')],
+ extra_hc_opts('-L"$PWD/T1407dir"'),
+ js_broken(22359)],
makefile_test, [])
test('T3242',
@@ -23,7 +26,10 @@ test('T10955',
extra_hc_opts('-L. -L./bin_dep')],
ghci_script, ['T10955.script'])
-test('T10955dyn', [extra_files(['A.c', 'B.c', 'A.def', 'B.def'])],
+test('T10955dyn',
+ [extra_files(['A.c', 'B.c', 'A.def', 'B.def'])
+ , js_broken(22351) # dynamic linking not supported by the JS backend
+ ],
makefile_test, ['compile_libAB_dyn'])
test('T10458',
diff --git a/testsuite/tests/ghci/scripts/all.T b/testsuite/tests/ghci/scripts/all.T
index e64debbb49..321769f21e 100755
--- a/testsuite/tests/ghci/scripts/all.T
+++ b/testsuite/tests/ghci/scripts/all.T
@@ -258,7 +258,7 @@ test('T10963', normal, ghci_script, ['T10963.script'])
test('T11547', normal, ghci_script, ['T11547.script'])
test('T11721', normal, ghci_script, ['T11721.script'])
test('T12005', normal, ghci_script, ['T12005.script'])
-test('T12023', normal, makefile_test, [])
+test('T12023', js_broken(22359), makefile_test, [])
test('T12520', normal, ghci_script, ['T12520.script'])
test('T12091', [extra_run_opts('-fobject-code')], ghci_script,
['T12091.script'])
diff --git a/testsuite/tests/ghci/should_fail/all.T b/testsuite/tests/ghci/should_fail/all.T
index 3e24f19ad3..d80b723c69 100644
--- a/testsuite/tests/ghci/should_fail/all.T
+++ b/testsuite/tests/ghci/should_fail/all.T
@@ -5,4 +5,4 @@ test('T16013', [], ghci_script, ['T16013.script'])
test('T16287', [], ghci_script, ['T16287.script'])
test('T18052b', [], ghci_script, ['T18052b.script'])
test('T18027a', [], ghci_script, ['T18027a.script'])
-test('T20214', [], makefile_test, ['T20214'])
+test('T20214', js_broken(22370), makefile_test, ['T20214'])
diff --git a/testsuite/tests/haddock/perf/all.T b/testsuite/tests/haddock/perf/all.T
index 63e01cd28e..ad9f7ddf51 100644
--- a/testsuite/tests/haddock/perf/all.T
+++ b/testsuite/tests/haddock/perf/all.T
@@ -1,2 +1,2 @@
-test('haddock_parser_perf', [extra_files(['Fold.hs'])], makefile_test, [])
-test('haddock_renamer_perf', [extra_files(['Fold.hs'])], makefile_test, [])
+test('haddock_parser_perf', [extra_files(['Fold.hs']), js_skip], makefile_test, [])
+test('haddock_renamer_perf', [extra_files(['Fold.hs']), js_skip], makefile_test, [])
diff --git a/testsuite/tests/hiefile/should_run/all.T b/testsuite/tests/hiefile/should_run/all.T
index 5536034d6b..79d1858cfb 100644
--- a/testsuite/tests/hiefile/should_run/all.T
+++ b/testsuite/tests/hiefile/should_run/all.T
@@ -2,4 +2,4 @@ test('PatTypes', [extra_run_opts('"' + config.libdir + '"'), extra_files(['TestU
test('HieQueries', [extra_run_opts('"' + config.libdir + '"'), extra_files(['TestUtils.hs'])], compile_and_run, ['-package ghc -fwrite-ide-info'])
test('T20341', [extra_run_opts('"' + config.libdir + '"'), extra_files(['TestUtils.hs'])], compile_and_run, ['-package ghc -fwrite-ide-info'])
test('RecordDotTypes', [extra_run_opts('"' + config.libdir + '"'), extra_files(['TestUtils.hs'])], compile_and_run, ['-package ghc -fwrite-ide-info'])
-test('SpliceTypes', [extra_run_opts('"' + config.libdir + '"'), extra_files(['TestUtils.hs'])], compile_and_run, ['-package ghc -fwrite-ide-info'])
+test('SpliceTypes', [req_th, extra_run_opts('"' + config.libdir + '"'), extra_files(['TestUtils.hs'])], compile_and_run, ['-package ghc -fwrite-ide-info'])
diff --git a/testsuite/tests/hp2ps/all.T b/testsuite/tests/hp2ps/all.T
index 4c652416e7..0227fa0cb6 100644
--- a/testsuite/tests/hp2ps/all.T
+++ b/testsuite/tests/hp2ps/all.T
@@ -1 +1 @@
-test('T15904', when(opsys('mingw32'), expect_broken(16388)), makefile_test, [])
+test('T15904', [when(opsys('mingw32'), expect_broken(16388)), js_broken(22261)], makefile_test, [])
diff --git a/testsuite/tests/hpc/all.T b/testsuite/tests/hpc/all.T
index 2e2e7710a9..19909eb1a2 100644
--- a/testsuite/tests/hpc/all.T
+++ b/testsuite/tests/hpc/all.T
@@ -1,3 +1,5 @@
+setTestOpts(js_skip) # JS backend doesn't support HPC yet
+
test('T10138', [extra_files(['.keepme.hpc.T10138/']),
ignore_stdout], run_command,
# Using --hpcdir with an absolute path should work (exit code 0).
diff --git a/testsuite/tests/hsc2hs/all.T b/testsuite/tests/hsc2hs/all.T
index 3869ee4669..21b6974f6b 100644
--- a/testsuite/tests/hsc2hs/all.T
+++ b/testsuite/tests/hsc2hs/all.T
@@ -1,23 +1,27 @@
-test('hsc2hs001', [], makefile_test, [])
+test('hsc2hs001', js_broken(22355), makefile_test, [])
-test('hsc2hs002', [], makefile_test, [])
+test('hsc2hs002', js_broken(22355), makefile_test, [])
-test('hsc2hs003', [], makefile_test, [])
+test('hsc2hs003', js_broken(22355), makefile_test, [])
test('hsc2hs004', [], makefile_test, [])
-test('T3837', [], makefile_test, [])
+test('T3837', js_broken(22355), makefile_test, [])
# These are broken on CI (and potentially elsewhere) since we
# are building ARMv7 # binaries on an AArch64 machine.
-test('T4340', when(arch('arm'), expect_broken(17556)), makefile_test, [])
-test('T10272', when(arch('arm'), expect_broken(17556)), makefile_test, [])
+test('T4340', [ when(arch('arm'), expect_broken(17556))
+ , js_broken(17556)
+ ], makefile_test, [])
+test('T10272', [ when(arch('arm'), expect_broken(17556))
+ , js_broken(17556)
+ ], makefile_test, [])
-test('T11004', [], makefile_test, [])
+test('T11004', js_broken(22355), makefile_test, [])
-test('T12504', [extra_files(['T12504']), ignore_stdout], makefile_test, [])
+test('T12504', [extra_files(['T12504']), ignore_stdout, js_broken(22355)], makefile_test, [])
# Make sure response files are read and used.
-test('T15758', [], makefile_test, [])
+test('T15758', js_broken(22355), makefile_test, [])
diff --git a/testsuite/tests/indexed-types/should_compile/all.T b/testsuite/tests/indexed-types/should_compile/all.T
index 7ebb9eae80..9fd26a660e 100644
--- a/testsuite/tests/indexed-types/should_compile/all.T
+++ b/testsuite/tests/indexed-types/should_compile/all.T
@@ -253,7 +253,7 @@ test('T12522b', normal, compile, [''])
test('T12676', normal, compile, [''])
test('T12526', normal, compile, [''])
test('T12538', normal, compile_fail, [''])
-test('T13244', normal, compile, [''])
+test('T13244', js_broken(22364), compile, [''])
test('T13398a', normal, compile, [''])
test('T13398b', normal, compile, [''])
test('T13662', normal, compile, [''])
diff --git a/testsuite/tests/lib/base/all.T b/testsuite/tests/lib/base/all.T
index 5e3cf28f68..65f221187f 100644
--- a/testsuite/tests/lib/base/all.T
+++ b/testsuite/tests/lib/base/all.T
@@ -1,10 +1,10 @@
test('DataTypeOrd', normal, compile_and_run, [''])
test('T16586', normal, compile_and_run, ['-O2'])
# Event-manager not supported on Windows
-test('T16916', when(opsys('mingw32'), skip), compile_and_run, ['-O2 -threaded -with-rtsopts="-I0" -rtsopts'])
+test('T16916', [when(opsys('mingw32'), skip), js_broken(22261)], compile_and_run, ['-O2 -threaded -with-rtsopts="-I0" -rtsopts'])
test('T17310', normal, compile, [''])
test('T19691', normal, compile, [''])
-test('executablePath', extra_run_opts(config.os), compile_and_run, [''])
+test('executablePath', [extra_run_opts(config.os), js_broken(22261)], compile_and_run, [''])
test('T17472', normal, compile_and_run, [''])
test('T19569b', normal, compile_and_run, [''])
test('Monoid_ByteArray', normal, compile_and_run, [''])
diff --git a/testsuite/tests/numeric/should_run/all.T b/testsuite/tests/numeric/should_run/all.T
index 6e9b8517db..f2854ff1d4 100644
--- a/testsuite/tests/numeric/should_run/all.T
+++ b/testsuite/tests/numeric/should_run/all.T
@@ -53,7 +53,7 @@ test('mul2', normal, compile_and_run, ['-fobject-code'])
test('quotRem2', normal, compile_and_run, ['-fobject-code'])
test('T5863', normal, compile_and_run, [''])
-test('T7014', [], makefile_test, [])
+test('T7014', js_skip, makefile_test, [])
test('T7233', normal, compile_and_run, [''])
test('NumDecimals', normal, compile_and_run, [''])
@@ -63,7 +63,7 @@ test('T9407', normal, compile_and_run, [''])
test('T9810', normal, compile_and_run, [''])
test('T10011', normal, compile_and_run, [''])
test('T10962', omit_ways(['ghci']), compile_and_run, ['-O2'])
-test('T11702', extra_ways(['optasm']), compile_and_run, [''])
+test('T11702', [unless(arch("js"),extra_ways(['optasm']))], compile_and_run, [''])
test('T12136', normal, compile_and_run, [''])
test('T15301', normal, compile_and_run, ['-O2'])
test('T497', normal, compile_and_run, ['-O'])
diff --git a/testsuite/tests/patsyn/should_compile/T13350/all.T b/testsuite/tests/patsyn/should_compile/T13350/all.T
index 67b4101ba5..cbc3ed7ddf 100644
--- a/testsuite/tests/patsyn/should_compile/T13350/all.T
+++ b/testsuite/tests/patsyn/should_compile/T13350/all.T
@@ -1,5 +1,6 @@
# Test that importing COMPLETE sets from external packages works
test('T13350',
- extra_files(['T13350.hs', 'boolean']),
+ [extra_files(['T13350.hs', 'boolean']),
+ js_broken(22352)],
makefile_test, ['T13350'])
diff --git a/testsuite/tests/perf/compiler/all.T b/testsuite/tests/perf/compiler/all.T
index de51bea667..00a5abe8dd 100644
--- a/testsuite/tests/perf/compiler/all.T
+++ b/testsuite/tests/perf/compiler/all.T
@@ -536,6 +536,7 @@ test('T16190',
test ('T16473',
[ collect_stats('bytes allocated',5)
, only_ways(['normal'])
+ , js_broken(22261)
],
compile_and_run,
['-O2 -flate-specialise'])
diff --git a/testsuite/tests/perf/should_run/all.T b/testsuite/tests/perf/should_run/all.T
index 9059a6f92f..59ad878a4c 100644
--- a/testsuite/tests/perf/should_run/all.T
+++ b/testsuite/tests/perf/should_run/all.T
@@ -1,3 +1,8 @@
+# disable performance tests for the JS backend
+# .stats files aren't generated and the expected allocation metrics (e.g. "bytes
+# allocated") can't be reported
+setTestOpts(js_skip)
+
# T12791 and T5835 test that GHC uses top-level instances in places where using
# a locally given solution would produce worse code.
# See Note [Solving from instances when interacting Dicts]
diff --git a/testsuite/tests/perf/space_leaks/all.T b/testsuite/tests/perf/space_leaks/all.T
index ec8f4dae97..d042101a4a 100644
--- a/testsuite/tests/perf/space_leaks/all.T
+++ b/testsuite/tests/perf/space_leaks/all.T
@@ -1,3 +1,4 @@
+setTestOpts(js_skip)
test('space_leak_001',
# This could potentially be replaced with
diff --git a/testsuite/tests/primops/should_run/all.T b/testsuite/tests/primops/should_run/all.T
index 65c24b1d00..f513d15a2e 100644
--- a/testsuite/tests/primops/should_run/all.T
+++ b/testsuite/tests/primops/should_run/all.T
@@ -8,7 +8,8 @@ test('T4442',
test('T10481', exit_code(1), compile_and_run, [''])
test('T10678',
[ collect_stats('bytes allocated',5),
- only_ways(['normal'])
+ only_ways(['normal']),
+ js_broken(22360)
],
compile_and_run, ['-O'])
test('T11296', normal, compile_and_run, [''])
@@ -45,7 +46,7 @@ test('LevPolyPtrEquality2', normal, compile_and_run, [''])
test('UnliftedArray1', normal, compile_and_run, [''])
test('UnliftedArray2', normal, compile_and_run, [''])
test('UnliftedArrayCAS', normal, compile_and_run, [''])
-test('UnliftedIOPort', normal, compile_and_run, [''])
+test('UnliftedIOPort', js_broken(22261), compile_and_run, [''])
test('UnliftedMutVar1', normal, compile_and_run, [''])
test('UnliftedMutVar2', normal, compile_and_run, [''])
test('UnliftedMutVar3', normal, compile_and_run, [''])
diff --git a/testsuite/tests/profiling/should_run/all.T b/testsuite/tests/profiling/should_run/all.T
index 0584b1dfa0..34d0f5d879 100644
--- a/testsuite/tests/profiling/should_run/all.T
+++ b/testsuite/tests/profiling/should_run/all.T
@@ -1,3 +1,5 @@
+setTestOpts(js_skip) # JS backend doesn't support profiling yet
+
# Test for #1227, #1418
test('heapprof002',
diff --git a/testsuite/tests/programs/seward-space-leak/test.T b/testsuite/tests/programs/seward-space-leak/test.T
index 906fe94ff6..e1525de9c6 100644
--- a/testsuite/tests/programs/seward-space-leak/test.T
+++ b/testsuite/tests/programs/seward-space-leak/test.T
@@ -1,3 +1,5 @@
-test('seward-space-leak', [extra_files(['Main.lhs']),
- when(fast(), skip)], multimod_compile_and_run,
+test('seward-space-leak', [extra_files(['Main.lhs'])
+ , when(fast(), skip)
+ , js_broken(22352)
+ ], multimod_compile_and_run,
['Main', ''])
diff --git a/testsuite/tests/rename/prog006/all.T b/testsuite/tests/rename/prog006/all.T
index 3a956d702a..5b2c16105d 100644
--- a/testsuite/tests/rename/prog006/all.T
+++ b/testsuite/tests/rename/prog006/all.T
@@ -1 +1 @@
-test('rn.prog006', [extra_files(['A.hs', 'B/', 'Main.hs', 'pwd.hs'])], makefile_test, [])
+test('rn.prog006', [extra_files(['A.hs', 'B/', 'Main.hs', 'pwd.hs']), js_broken(22261)], makefile_test, [])
diff --git a/testsuite/tests/rep-poly/all.T b/testsuite/tests/rep-poly/all.T
index 9d6adb937d..92d0a9e056 100644
--- a/testsuite/tests/rep-poly/all.T
+++ b/testsuite/tests/rep-poly/all.T
@@ -15,7 +15,7 @@ test('T18170b', [extra_files(['T18170c.hs']), expect_broken(19893)], multimod_co
# T18170b isn't actually broken, but it causes a Core Lint error
# even though the program is (correctly) rejected by the typechecker
test('T18481', normal, compile, [''])
-test('T18481a', normal, compile, [''])
+test('T18481a', js_broken(22360), compile, [''])
test('T18534', normal, compile_fail, [''])
test('T19615', normal, compile_fail, [''])
test('T19709a', normal, compile_fail, [''])
@@ -30,7 +30,7 @@ test('T20426', normal, compile_fail, [''])
test('T21239', normal, compile, [''])
test('T21544', normal, compile, ['-Wno-deprecated-flags'])
-test('EtaExpandDataCon', normal, compile, ['-O'])
+test('EtaExpandDataCon', js_broken(22360), compile, ['-O'])
test('EtaExpandStupid1', normal, compile, ['-Wno-deprecated-flags'])
test('EtaExpandStupid2', normal, compile_fail, ['-Wno-deprecated-flags'])
test('LevPolyLet', normal, compile_fail, [''])
@@ -40,10 +40,10 @@ test('RepPolyArgument', normal, compile_fail, [''])
test('RepPolyArrowCmd', normal, compile_fail, [''])
test('RepPolyArrowFun', normal, compile_fail, [''])
test('RepPolyBackpack1', normal, backpack_compile_fail, [''])
-test('RepPolyBackpack2', normal, backpack_run, [''])
+test('RepPolyBackpack2', req_c, backpack_run, [''])
test('RepPolyBackpack3', normal, backpack_compile_fail, [''])
-test('RepPolyBackpack4', normal, backpack_run, [''])
-test('RepPolyBackpack5', normal, backpack_run, [''])
+test('RepPolyBackpack4', req_c, backpack_run, [''])
+test('RepPolyBackpack5', js_broken(22360), backpack_run, [''])
test('RepPolyBinder', normal, compile_fail, [''])
test('RepPolyCase1', normal, compile_fail, [''])
test('RepPolyClassMethod', normal, compile_fail, [''])
@@ -79,8 +79,8 @@ test('RepPolySum', normal, compile_fail, [''])
test('RepPolyTuple', normal, compile_fail, [''])
test('RepPolyTupleSection', normal, compile_fail, [''])
test('RepPolyUnboxedPatterns', normal, compile_fail, [''])
-test('RepPolyUnliftedDatatype', normal, compile, [''])
-test('RepPolyUnliftedDatatype2', normal, compile, ['-O'])
+test('RepPolyUnliftedDatatype', js_broken(22360), compile, [''])
+test('RepPolyUnliftedDatatype2', js_broken(22261), compile, ['-O'])
test('RepPolyUnliftedNewtype', normal, compile,
['-fno-warn-partial-type-signatures -fno-warn-deprecated-flags'])
test('RepPolyWildcardPattern', normal, compile_fail, [''])
@@ -95,7 +95,7 @@ test('UnliftedNewtypesLevityBinder', normal, compile_fail, [''])
## ##
## These tests work! ##
##
-test('T13105', normal, compile, ['']) ##
+test('T13105', js_broken(22364), compile, ['']) ##
test('T17536b', normal, compile, ['']) ##
##
## These don't! ##
diff --git a/testsuite/tests/rts/T15261/all.T b/testsuite/tests/rts/T15261/all.T
index 402764ddb7..e8cd0bd30e 100644
--- a/testsuite/tests/rts/T15261/all.T
+++ b/testsuite/tests/rts/T15261/all.T
@@ -1,2 +1,2 @@
-test('T15261a', normal, makefile_test, ['T15261a'])
-test('T15261b', normal, makefile_test, ['T15261b'])
+test('T15261a', js_broken(22370), makefile_test, ['T15261a'])
+test('T15261b', js_broken(22370), makefile_test, ['T15261b'])
diff --git a/testsuite/tests/rts/T15894/all.T b/testsuite/tests/rts/T15894/all.T
index a2c207979e..0923a9fa28 100644
--- a/testsuite/tests/rts/T15894/all.T
+++ b/testsuite/tests/rts/T15894/all.T
@@ -1,3 +1,5 @@
test('T15894',
- [extra_files(['copysign.c', 'main.hs']), when(ghc_dynamic(), skip)],
+ [ extra_files(['copysign.c', 'main.hs']), when(ghc_dynamic(), skip)
+ , js_broken(22359)
+ ],
makefile_test, ['T15894'])
diff --git a/testsuite/tests/rts/T1791/all.T b/testsuite/tests/rts/T1791/all.T
index 483a2a0f58..a291749493 100644
--- a/testsuite/tests/rts/T1791/all.T
+++ b/testsuite/tests/rts/T1791/all.T
@@ -1,4 +1,6 @@
test('T1791',
- [ exit_code(0) ],
+ [ exit_code(0)
+ , js_skip # The JS backend doesn't detect heap overflows
+ ],
run_command,
['''"$MAKE" -s --no-print-directory T1791 >/dev/null && ./T1791 +RTS -M8M'''])
diff --git a/testsuite/tests/rts/T8308/all.T b/testsuite/tests/rts/T8308/all.T
index cbc86a51cb..74eeec3ebc 100644
--- a/testsuite/tests/rts/T8308/all.T
+++ b/testsuite/tests/rts/T8308/all.T
@@ -1 +1 @@
-test('T8308', normal, makefile_test, ['T8308'])
+test('T8308', js_broken(22261), makefile_test, ['T8308'])
diff --git a/testsuite/tests/rts/T9579/all.T b/testsuite/tests/rts/T9579/all.T
index cc0180e822..62ea56a74d 100644
--- a/testsuite/tests/rts/T9579/all.T
+++ b/testsuite/tests/rts/T9579/all.T
@@ -1,3 +1,5 @@
+setTestOpts(js_skip) # the JS backend doesn't detect overflows
+
# some numbers like "(1 MB)" would still remain.
# but let's just assume the actual difference in bytes
# is too small to have an effect on the rounded megabyte value.
diff --git a/testsuite/tests/rts/all.T b/testsuite/tests/rts/all.T
index 4f57c51f57..ac184db6cc 100644
--- a/testsuite/tests/rts/all.T
+++ b/testsuite/tests/rts/all.T
@@ -42,6 +42,7 @@ test('derefnull',
when(platform('aarch64-apple-darwin'), [ignore_stderr, exit_code(139)]),
when(opsys('mingw32'), [ignore_stderr, exit_code(11)]),
when(opsys('mingw32'), [fragile(18548)]),
+ when(platform('js-unknown-ghcjs'), [ignore_stderr, exit_code(1)]),
# ThreadSanitizer changes the output
when(have_thread_sanitizer(), skip),
# since these test are supposed to crash the
@@ -96,10 +97,14 @@ test('outofmem', [ when(opsys('darwin'), skip),
# windows, to prevent absolute exhaustion of memory
# and subsequent termination (and failure) of unrelated
# tests.
+ js_skip,
+ # similarly for the JS backend
when(opsys('mingw32'), skip),
normalise_errmsg_fun(remove_parenthesis)],
makefile_test, ['outofmem'])
-test('outofmem2', normal, makefile_test, ['outofmem2'])
+test('outofmem2',
+ [ js_skip # JS backend doesn't detect heap exhaustion
+ ], makefile_test, ['outofmem2'])
test('T2047',
[ignore_stdout,
@@ -136,6 +141,7 @@ test('stack003', [ omit_ways(['ghci']), # uses unboxed tuples
# Test that +RTS -K0 (e.g. no stack limit) parses correctly
test('stack004', [ extra_run_opts('+RTS -K0 -RTS')
+ , js_broken(22374)
, expect_broken_for(14913, ['ghci'])
], compile_and_run, [''])
@@ -151,31 +157,44 @@ test('T3424',
compile_and_run, [''])
# Test for out-of-range heap size
-test('rtsflags001', [ only_ways(['normal']), exit_code(1), extra_run_opts('+RTS -H0m -RTS') ], compile_and_run, [''])
+test('rtsflags001', [ only_ways(['normal']),
+ exit_code(1),
+ extra_run_opts('+RTS -H0m -RTS'),
+ js_skip # JS backend uses its own rts.
+ ],
+ compile_and_run, [''])
# Crashed with 7.2 and earlier
-test('rtsflags002', [ only_ways(['normal']) ], compile_and_run, ['-with-rtsopts="-B -B -B"'])
+test('rtsflags002', [ only_ways(['normal']), js_broken(22261) ], compile_and_run, ['-with-rtsopts="-B -B -B"'])
# omit dyn and profiling ways, because we don't build dyn_l or p_l
# variants of the RTS by default
test('traceEvent', [ omit_ways(['dyn', 'ghci'] + prof_ways),
- extra_run_opts('+RTS -ls -RTS') ],
+ extra_run_opts('+RTS -ls -RTS'),
+ js_skip # JS backend has no payload size limit
+ ],
compile_and_run, [''])
test('traceBinaryEvent', [ omit_ways(['dyn', 'ghci'] + prof_ways),
- extra_run_opts('+RTS -ls -RTS') ],
+ extra_run_opts('+RTS -ls -RTS'),
+ js_skip # traceBinaryEvent not supported
+ ],
compile_and_run, [''])
# Test that -ol flag works as expected
test('EventlogOutput1',
[ extra_files(["EventlogOutput.hs"]),
- omit_ways(['dyn', 'ghci'] + prof_ways) ],
+ omit_ways(['dyn', 'ghci'] + prof_ways),
+ js_skip
+ ],
makefile_test, ['EventlogOutput1'])
# Test that -ol flag defaults to <program>.eventlog
test('EventlogOutput2',
[ extra_files(["EventlogOutput.hs"]),
- omit_ways(['dyn', 'ghci'] + prof_ways) ],
+ omit_ways(['dyn', 'ghci'] + prof_ways),
+ js_skip
+ ],
makefile_test, ['EventlogOutput2'])
test('EventlogOutputNull',
@@ -202,12 +221,16 @@ test('T4059', req_c, makefile_test, ['T4059'])
test('exec_signals',
[when(opsys('mingw32'), skip),
pre_cmd('$MAKE -s --no-print-directory exec_signals-prep'),
- cmd_prefix('./exec_signals_prepare')],
+ cmd_prefix('./exec_signals_prepare'),
+ js_broken(22355)],
compile_and_run, [''])
test('return_mem_to_os', normal, compile_and_run, [''])
-test('T4850', when(opsys('mingw32'), expect_broken(4850)), makefile_test, ['T4850'])
+test('T4850',
+ [ when(opsys('mingw32'), expect_broken(4850))
+ , js_broken(22261) # FFI "dynamic" convention unsupported
+ ], makefile_test, ['T4850'])
def config_T5250(name, opts):
if not (config.arch in ['i386','x86_64']):
@@ -227,18 +250,22 @@ test('T5423', cmm_src, makefile_test, ['T5423'])
test('T5993', extra_run_opts('+RTS -k8 -RTS'), compile_and_run, [''])
test('T6006', [ omit_ways(prof_ways + ['ghci']),
- pre_cmd('$MAKE -s --no-print-directory T6006_setup') ],
+ pre_cmd('$MAKE -s --no-print-directory T6006_setup'),
+ js_skip
+ ],
# The T6006_setup hack is to ensure that we generate
# T6006_stub.h before compiling T6006_c.c, which
# needs it.
compile_and_run, ['T6006_c.c -no-hs-main'])
-test('T7037', [], makefile_test, ['T7037'])
+test('T7037', js_broken(22374), makefile_test, ['T7037'])
test('T7087', exit_code(1), compile_and_run, [''])
-test('T7160', omit_ways(['nonmoving_thr', 'nonmoving_thr_ghc']), compile_and_run, [''])
+test('T7160', [ omit_ways(['nonmoving_thr', 'nonmoving_thr_ghc'])
+ , js_broken(22261)
+ ], compile_and_run, [''])
-test('T7040', [omit_ways(['ghci'])], compile_and_run, ['T7040_c.c'])
+test('T7040', [omit_ways(['ghci']), req_c], compile_and_run, ['T7040_c.c'])
test('T7040_ghci',
[extra_files(['T7040_c.h']),
@@ -307,16 +334,19 @@ test('T10017', [ when(opsys('mingw32'), skip)
test('T11108', normal, compile_and_run, [''])
-test('GcStaticPointers', [when(doing_ghci(), extra_hc_opts('-fobject-code'))],
+test('GcStaticPointers', [ when(doing_ghci()
+ , extra_hc_opts('-fobject-code'))
+ , js_broken(22261)
+ ],
compile_and_run, [''])
test('ListStaticPointers', [when(doing_ghci(), extra_hc_opts('-fobject-code'))],
compile_and_run, [''])
# 251 = RTS exit code for "out of memory"
-test('overflow1', [ exit_code(251), when(wordsize(32), expect_broken(15255)) ],
+test('overflow1', [ js_skip, exit_code(251), when(wordsize(32), expect_broken(15255)) ],
compile_and_run, [''])
-test('overflow2', [ exit_code(251) ], compile_and_run, [''])
-test('overflow3', [ exit_code(251) ], compile_and_run, [''])
+test('overflow2', [ js_skip, exit_code(251) ], compile_and_run, [''])
+test('overflow3', [ js_skip, exit_code(251) ], compile_and_run, [''])
def grep_stderr(pattern):
def wrapper(cmd, pattern=pattern):
@@ -326,8 +356,10 @@ def grep_stderr(pattern):
# The ghci way gets confused by the RTS options
test('T9839_01',
- [omit_ways(['ghci']), extra_run_opts('+RTS -T-s'), no_check_hp,
- grep_stderr('given an argument when none was expected')],
+ [ omit_ways(['ghci']), extra_run_opts('+RTS -T-s'), no_check_hp
+ , grep_stderr('given an argument when none was expected')
+ , js_broken(22261)
+ ],
compile_and_run, [''])
test('T9839_02',
@@ -352,16 +384,19 @@ test('T9839_05',
# ignore_stderr as RTS reports slightly different error messages
# in 'epoll' and 'select' backends on reading from EBADF
# mingw32 skip as UNIX pipe and close(fd) is used to exercise the problem
-test('T10590', [ignore_stderr, when(opsys('mingw32'), skip)], compile_and_run, [''])
+test('T10590', [ ignore_stderr
+ , when(opsys('mingw32'), skip)
+ , js_skip # JS backend doesn't support pipes
+ ], compile_and_run, [''])
# 20000 was easily enough to trigger the bug with 7.10
-test('T10904', [ omit_ways(['ghci']), extra_run_opts('20000') ],
+test('T10904', [ omit_ways(['ghci']), extra_run_opts('20000'), req_c ],
compile_and_run, ['T10904lib.c'])
test('T10728', [extra_run_opts('+RTS -maxN3 -RTS'), only_ways(['threaded2'])],
compile_and_run, [''])
-test('T9405', [when(opsys('mingw32'), expect_broken(21361))], makefile_test, ['T9405'])
+test('T9405', [when(opsys('mingw32'), expect_broken(21361)), js_broken(22261)], makefile_test, ['T9405'])
test('T11788', [ when(ghc_dynamic(), skip)
, req_interp
@@ -387,7 +422,8 @@ test('T13617', [ unless(opsys('mingw32'), skip)],
test('T12903', [ when(opsys('mingw32'), skip)
, when(opsys('darwin'), skip)
, when(arch('i386'), fragile(20377))
- , omit_ways(['ghci', 'profasm'])]
+ , omit_ways(['ghci', 'profasm'])
+ , js_broken(22374)]
, compile_and_run, [''])
test('T13832', exit_code(1), compile_and_run, ['-threaded'])
@@ -395,7 +431,7 @@ test('T13894', normal, compile_and_run, [''])
# this test fails with the profasm way on some machines but not others,
# so we just skip it.
test('T14497', [omit_ways(['profasm']), multi_cpu_race], compile_and_run, ['-O'])
-test('T14695', [normal, ignore_stderr], makefile_test, ['T14695'])
+test('T14695', [js_broken(22359), ignore_stderr], makefile_test, ['T14695'])
test('T14702', [ ignore_stdout
, when(unregisterised(), skip)
, when(opsys('mingw32'), fragile(18953))
@@ -404,9 +440,14 @@ test('T14702', [ ignore_stdout
]
, compile_and_run, [''])
-test('T14900', normal, compile_and_run, ['-package ghc-compact'])
-test('InternalCounters', normal, makefile_test, ['InternalCounters'])
-test('alloccounter1', normal, compile_and_run,
+test('T14900',
+ [ js_skip # Compact regions not supported by the JS backend yet
+ ], compile_and_run, ['-package ghc-compact'])
+
+test('InternalCounters',
+ [ js_skip # JS backend doesn't support internal counters
+ ], makefile_test, ['InternalCounters'])
+test('alloccounter1', js_broken(22261), compile_and_run,
[
# avoid allocating stack chunks, which counts as
# allocation and messes up the results:
@@ -472,19 +513,21 @@ test('T17088',
[only_ways(['normal']), extra_run_opts('+RTS -c -A256k -RTS')],
compile_and_run, ['-rtsopts -O2'])
-test('T15427', normal, compile_and_run, [''])
+test('T15427', js_broken(22374), compile_and_run, [''])
test('T19481',
[extra_run_opts('+RTS -T -RTS'),
+ js_broken(22374),
# memory behavior changes appreciably with the nonmoving collector
omit_ways(['nonmoving', 'nonmoving_thr', 'nonmoving_thr_sanity'])],
compile_and_run, [''])
test('T19381',
[extra_run_opts('+RTS -T -RTS'),
+ js_broken(22374),
# memory behavior changes appreciably with the nonmoving collector
omit_ways(['nonmoving', 'nonmoving_thr', 'nonmoving_thr_sanity'])],
compile_and_run, [''])
-test('T20199', [ grep_errmsg('Hello') ]
+test('T20199', [ grep_errmsg('Hello'), req_c ]
, makefile_test, [])
# We need to be precise about the used way here as different ways may lead to
@@ -492,12 +535,30 @@ test('T20199', [ grep_errmsg('Hello') ]
# test).
test('cloneMyStack', [req_c,only_ways(['normal']), extra_files(['cloneStackLib.c'])],
compile_and_run, ['cloneStackLib.c'])
-test('cloneMyStack2', ignore_stdout, compile_and_run, [''])
+
+test('cloneMyStack2',
+ [ ignore_stdout
+ , js_broken(22261) # cloneMyStack# not yet implemented
+ ], compile_and_run, [''])
+
test('cloneMyStack_retBigStackFrame', [req_c, extra_files(['cloneStackLib.c']), ignore_stdout], compile_and_run, ['cloneStackLib.c'])
+
test('cloneThreadStack', [req_c, only_ways(['threaded1']), extra_ways(['threaded1']), extra_files(['cloneStackLib.c'])], compile_and_run, ['cloneStackLib.c -threaded'])
-test('decodeMyStack', normal, compile_and_run, ['-finfo-table-map'])
+
+test('decodeMyStack',
+ [ js_broken(22261) # cloneMyStack# not yet implemented
+ ], compile_and_run, ['-finfo-table-map'])
+
# Options:
# - `-kc8K`: Set stack chunk size to it's minimum to provoke underflow stack frames.
-test('decodeMyStack_underflowFrames', [extra_run_opts('+RTS -kc8K -RTS')], compile_and_run, ['-finfo-table-map -rtsopts'])
+test('decodeMyStack_underflowFrames',
+ [ extra_run_opts('+RTS -kc8K -RTS')
+ , js_broken(22261) # cloneMyStack# not yet implemented
+ ], compile_and_run, ['-finfo-table-map -rtsopts'])
+
# -finfo-table-map intentionally missing
-test('decodeMyStack_emptyListForMissingFlag', [ignore_stdout, ignore_stderr], compile_and_run, [''])
+test('decodeMyStack_emptyListForMissingFlag',
+ [ ignore_stdout
+ , ignore_stderr
+ , js_broken(22261) # cloneMyStack# not yet implemented
+ ], compile_and_run, [''])
diff --git a/testsuite/tests/rts/continuations/all.T b/testsuite/tests/rts/continuations/all.T
index 7b35e29c00..e8852416eb 100644
--- a/testsuite/tests/rts/continuations/all.T
+++ b/testsuite/tests/rts/continuations/all.T
@@ -1,3 +1,5 @@
+setTestOpts(js_broken(22261))
+
test('cont_simple_shift', [extra_files(['ContIO.hs'])], multimod_compile_and_run, ['cont_simple_shift', ''])
test('cont_exn_masking', [extra_files(['ContIO.hs'])], multimod_compile_and_run, ['cont_exn_masking', ''])
test('cont_missing_prompt_err', [extra_files(['ContIO.hs']), exit_code(1)], multimod_compile_and_run, ['cont_missing_prompt_err', ''])
diff --git a/testsuite/tests/rts/flags/T17720/all.T b/testsuite/tests/rts/flags/T17720/all.T
index d3921bc112..0ffe75777c 100644
--- a/testsuite/tests/rts/flags/T17720/all.T
+++ b/testsuite/tests/rts/flags/T17720/all.T
@@ -1,20 +1,23 @@
test('T17720a',
[extra_run_opts('+RTS -ibogus'),
exit_code(1), check_errmsg('bad value for -i'), extra_files(['T17720.hs']),
- only_ways(['normal'])],
+ only_ways(['normal']),
+ js_broken(22261)],
multimod_compile_and_run,
['T17720', '-rtsopts'])
test('T17720b',
[extra_run_opts('+RTS -Cv'),
exit_code(1), check_errmsg('bad value for -C'), extra_files(['T17720.hs']),
- only_ways(['normal'])],
+ only_ways(['normal']),
+ js_broken(22261)],
multimod_compile_and_run,
['T17720', '-rtsopts'])
test('T17720c',
[extra_run_opts('+RTS -V3b'),
exit_code(1), check_errmsg('bad value for -V'), extra_files(['T17720.hs']),
- only_ways(['normal'])],
+ only_ways(['normal']),
+ js_broken(22261)],
multimod_compile_and_run,
- ['T17720', '-rtsopts']) \ No newline at end of file
+ ['T17720', '-rtsopts'])
diff --git a/testsuite/tests/rts/flags/all.T b/testsuite/tests/rts/flags/all.T
index e60e58f0c1..65de43681a 100644
--- a/testsuite/tests/rts/flags/all.T
+++ b/testsuite/tests/rts/flags/all.T
@@ -1,3 +1,5 @@
+setTestOpts(js_skip) # JS backend doesn't support native RTS flags
+
# We ignore ways which depend on passing RTS arguments for simplicity and only
# run in normal way.
diff --git a/testsuite/tests/rts/linker/T11223/all.T b/testsuite/tests/rts/linker/T11223/all.T
index 1fc09e3cfd..e58ca4afc8 100644
--- a/testsuite/tests/rts/linker/T11223/all.T
+++ b/testsuite/tests/rts/linker/T11223/all.T
@@ -14,12 +14,14 @@ def normalise_duplicate_errmsg( msg ):
test('T11223_simple_link',
[extra_files(['foo.c', 'foo.hs']),
- when(ghc_dynamic(), skip)],
+ when(ghc_dynamic(), skip),
+ req_c],
makefile_test, ['t_11223_simple_link'])
test('T11223_simple_link_lib',
[extra_files(['foo.c', 'foo.hs']),
- when(ghc_dynamic(), skip)],
+ when(ghc_dynamic(), skip),
+ req_c],
makefile_test, ['t_11223_simple_link_lib'])
# I'm ignoring the output since for this particular invocation normalise_errmsg
@@ -32,32 +34,38 @@ test('T11223_simple_duplicate',
test('T11223_simple_duplicate_lib',
[extra_files(['bar.c', 'foo.c', 'foo.hs']),
when(platform('i386-unknown-mingw32'), expect_broken(13515)),
- when(ghc_dynamic(), skip), normalise_errmsg_fun(normalise_duplicate_errmsg)],
+ when(ghc_dynamic(), skip), normalise_errmsg_fun(normalise_duplicate_errmsg),
+ req_c],
makefile_test, ['t_11223_simple_duplicate_lib'])
test('T11223_simple_unused_duplicate_lib',
[extra_files(['bar.c', 'foo.c', 'foo.hs']),
- when(ghc_dynamic(), skip)],
+ when(ghc_dynamic(), skip),
+ req_c],
makefile_test, ['t_11223_simple_unused_duplicate_lib'])
test('T11223_link_order_a_b_succeed',
[extra_files(['bar.c', 'foo.c', 'foo2.hs']),
- when(ghc_dynamic(), skip)],
+ when(ghc_dynamic(), skip),
+ req_c],
makefile_test, ['t_11223_link_order_a_b_succeed'])
test('T11223_link_order_b_a_succeed',
[extra_files(['bar.c', 'foo.c', 'foo2.hs']),
- when(ghc_dynamic(), skip)],
+ when(ghc_dynamic(), skip),
+ req_c],
makefile_test, ['t_11223_link_order_b_a_succeed'])
test('T11223_link_order_a_b_2_fail',
[extra_files(['bar.c', 'foo.c', 'foo3.hs']),
- when(ghc_dynamic(), skip), normalise_errmsg_fun(normalise_duplicate_errmsg)],
+ when(ghc_dynamic(), skip), normalise_errmsg_fun(normalise_duplicate_errmsg),
+ req_c],
makefile_test, ['t_11223_link_order_a_b_2_fail'])
test('T11223_link_order_b_a_2_succeed',
[extra_files(['bar.c', 'foo.c', 'foo3.hs']),
- when(ghc_dynamic(), skip)],
+ when(ghc_dynamic(), skip),
+ req_c],
makefile_test, ['t_11223_link_order_b_a_2_succeed'])
# Weak Symbols are not currently implemented. So Disable all the tests
diff --git a/testsuite/tests/rts/linker/all.T b/testsuite/tests/rts/linker/all.T
index 4387bc2337..5cbf1c2091 100644
--- a/testsuite/tests/rts/linker/all.T
+++ b/testsuite/tests/rts/linker/all.T
@@ -20,6 +20,7 @@ test('section_alignment',
# Test to see if linker scripts link properly to real ELF files
test('T2615',
[extra_files(['libfoo_T2615.c', 'libfoo_script_T2615.so']),
+ js_broken(22374),
when(opsys('mingw32'), skip),
# OS X doesn't seem to support linker scripts
when(opsys('darwin'), skip),
@@ -75,9 +76,13 @@ test('T5435_v_gcc',
makefile_test, ['T5435_v_gcc'])
test('T5435_dyn_asm',
[extra_files(['T5435.hs', 'T5435_asm.c']),
+ js_skip, # dynamic linking not supported by the JS backend
check_stdout(checkDynAsm)],
makefile_test, ['T5435_dyn_asm'])
-test('T5435_dyn_gcc', extra_files(['T5435.hs', 'T5435_gcc.c']) , makefile_test, ['T5435_dyn_gcc'])
+test('T5435_dyn_gcc',
+ [extra_files(['T5435.hs', 'T5435_gcc.c']),
+ js_skip], # dynamic linking not supported by the JS backend
+ makefile_test, ['T5435_dyn_gcc'])
######################################
test('linker_unload',
@@ -94,12 +99,15 @@ test('linker_unload_native',
######################################
test('linker_error1', [extra_files(['linker_error.c']),
+ js_skip, # dynamic linking not supported by the JS backend
ignore_stderr], makefile_test, ['linker_error1'])
test('linker_error2', [extra_files(['linker_error.c']),
+ js_skip, # dynamic linking not supported by the JS backend
ignore_stderr], makefile_test, ['linker_error2'])
test('linker_error3', [extra_files(['linker_error.c']),
+ js_skip, # dynamic linking not supported by the JS backend
ignore_stderr], makefile_test, ['linker_error3'])
######################################
@@ -107,6 +115,7 @@ test('rdynamic', [ unless(opsys('linux') or opsys('mingw32'), skip)
# this needs runtime infrastructure to do in ghci:
# '-rdynamic' ghc, load modules only via dlopen(RTLD_BLOBAL) and more.
, omit_ways(['ghci'])
+ , js_broken(22374)
],
compile_and_run, ['-rdynamic -package ghc'])
diff --git a/testsuite/tests/rts/pause-resume/all.T b/testsuite/tests/rts/pause-resume/all.T
index 88c6f6e483..cbbc057eb5 100644
--- a/testsuite/tests/rts/pause-resume/all.T
+++ b/testsuite/tests/rts/pause-resume/all.T
@@ -1,25 +1,30 @@
test('pause_resume_via_safe_ffi',
[ only_ways(['threaded1', 'threaded2'])
+ , req_c
, extra_files(['pause_resume.c','pause_resume.h'])
],
multi_compile_and_run, ['pause_resume_via_safe_ffi', [('pause_resume.c','')], ''])
test('pause_resume_via_pthread',
[ only_ways(['threaded1', 'threaded2'])
+ , req_c
, extra_files(['pause_resume.c','pause_resume.h'])
],
multi_compile_and_run, ['pause_resume_via_pthread', [('pause_resume.c','')], ''])
test('pause_resume_via_safe_ffi_concurrent',
[ only_ways(['threaded1', 'threaded2'])
+ , req_c
, extra_files(['pause_resume.c','pause_resume.h'])
],
multi_compile_and_run, ['pause_resume_via_safe_ffi_concurrent', [('pause_resume.c','')], ''])
test('pause_and_use_rts_api',
[ only_ways(['threaded1', 'threaded2'])
+ , req_c
, extra_files(['pause_resume.c','pause_resume.h'])
],
multi_compile_and_run, ['pause_and_use_rts_api', [('pause_resume.c','')], ''])
test('list_threads_and_misc_roots',
[ only_ways(['threaded1', 'threaded2'])
+ , req_c
, extra_files(['list_threads_and_misc_roots_c.c','list_threads_and_misc_roots_c.h'])
],
- multi_compile_and_run, ['list_threads_and_misc_roots', [('list_threads_and_misc_roots_c.c','')], '']) \ No newline at end of file
+ multi_compile_and_run, ['list_threads_and_misc_roots', [('list_threads_and_misc_roots_c.c','')], ''])
diff --git a/testsuite/tests/rts/pause-resume/shouldfail/all.T b/testsuite/tests/rts/pause-resume/shouldfail/all.T
index f778f8a257..8b11004b3e 100644
--- a/testsuite/tests/rts/pause-resume/shouldfail/all.T
+++ b/testsuite/tests/rts/pause-resume/shouldfail/all.T
@@ -6,18 +6,21 @@ test('unsafe_rts_pause',
test('rts_lock_when_paused',
[ only_ways(['threaded1', 'threaded2'])
, exit_code(1)
+ , req_c
, extra_files(['rts_pause_lock.c','rts_pause_lock.h'])
],
multi_compile_and_run, ['rts_lock_when_paused', [('rts_pause_lock.c','')], ''])
test('rts_pause_when_locked',
[ only_ways(['threaded1', 'threaded2'])
, exit_code(1)
+ , req_c
, extra_files(['rts_pause_lock.c','rts_pause_lock.h'])
],
multi_compile_and_run, ['rts_pause_when_locked', [('rts_pause_lock.c','')], ''])
test('rts_double_pause',
[ only_ways(['threaded1', 'threaded2'])
, exit_code(1)
+ , req_c
, extra_files(['rts_pause_lock.c','rts_pause_lock.h'])
],
multi_compile_and_run, ['rts_double_pause', [('rts_pause_lock.c','')], ''])
diff --git a/testsuite/tests/safeHaskell/check/pkg01/all.T b/testsuite/tests/safeHaskell/check/pkg01/all.T
index fd23b2d362..712a91d58d 100644
--- a/testsuite/tests/safeHaskell/check/pkg01/all.T
+++ b/testsuite/tests/safeHaskell/check/pkg01/all.T
@@ -31,7 +31,8 @@ test('safePkg01',
normalise_errmsg_fun(ignoreLdOutput, normalise_errmsg),
normalise_version("array", "ghc-bignum", "bytestring",
"base", "deepseq", "ghc-prim"),
- normalise_fun(normalise_errmsg)],
+ normalise_fun(normalise_errmsg),
+ js_skip],
run_command, ['$MAKE -s --no-print-directory safePkg01 ' + make_args])
# Fail since we enable package trust
@@ -52,57 +53,66 @@ test('ImpSafe03',
test('ImpSafe04', normalise_version('base'), compile_fail, ['-fpackage-trust -distrust base'])
test('ImpSafeOnly01',
- [extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
+ [js_broken(22350),
+ extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
pre_cmd('$MAKE -s --no-print-directory mkPackageDatabase.ImpSafeOnly01 ' + make_args)],
compile,
['-fpackage-trust -package-db pdb.ImpSafeOnly01/local.db -trust base'])
test('ImpSafeOnly02',
- [extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
+ [js_broken(22350),
+ extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
pre_cmd('$MAKE -s --no-print-directory mkPackageDatabase.ImpSafeOnly02 ' + make_args)],
compile,
['-fpackage-trust -package-db pdb.ImpSafeOnly02/local.db -trust base -trust safePkg01'])
# Fail since we enable package trust (and still need safePkg01 trusted)
test('ImpSafeOnly03',
- [extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
+ [js_broken(22350),
+ extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
pre_cmd('$MAKE -s --no-print-directory mkPackageDatabase.ImpSafeOnly03 ' + make_args)],
compile_fail,
['-fpackage-trust -package-db pdb.ImpSafeOnly03/local.db -trust base'])
# Succeed since we don't enable package trust
test('ImpSafeOnly04',
- [extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
+ [js_broken(22350),
+ extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
pre_cmd('$MAKE -s --no-print-directory mkPackageDatabase.ImpSafeOnly04 ' + make_args)],
compile, ['-package-db pdb.ImpSafeOnly04/local.db -trust base'])
# fail due to missing trust of safePkg01, next test succeeds.
test('ImpSafeOnly05',
- [extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
+ [js_broken(22350),
+ extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
pre_cmd('$MAKE -s --no-print-directory mkPackageDatabase.ImpSafeOnly05 ' + make_args)],
compile_fail,
['-fpackage-trust -package-db pdb.ImpSafeOnly05/local.db -trust base'])
test('ImpSafeOnly06',
- [extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
+ [js_broken(22350),
+ extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
pre_cmd('$MAKE -s --no-print-directory mkPackageDatabase.ImpSafeOnly06 ' + make_args)],
compile,
['-fpackage-trust -package-db pdb.ImpSafeOnly06/local.db -trust base -trust safePkg01'])
# fail due to missing trust
test('ImpSafeOnly07',
- [extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
+ [js_broken(22350),
+ extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
pre_cmd('$MAKE -s --no-print-directory mkPackageDatabase.ImpSafeOnly07 ' + make_args),
normalise_version("bytestring", "base")],
compile_fail,
['-fpackage-trust -package-db pdb.ImpSafeOnly07/local.db -trust safePkg01 -distrust bytestring'])
test('ImpSafeOnly08',
- [extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
+ [js_broken(22350),
+ extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
pre_cmd('$MAKE -s --no-print-directory mkPackageDatabase.ImpSafeOnly08 ' + make_args),
normalise_version("bytestring", "base")],
compile_fail,
['-fpackage-trust -package-db pdb.ImpSafeOnly08/local.db -trust safePkg01'])
test('ImpSafeOnly09',
- [extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
+ [js_broken(22350),
+ extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
pre_cmd('$MAKE -s --no-print-directory mkPackageDatabase.ImpSafeOnly09 ' + make_args),
normalise_version("bytestring")],
compile_fail,
@@ -110,7 +120,8 @@ test('ImpSafeOnly09',
# finally succeed
test('ImpSafeOnly10',
- [extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
+ [js_broken(22350),
+ extra_files(['M_SafePkg.hs', 'M_SafePkg2.hs', 'M_SafePkg3.hs', 'M_SafePkg4.hs', 'M_SafePkg5.hs', 'M_SafePkg6.hs', 'M_SafePkg7.hs', 'M_SafePkg8.hs', 'Setup.hs', 'p.cabal']),
pre_cmd('$MAKE -s --no-print-directory mkPackageDatabase.ImpSafeOnly10 ' + make_args)],
compile,
['-fpackage-trust -package-db pdb.ImpSafeOnly10/local.db -trust safePkg01 -trust base -trust bytestring'])
diff --git a/testsuite/tests/showIface/all.T b/testsuite/tests/showIface/all.T
index 0de1ae6e6c..da691a642c 100644
--- a/testsuite/tests/showIface/all.T
+++ b/testsuite/tests/showIface/all.T
@@ -7,7 +7,7 @@ test('DocsInHiFile1',
makefile_test, ['DocsInHiFile1'])
test('T17871', [extra_files(['T17871a.hs'])], multimod_compile, ['T17871', '-v0'])
test('DocsInHiFileTH',
- extra_files(['DocsInHiFileTHExternal.hs', 'DocsInHiFileTH.hs']),
+ [extra_files(['DocsInHiFileTHExternal.hs', 'DocsInHiFileTH.hs']), js_broken(22261)],
makefile_test, ['DocsInHiFileTH'])
test('NoExportList',
normal,
diff --git a/testsuite/tests/simplCore/should_compile/all.T b/testsuite/tests/simplCore/should_compile/all.T
index 1622c97766..321cb046b9 100644
--- a/testsuite/tests/simplCore/should_compile/all.T
+++ b/testsuite/tests/simplCore/should_compile/all.T
@@ -69,7 +69,7 @@ test('T4306',
makefile_test, ['T4306'])
test('T4201',
- normal,
+ js_skip, # Test prints NCG codegen info (LFI, etc.)
makefile_test, ['T4201'])
test('T3772',
@@ -151,7 +151,8 @@ test('T7702',
# a large effect on allocation which is hard to separate from the
# allocation done by the plugin... but a regression allocates > 90mb
collect_compiler_stats('peak_megabytes_allocated',70),
- when(opsys('mingw32'), fragile_for(16799, ['normal']))
+ when(opsys('mingw32'), fragile_for(16799, ['normal'])),
+ js_skip
],
compile,
['-v0 -package-db T7702plugin/pkg.T7702/local.package.conf -fplugin T7702Plugin -package T7702plugin ' + config.plugin_way_flags])
@@ -176,7 +177,7 @@ test('T5996',
normal,
makefile_test, ['T5996'])
test('T8537', normal, compile, [''])
-test('T8832', normal, makefile_test, ['T8832'])
+test('T8832', js_skip, makefile_test, ['T8832'])
test('T8848', normal, makefile_test, ['T8848'])
test('T8848a', only_ways(['optasm']), compile, ['-ddump-rules'])
test('T8331', only_ways(['optasm']), compile, ['-ddump-rules'])
@@ -198,7 +199,7 @@ test('T10083',
makefile_test, ['T10083'])
test('T10689', normal, compile, [''])
test('T11155',
- normal,
+ js_broken(22261),
makefile_test, ['T11155'])
test('T11232', normal, compile, ['-O2'])
test('T11562', normal, compile, ['-O2'])
@@ -237,7 +238,7 @@ test('T13170', only_ways(['optasm']), compile, ['-dcore-lint'])
test('T13317',
normal,
makefile_test, ['T13317'])
-test('T13340', normal, makefile_test, ['T13340'])
+test('T13340', js_skip, makefile_test, ['T13340'])
test('T13338', only_ways(['optasm']), compile, ['-dcore-lint'])
test('T13367', normal, makefile_test, ['T13367'])
test('T13417', normal, compile, ['-O'])
diff --git a/testsuite/tests/tcplugins/all.T b/testsuite/tests/tcplugins/all.T
index c371deaaa8..cf1fc211a6 100644
--- a/testsuite/tests/tcplugins/all.T
+++ b/testsuite/tests/tcplugins/all.T
@@ -1,3 +1,4 @@
+setTestOpts(js_broken(22261))
# See NullaryPlugin.hs for a description of this plugin.
test('TcPlugin_Nullary'
diff --git a/testsuite/tests/typecheck/T13168/all.T b/testsuite/tests/typecheck/T13168/all.T
index 5c4c5e8aa3..27a9a6cb2b 100644
--- a/testsuite/tests/typecheck/T13168/all.T
+++ b/testsuite/tests/typecheck/T13168/all.T
@@ -1,3 +1,3 @@
test('T13168',
- [extra_files(['package1', 'package2', 'Setup.hs'])],
+ [extra_files(['package1', 'package2', 'Setup.hs']), js_broken(22352)],
makefile_test, [])
diff --git a/testsuite/tests/typecheck/bug1465/all.T b/testsuite/tests/typecheck/bug1465/all.T
index eef85925c6..5578920ef8 100644
--- a/testsuite/tests/typecheck/bug1465/all.T
+++ b/testsuite/tests/typecheck/bug1465/all.T
@@ -1 +1 @@
-test('bug1465', [extra_files(['B1.hs', 'B2.hs', 'C.hs', 'v1/', 'v2/'])], makefile_test, [])
+test('bug1465', [extra_files(['B1.hs', 'B2.hs', 'C.hs', 'v1/', 'v2/']), js_broken(22352)], makefile_test, [])
diff --git a/testsuite/tests/typecheck/should_compile/all.T b/testsuite/tests/typecheck/should_compile/all.T
index 876bcc0dda..6413034c05 100644
--- a/testsuite/tests/typecheck/should_compile/all.T
+++ b/testsuite/tests/typecheck/should_compile/all.T
@@ -490,7 +490,7 @@ test('T10592', normal, compile, [''])
test('T11305', normal, compile, [''])
test('T11254', normal, compile, [''])
test('T11379', normal, compile, [''])
-test('T11462', normal, multi_compile,
+test('T11462', js_broken(22261), multi_compile,
[None, [('T11462_Plugin.hs', '-package ghc'), ('T11462.hs', '')],
'-dynamic' if have_dynamic() else ''])
test('T11480', normal, compile, [''])
@@ -558,7 +558,7 @@ test('T11723', normal, compile, [''])
test('T12987', normal, compile, [''])
test('T11736', normal, compile, [''])
test('T13248', expect_broken(13248), compile, [''])
-test('T11525', normal, multi_compile,
+test('T11525', js_broken(22261), multi_compile,
[None, [('T11525_Plugin.hs', '-package ghc'), ('T11525.hs', '')],
'-dynamic' if have_dynamic() else ''])
test('T12923_1', normal, compile, [''])
@@ -586,7 +586,7 @@ test('T13651a', normal, compile, [''])
test('T13680', normal, compile, [''])
test('T13785', normal, compile, [''])
test('T13804', normal, compile, [''])
-test('T13822', normal, compile, [''])
+test('T13822', js_broken(22364), compile, [''])
test('T13848', normal, compile, [''])
test('T13871', normal, compile, [''])
test('T13879', normal, compile, [''])
diff --git a/testsuite/tests/typecheck/should_fail/all.T b/testsuite/tests/typecheck/should_fail/all.T
index ab7821398a..8d3af674ab 100644
--- a/testsuite/tests/typecheck/should_fail/all.T
+++ b/testsuite/tests/typecheck/should_fail/all.T
@@ -411,8 +411,10 @@ test('T11948', normal, compile_fail, [''])
test('T11990a', normal, compile_fail, [''])
test('T11990b', normal, compile_fail, [''])
test('T12035', [], multimod_compile_fail, ['T12035', '-v0'])
-test('T12035j', [extra_files(['T12035.hs', 'T12035a.hs', 'T12035.hs-boot']),
- req_smp], multimod_compile_fail, ['T12035', '-j2 -v0'])
+test('T12035j', [ extra_files(['T12035.hs', 'T12035a.hs', 'T12035.hs-boot'])
+ , req_smp
+ , js_broken(22261)
+ ], multimod_compile_fail, ['T12035', '-j2 -v0'])
test('T12045b', normal, compile_fail, [''])
test('T12045c', normal, compile_fail, [''])
test('T12063', [expect_broken(12063)], multimod_compile_fail, ['T12063', '-v0'])
diff --git a/testsuite/tests/typecheck/testeq1/test.T b/testsuite/tests/typecheck/testeq1/test.T
index bd235315ac..9000e8f640 100644
--- a/testsuite/tests/typecheck/testeq1/test.T
+++ b/testsuite/tests/typecheck/testeq1/test.T
@@ -1,4 +1,6 @@
-test('typecheck.testeq1', [extra_files(['FakePrelude.hs', 'Main.hs', 'TypeCast.hs', 'TypeEq.hs']),
- when(fast(), skip)], multimod_compile_and_run,
+test('typecheck.testeq1', [ extra_files(['FakePrelude.hs', 'Main.hs', 'TypeCast.hs', 'TypeEq.hs'])
+ , when(fast(), skip)
+ , js_broken(22355)
+ ], multimod_compile_and_run,
['Main', '-v0'])
diff --git a/testsuite/tests/unboxedsums/module/all.T b/testsuite/tests/unboxedsums/module/all.T
index a3bd68e652..9850861d07 100644
--- a/testsuite/tests/unboxedsums/module/all.T
+++ b/testsuite/tests/unboxedsums/module/all.T
@@ -1,2 +1,2 @@
-test('sum_mod', [normalise_slashes, extra_files(['Lib.hs', 'Main.hs'])],
+test('sum_mod', [normalise_slashes, extra_files(['Lib.hs', 'Main.hs']), js_broken(22261)],
run_command, ['$MAKE -s main --no-print-director'])
diff --git a/testsuite/tests/unlifted-datatypes/should_compile/all.T b/testsuite/tests/unlifted-datatypes/should_compile/all.T
index d8c3eeb457..13835fe06b 100644
--- a/testsuite/tests/unlifted-datatypes/should_compile/all.T
+++ b/testsuite/tests/unlifted-datatypes/should_compile/all.T
@@ -1,4 +1,4 @@
test('UnlDataMonoSigs', normal, compile, [''])
-test('UnlDataPolySigs', normal, compile, [''])
+test('UnlDataPolySigs', js_broken(22360), compile, [''])
test('UnlDataFams', normal, compile, [''])
-test('UnlDataUsersGuide', normal, compile, [''])
+test('UnlDataUsersGuide', js_broken(22360), compile, [''])
diff --git a/testsuite/tests/utils/should_run/all.T b/testsuite/tests/utils/should_run/all.T
index d3607e6590..765daf9823 100644
--- a/testsuite/tests/utils/should_run/all.T
+++ b/testsuite/tests/utils/should_run/all.T
@@ -1,2 +1 @@
-test('T15953', [ignore_stdout], makefile_test, [])
-
+test('T15953', [ignore_stdout, js_skip], makefile_test, [])