# Copyright 2016 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. [ [ALWAYS, { 'skip-stack-guard-page': [PASS, ['((arch == ppc or arch == ppc64 or arch == s390 or arch == s390x) and simulator_run)', SKIP]], # Missing rebase in the proposal repository. 'proposals/js-types/table': [FAIL], # "data" is supposed to fail for "data segment does not fit"; missing rebase # on https://github.com/WebAssembly/spec/commit/7fa2f20a. 'proposals/memory64/data': [FAIL], # "elem" is supposed to fail for "elements segment does not fit"; missing # rebase on https://github.com/WebAssembly/spec/commit/7fa2f20a. 'proposals/memory64/elem': [FAIL], # "imports" is supposed to fail for "multiple tables"; missing rebase on # https://github.com/WebAssembly/spec/commit/7fa2f20a. 'proposals/memory64/imports': [FAIL], # "linking" is supposed to fail for "elements segment does not fit"; missing # rebase on https://github.com/WebAssembly/spec/commit/7fa2f20a. 'proposals/memory64/linking': [FAIL], # "table" is supposed to fail for "multiple tables"; missing rebase on # https://github.com/WebAssembly/spec/commit/7fa2f20a. 'proposals/memory64/table': [FAIL], # "unreached-invalid" is supposed to fail for "type mismatch"; missing rebase # on https://github.com/WebAssembly/spec/commit/7fa2f20a. 'proposals/memory64/unreached-invalid': [FAIL], 'proposals/gc/imports': [FAIL], 'proposals/extended-const/imports': [FAIL], 'proposals/js-types/imports': [FAIL], 'proposals/tail-call/imports': [FAIL], # TODO(wasm): Roll newest tests into "js-types" repository. 'proposals/js-types/globals': [FAIL], # Tests that need to run sequentially (e.g. due to memory consumption). 'simd_f32x4*': [PASS, HEAVY], 'simd_f64x2*': [PASS, HEAVY], 'f32*': [PASS, HEAVY], 'f64*': [PASS, HEAVY], # TODO(https://issues.chromium.org/342316792) Failing test after spec test update 'proposals/tail-call/memory': [FAIL], 'proposals/js-types/memory': [FAIL], 'proposals/exception-handling/memory': [FAIL], 'proposals/extended-const/memory': [FAIL], 'proposals/js-promise-integration/memory': [FAIL], # The function-references spec tests haven't been updated to the final # binary encoding. We don't care, because the GC tests are up to date and # we'll ship both proposals together. 'proposals/function-references/*': [SKIP], # These break with the GC proposal (because they check that certain modules # don't validate that become valid with GC). The GC proposal will update them # when it is merged into the main spec repository. 'data': [FAIL], 'proposals/extended-const/data': [FAIL], 'proposals/multi-memory/data': [FAIL], # These break with the GC proposal (because they check that certain modules # don't validate that become valid with GC). The GC proposal will update them # when it is merged into the main spec repository. # With the GC proposal global.get is a constant instruction, independent on # the type of the global. In the main spec repository, only global.get of # imported globals are allowed. 'elem': [FAIL], 'proposals/extended-const/elem': [FAIL], 'proposals/js-types/elem': [FAIL], 'proposals/multi-memory/elem': [FAIL], 'proposals/tail-call/elem': [FAIL], 'proposals/exception-handling/elem': [FAIL], 'proposals/js-promise-integration/elem': [FAIL], 'global': [FAIL], 'proposals/extended-const/global': [FAIL], # These tests need to be rebased on the multi-memory proposal once it's # merged into the main repository. They test that not more than one memory # can be declared ("memory" / "memory64") or imported ("imports"), or that # the byte for encoding the memory index is a single byte (and no LEB, # "binary"). 'binary': [FAIL], 'imports': [FAIL], 'memory': [FAIL], 'proposals/extended-const/binary': [FAIL], 'proposals/gc/binary': [FAIL], 'proposals/js-types/binary': [FAIL], 'proposals/memory64/binary': [FAIL], 'proposals/memory64/memory64': [FAIL], 'proposals/memory64/memory': [FAIL], 'proposals/tail-call/binary': [FAIL], 'proposals/exception-handling/binary': [FAIL], 'proposals/exception-handling/imports': [FAIL], # The test is incorrect as it exports a function with an exnref in the # signature, which is a runtime type error. 'proposals/exception-handling/ref_null': [FAIL] }], # ALWAYS ['arch == arm and not simulator_run', { # See https://crbug.com/v8/10938 denormals not handled correctly on ARM. 'simd_f32x4': [PASS, FAIL], 'simd_f32x4_arith': [PASS, FAIL], 'simd_f32x4_cmp': [PASS, FAIL], # This test only has 1 problematic use of f32x4.min and f32x4.div, consider # removing it from upstream, then we can run this test. 'simd_splat' : [PASS, FAIL], 'simd_f32x4_pmin_pmax' : [PASS, FAIL], }], # arch == arm and not simulator_run ['arch == mips64el or arch == mips64', { # These tests fail because mips does not support the correct NaN bit patterns. 'float_misc': [SKIP], 'float_exprs': [SKIP], 'f32': [SKIP], 'f64': [SKIP], 'f32_bitwise': [SKIP], 'f64_bitwise': [SKIP], 'proposals/reference-types/conversions': [SKIP], 'proposals/bulk-memory-operations/conversions': [SKIP], 'proposals/js-types/f32': [SKIP], 'proposals/js-types/f64': [SKIP], 'proposals/js-types/f32_bitwise': [SKIP], 'proposals/js-types/f64_bitwise': [SKIP], 'proposals/js-types/float_exprs': [SKIP], 'proposals/js-types/float_misc': [SKIP], 'proposals/js-types/conversions': [SKIP], 'proposals/bulk-memory-operations/f32': [SKIP], 'proposals/bulk-memory-operations/f64': [SKIP], 'proposals/reference-types/f32': [SKIP], 'proposals/reference-types/f64': [SKIP], 'proposals/bulk-memory-operations/float_misc': [SKIP], 'proposals/reference-types/float_misc': [SKIP], 'proposals/tail-call/f32': [SKIP], 'proposals/tail-call/f32_bitwise': [SKIP], 'proposals/tail-call/f64': [SKIP], 'proposals/tail-call/f64_bitwise': [SKIP], 'proposals/tail-call/float_exprs': [SKIP], 'proposals/tail-call/float_misc': [SKIP], 'proposals/tail-call/conversions': [SKIP], }], # 'arch == mips64el or arch == mips64' ['(arch == mips64el or arch == mips64) and not simulator_run', { # This test fail because mips does not support the correct NaN bit patterns. # But it doesn't fail in simulator. 'conversions': [SKIP], }], # '(arch == mips64el or arch == mips64) and not simulator_run' ['(arch == mips64el or arch == loong64) and simulator_run', { # These tests need larger stack size on simulator. 'skip-stack-guard-page': '--sim-stack-size=8192', 'proposals/tail-call/skip-stack-guard-page': '--sim-stack-size=8192', }], # '(arch == mips64el or arch == loong64) and simulator_run' ['arch == riscv64', { # These tests need larger stack size on simulator. 'skip-stack-guard-page': '--sim-stack-size=8192', 'proposals/tail-call/skip-stack-guard-page': '--sim-stack-size=8192', }], # 'arch == riscv64' ['arch == riscv32', { # These tests need larger stack size on simulator. 'skip-stack-guard-page': '--sim-stack-size=8192', 'proposals/tail-call/skip-stack-guard-page': '--sim-stack-size=8192', 'func': ['variant == stress', SKIP], }], # 'arch == riscv32' ['arch == ppc or arch == ppc64', { # These tests fail because ppc float min and max doesn't convert sNaN to qNaN. 'f32': [SKIP], 'f64': [SKIP], 'proposals/js-types/f32': [SKIP], 'proposals/js-types/f64': [SKIP], 'proposals/bulk-memory-operations/f32': [SKIP], 'proposals/bulk-memory-operations/f64': [SKIP], 'proposals/reference-types/f32': [SKIP], 'proposals/reference-types/f64': [SKIP], 'proposals/tail-call/f32': [SKIP], 'proposals/tail-call/f64': [SKIP], # This test fails because ppc float to double doesn't convert sNaN to qNaN. 'conversions': [SKIP], 'proposals/js-types/conversions': [SKIP], 'proposals/bulk-memory-operations/conversions': [SKIP], 'proposals/reference-types/conversions': [SKIP], 'proposals/tail-call/conversions': [SKIP], }], # 'arch == ppc or arch == ppc64' ['arch == s390 or arch == s390x', { # These tests fail because s390 float min and max doesn't convert sNaN to qNaN. 'f32': [SKIP], 'f64': [SKIP], 'proposals/js-types/f32': [SKIP], 'proposals/js-types/f64': [SKIP], 'proposals/bulk-memory-operations/f32': [SKIP], 'proposals/bulk-memory-operations/f64': [SKIP], 'proposals/reference-types/f32': [SKIP], 'proposals/reference-types/f64': [SKIP], 'proposals/tail-call/f32': [SKIP], 'proposals/tail-call/f64': [SKIP], }], # 'arch == s390 or arch == s390x' ############################################################################## # TODO(v8:7777): Change this once wasm is supported in jitless mode. ['not has_webassembly or variant == jitless', { '*': [SKIP], }], # not has_webassembly or variant == jitless ############################################################################## ['variant == stress_snapshot', { '*': [SKIP], # only relevant for mjsunit tests. }], # variant == stress_snapshot ############################################################################## ['no_simd_hardware == True', { 'linking': [SKIP], 'simd*': [SKIP], 'proposals/js-types/linking': [SKIP], 'proposals/multi-memory/simd_memory-multi': [SKIP], 'proposals/tail-call/simd_lane': [SKIP], 'proposals/memory64/simd_address': [SKIP], }], # no_simd_hardware == True ############################################################################## ['variant == stress', { # Spec tests are executing long enough even without stress mode. # As stress mode is unlikely to flush out bugs, skip the tests there. '*': [SKIP], }], # variant == stress ############################################################################## # Skip tests that require a large amount of virtual address space (inside the # sandbox if that is enabled) if tsan is enabled. ['tsan == True', { 'memory_copy': [SKIP], }], # tsan == True ]