diff options
Diffstat (limited to 'testsuite')
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, []) |