summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorSylvain Henry <sylvain@haskus.fr>2022-02-10 08:24:24 +0000
committerSylvain Henry <sylvain@haskus.fr>2022-11-29 09:44:31 +0100
commitcc25d52e0f65d54c052908c7d91d5946342ab88a (patch)
tree0f35764ee3b9b0451ac999b64d2db9fa074fa3dd /testsuite
parentdef47dd32491311289bff26230b664c895f178cc (diff)
downloadhaskell-cc25d52e0f65d54c052908c7d91d5946342ab88a.tar.gz
Add Javascript backend
Add JS backend adapted from the GHCJS project by Luite Stegeman. Some features haven't been ported or implemented yet. Tests for these features have been disabled with an associated gitlab ticket. Bump array submodule Work funded by IOG. Co-authored-by: Jeffrey Young <jeffrey.young@iohk.io> Co-authored-by: Luite Stegeman <stegeman@gmail.com> Co-authored-by: Josh Meredith <joshmeredith2008@gmail.com>
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, [])