blob: 5e8248b3f426cddf1f8ea00c496866ab49298e81 [file] [log] [blame]
# Copyright 2012 the V8 project authors. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
[
[ALWAYS, {
# Modules which are only meant to be imported from by other tests, not to be
# tested standalone.
'modules-skip*': [SKIP],
'harmony/modules-skip*': [SKIP],
'harmony/shadowrealm-skip*': [SKIP],
'harmony/async-module-ordinal-reset/skip*': [SKIP],
'regress/modules-skip*': [SKIP],
'wasm/exceptions-utils': [SKIP],
'wasm/gc-js-interop-helpers': [SKIP],
'wasm/gc-js-interop-export': [SKIP],
'wasm/wasm-module-builder': [SKIP],
'compiler/fast-api-helpers': [SKIP],
'typedarray-helpers': [SKIP],
# All tests in the bug directory are expected to fail.
'bugs/*': [FAIL],
##############################################################################
# Open bugs.
# Issue 3784: setters-on-elements is flaky
'setters-on-elements': [PASS, FAIL],
# https://crbug.com/v8/7697
'array-literal-feedback': [PASS, FAIL],
# https://crbug.com/v8/7775
'allocation-site-info': [SKIP],
# BUG(v8:10197)
'regress/regress-748069': [SKIP],
# https://crbug.com/1043058
# Enable once serializing a running isolate is fully implemented.
'serialize-deserialize-now': [SKIP],
# BUG(v8:9506): slow tests.
'wasm/shared-memory-worker-explicit-gc-stress': [PASS, SLOW],
'wasm/shared-memory-worker-gc': [PASS, SLOW],
'wasm/shared-memory-worker-gc-stress': [PASS, SLOW],
# https://crbug.com/1129854
'tools/log': ['arch == arm or arch == arm64', SKIP],
# https://crbug.com/v8/10948
'wasm/atomics': [PASS, ['arch == arm and not simulator_run', SKIP]],
# crbug.com/v8/12472 Stack overflow during regexp node generation.
'regress/regress-crbug-595657': [SKIP],
'regress/regress-475705': [SKIP],
# BUG(chromium:1497251): Probably some data race in the interpreter.
'regress/regress-1497251': [SKIP],
##############################################################################
# Tests where variants make no sense.
'd8/enable-tracing': [PASS, NO_VARIANTS],
'd8/d8-os': [PASS, NO_VARIANTS],
'd8/d8-performance-now': [PASS, NO_VARIANTS, ['mode != release or simulator_run', SKIP]],
'regexp-global': [PASS, NO_VARIANTS],
'regress/regress-4595': [PASS, NO_VARIANTS],
'regress/regress-crbug-491062': [PASS, NO_VARIANTS],
'third_party/regexp-pcre/regexp-pcre': [PASS, NO_VARIANTS],
'tools/compiler-trace-flags': [PASS, NO_VARIANTS],
'tools/dumpcpp': [PASS, SLOW, NO_VARIANTS, ['mode != release or system not in (linux, macos) or simulator_run or asan', SKIP]],
'tools/tickprocessor': [PASS, SLOW, NO_VARIANTS, ['mode != release or system not in (linux, macos) or simulator_run or asan', SKIP]],
# Also skip example file which is not a test.
'tools/tickprocessor-test-large': [SKIP],
# Issue 488: this test sometimes times out.
# TODO(arm): This seems to flush out a bug on arm with simulator.
'array-constructor': [PASS, SLOW, ['arch == arm and simulator_run', SKIP]],
##############################################################################
# Long-running tests.
# We really should find better solutions for these.
'es6/promise-all-overflow-1': [SKIP],
'harmony/promise-any-overflow-1': [SKIP],
'migrations': [SKIP],
'regress/regress-2073': [SKIP],
##############################################################################
# Tests verifying CHECK and ASSERT.
#
# With the official_build flag CHECK failures can't be distinguished from
# CRASH. See cctest.status for details (v8:13945).
'verify-check-false': [FAIL, NO_VARIANTS, ['official_build', CRASH]],
'verify-assert-false': [NO_VARIANTS, ['mode == release and dcheck_always_on == False', PASS], ['mode == debug', FAIL]],
##############################################################################
# Tests with different versions for release and debug.
'compiler/alloc-number': [PASS, ['mode == debug', SKIP]],
'compiler/alloc-number-debug': [PASS, ['mode == release', SKIP]],
'regress/regress-634-debug': [PASS, ['mode == release', SKIP]],
# This test variant makes only sense on arm.
'math-floor-of-div-nosudiv': [PASS, SLOW, ['arch not in [arm, arm64]', SKIP]],
# OOM flakes in isolates tests because too many largish heaps are created.
'asm/asm-heap': [PASS, NO_VARIANTS, ['isolates', SKIP]],
# Slow tests.
'array-functions-prototype-misc': [PASS, SLOW],
'asm/embenchen/*': [PASS, SLOW, NO_VARIANTS],
'asm/poppler/*': [PASS, SLOW, NO_VARIANTS],
'compiler/deopt-pretenure': [PASS, SLOW],
'compiler/regress-9017': [PASS, SLOW],
'compiler/regress-crbug-11564': [PASS, SLOW],
'copy-on-write-assert': [PASS, SLOW],
'es6/promise-all-overflow-2': [PASS, SLOW, ['arch != x64', SKIP]],
'es6/typedarray-construct-offset-not-smi': [PASS, SLOW],
'harmony/promise-any-overflow-2': [PASS, SLOW, ['arch != x64', SKIP]],
'harmony/futex': [PASS, SLOW],
'harmony/regexp-property-script-extensions': [PASS, SLOW],
'harmony/sharedarraybuffer-stress': [PASS, SLOW],
'harmony/sharedarraybuffer-worker-gc-stress': [PASS, SLOW],
'ignition/regress-599001-verifyheap': [PASS, SLOW],
'large-object-literal-slow-elements': [PASS, SLOW],
'math-floor-of-div': [PASS, SLOW],
'md5': [PASS, SLOW],
'readonly': [PASS, SLOW],
'regress/regress-1122': [PASS, SLOW],
'regress/regress-605470': [PASS, SLOW],
'regress/regress-655573': [PASS, SLOW],
'regress/regress-1200351': [PASS, SLOW],
'regress/regress-crbug-808192': [PASS, SLOW, NO_VARIANTS, ['arch not in (ia32, x64)', SKIP], ['tsan', SKIP]],
'regress/regress-crbug-918301': [PASS, SLOW, NO_VARIANTS, ['mode != release or dcheck_always_on', SKIP], ['(arch == arm or arch == arm64) and simulator_run', SKIP]],
'regress/regress-crbug-1276923': [PASS, SLOW],
'regress/wasm/regress-810973': [PASS, SLOW],
'sealed-array-reduce': [PASS, SLOW],
'string-replace-gc': [PASS, SLOW],
'tools/processor': [PASS, SLOW],
'turboshaft/regress-380487911': [PASS, SLOW, NO_VARIANTS, ['arch != x64', SKIP], ['tsan', SKIP]],
'wasm/embenchen/*': [PASS, SLOW],
'wasm/futex': [PASS, SLOW],
'wasm/unreachable-validation': [PASS, SLOW],
'wasm/atomics-stress': [PASS, SLOW, NO_VARIANTS, ['mode != release or dcheck_always_on', SKIP], ['tsan', SKIP]],
'wasm/atomics64-stress': [PASS, SLOW, NO_VARIANTS, ['mode != release or dcheck_always_on', SKIP], ['tsan', SKIP]],
'wasm/atomics-memory64': [PASS, SLOW, NO_VARIANTS, ['mode != release or dcheck_always_on', SKIP], ['tsan', SKIP]],
'wasm/compare-exchange-stress': [PASS, SLOW, NO_VARIANTS],
'wasm/compare-exchange64-stress': [PASS, SLOW, NO_VARIANTS],
'wasm/code-space-overflow': [PASS, SLOW, NO_VARIANTS, ['gc_stress == True or (simulator_run and mode == debug)', SKIP]],
'wasm/max-wasm-functions': [PASS, SLOW, ['mode != release or dcheck_always_on or simulator_run or verify_predictable', SKIP], ['tsan', SKIP]],
# Very slow on ARM, MIPS, RISCV and LOONG, contains no architecture dependent code.
'unicode-case-overoptimization0': [PASS, NO_VARIANTS, ['arch in (arm, arm64, mips64el, mips64, riscv64, riscv32, loong64)', SKIP]],
'unicode-case-overoptimization1': [PASS, NO_VARIANTS, ['arch in (arm, arm64, mips64el, mips64, riscv64, riscv32, loong64)', SKIP]],
'regress/regress-3976': [PASS, NO_VARIANTS, ['arch in (arm, arm64, mips64el, mips64, riscv64, riscv32, loong64)', SKIP]],
'regress/regress-crbug-482998': [PASS, NO_VARIANTS, ['arch in (arm, arm64, mips64el, riscv64, riscv32, loong64)', SKIP]],
'regress/regress-740784': [PASS, NO_VARIANTS, ['arch in (arm, arm64, mips64el, riscv64,riscv32, loong64)', SKIP]],
# TODO(bmeurer): Flaky timeouts (sometimes <1s, sometimes >3m).
'unicodelctest': [PASS, NO_VARIANTS],
'unicodelctest-no-optimization': [PASS, NO_VARIANTS],
# Test is only enabled on ASAN. Takes too long on many other bots.
# Also disabled on Mac ASAN for https://crbug.com/v8/11437.
'regress/regress-crbug-9161': [PASS, SLOW, ['not asan or system == macos', SKIP]],
# OOM with too many isolates/memory objects (https://crbug.com/1010272)
# Predictable tests fail due to race between postMessage and GrowMemory
'regress/wasm/regress-1010272': [PASS, HEAVY, NO_VARIANTS, ['system == android', SKIP], ['verify_predictable', SKIP]],
# Only makes sense without i18n.
'es6/unicode-regexp-ignore-case-noi18n':
[['not i18n', PASS], ['i18n', FAIL]],
# Needs to be adapted after changes to Function constructor. chromium:1065094
'cross-realm-filtering': [SKIP],
# Tests that need to run sequentially (e.g. due to memory consumption).
'd8/d8-worker-shutdown*': [PASS, HEAVY],
'huge-typedarrays': [PASS, HEAVY],
'json2': [PASS, SLOW, HEAVY],
'regress/regress-678917': [PASS, HEAVY],
'regress/regress-779407': [PASS, HEAVY],
'regress/regress-852258': [PASS, HEAVY],
'regress/regress-1034322': [PASS, HEAVY, NO_VARIANTS, ['mode != release', SKIP]],
'regress/regress-1320641': [PASS, HEAVY],
'regress/regress-1447343': [PASS, HEAVY],
'wasm/grow-huge-memory': [PASS, HEAVY],
'wasm/huge-memory': [PASS, HEAVY],
'wasm/many-modules': [PASS, HEAVY],
'wasm/memory64': [PASS, HEAVY],
'wasm/simd-lane-memory64': [PASS, HEAVY],
'wasm/stringrefs-regressions': [PASS, HEAVY],
'wasm/table': [PASS, HEAVY],
'wasm/table-grow': [PASS, HEAVY],
'es6/big-weakmap': [PASS, HEAVY],
# TODO(v8:10915): Fails with --future.
'harmony/weakrefs/stress-finalizationregistry-dirty-enqueue': [SKIP],
# Needs deterministic test helpers for concurrent maglev tiering.
# TODO(jgruber,v8:7700): Implement ASAP.
'maglev/18': [SKIP],
# --perf-prof is only available on Linux, and --perf-prof-unwinding-info only
# on selected architectures.
'regress/wasm/regress-1032753': [PASS, ['system != linux', SKIP]],
'regress/regress-913844': [PASS,
['system != linux or arch not in (arm, arm64, x64, s390x, ppc64)', SKIP]],
# TODO(v8:12783): Turboshaft instruction selection not ported to these platforms yet.
'wasm/turboshaft/instruction-selection': [PASS, ['arch in [riscv32]', SKIP]],
# Disabled since v8_flags.always_use_string_forwarding_table is now READONLY.
'string-forwarding-table': [SKIP],
}], # ALWAYS
################################################################################
['mode == release', {
# Slow tests in release mode.
'wasm/many-modules': [PASS, SLOW],
}],
##############################################################################
['mode == debug', {
# Skip slow tests in debug mode.
'array-functions-prototype-misc': [SKIP],
'compiler/regress-808472': [SKIP],
'compiler/regress-1161357': [SKIP],
'es6/promise-all-overflow-2': [SKIP],
'generated-transition-stub': [SKIP],
'regress/regress-524': [SKIP],
'regress/regress-4595': [SKIP],
'regress/regress-430201': [SKIP],
'regress/regress-430201b': [SKIP],
'regress/regress-716044': [SKIP],
'regress/regress-crbug-217858': [SKIP],
'regress/regress-crbug-808192': [SKIP],
'regress/regress-crbug-941743': [SKIP],
'regress/regress-create-exception': [SKIP],
# These tests run out of stack space in debug mode.
'big-array-literal': [SKIP],
'big-object-literal': [SKIP],
# Too slow in debug mode BUG(v8:9506): times out.
'wasm/shared-memory-worker-explicit-gc-stress': [SKIP],
'wasm/shared-memory-worker-gc-stress': [SKIP],
# For these tests, making them as slow is enough:
'numops-fuzz-part*': [SLOW],
# worker creation/shutdown is very slow in debug mode
'd8/d8-worker-shutdown*': [SLOW],
# BUG(v8:11745) The test allocates too much memory, making it slow on debug.
'compiler/regress-crbug-11564': [SKIP],
'regress/regress-992389*': [PASS, SLOW],
'es6/block-conflicts-sloppy': [PASS, SLOW],
'es6/block-conflicts': [PASS, SLOW],
'es6/typedarray-of': [PASS, SLOW],
}], # mode == debug
['novfp3', {
'asm/embenchen/box2d': [SKIP],
'asm/embenchen/zlib': [SKIP],
'asm/embenchen/memops': [SKIP],
'asm/embenchen/lua_binarytrees': [SKIP],
}], # novfp3
################################################################################
['not memory_corruption_api', {
# Sandbox tests require the memory corruption API.
'sandbox/*': [SKIP],
}],
##############################################################################
# TODO(ahaas): Port multiple return values to MIPS.
['arch in (mips64, mips64el)', {
'wasm/multi-value': [SKIP],
}],
##############################################################################
['simulator_run', {
# Skip/annotate tests that are too slow on simulators.
'random-bit-correlations': [SLOW],
'regress/regress-crbug-941743': [SKIP],
'regress/regress-crbug-1041232': [SKIP],
'regress/wasm/regress-1010272': [SKIP],
'wasm/atomics-stress': [SKIP],
'wasm/atomics64-stress': [SKIP],
'wasm/atomics-memory64': [SKIP],
# Profiler test is flaky on simulators.
'wasm/log-wasm-to-js-wrapper-callref': [SKIP],
'wasm/log-wasm-to-js-wrapper-indirect': [SKIP],
'es6/big-weakmap': [SKIP],
}], # simulator_run
##############################################################################
['gc_stress', {
# Skip tests not suitable for GC stress.
'allocation-site-info': [SKIP],
'array-constructor-feedback': [SKIP],
'array-feedback': [SKIP],
'array-literal-feedback': [SKIP],
'd8/d8-performance-now': [SKIP],
'elements-kind': [SKIP],
'elements-transition-hoisting': [SKIP],
'fast-prototype': [SKIP],
'field-type-tracking': [SKIP],
'getters-on-elements': [SKIP],
'es6/block-let-crankshaft': [SKIP],
'maglev/osr-to-tf': [SKIP],
'maglev/unstable-map-transition': [SKIP],
'opt-elements-kind': [SKIP],
'osr-elements-kind': [SKIP],
'compiler/number-divide': [SKIP],
'regress/regress-crbug-137689': [SKIP],
'regress/regress-trap-allocation-memento': [SKIP],
'regress/regress-2249': [SKIP],
'regress/regress-3709': [SKIP],
'regress/regress-4121': [SKIP],
'regress/regress-6989': [SKIP],
'compare-known-objects-slow': [SKIP],
'compiler/array-multiple-receiver-maps': [SKIP],
# Tests taking too long
'regress/regress-1122': [SKIP],
'regress/regress-353551': [SKIP],
'regress/regress-crbug-119926': [SKIP],
'regress/short-circuit': [SKIP],
'stack-traces-overflow': [SKIP],
'unicode-test': [SKIP],
'whitespaces': [SKIP],
'baseline/*': [SKIP],
'regress/regress-chromium-1194026': [SKIP],
# Unsuitable for GC stress because coverage information is lost on GC.
'code-coverage-ad-hoc': [SKIP],
'code-coverage-precise': [SKIP],
# Takes too long with TF.
'array-sort': [PASS, NO_VARIANTS],
'regress/regress-91008': [PASS, NO_VARIANTS],
'regress/regress-transcendental': [PASS, ['arch == arm64', NO_VARIANTS]],
'compiler/osr-regress-max-locals': [PASS, NO_VARIANTS],
'math-floor-of-div': [PASS, SLOW, NO_VARIANTS],
'unicodelctest': [PASS, NO_VARIANTS],
'unicodelctest-no-optimization': [PASS, NO_VARIANTS],
# TODO(jkummerow): Doesn't work correctly in GC stress.
'regress/regress-crbug-500497': [SKIP],
# Too slow for gc stress.
'asm/embenchen/box2d': [SKIP],
# Too slow for gc stress, BUG(v8:9506): times out.
'wasm/shared-memory-worker-explicit-gc-stress': [SKIP],
'wasm/shared-memory-worker-gc-stress': [SKIP],
# BUG(v8:4237)
'regress/regress-3976': [SKIP],
# Slow tests.
'array-constructor': [PASS, SLOW],
'array-splice': [PASS, SLOW],
'json': [PASS, SLOW],
'regress/asm/regress-775710': [PASS, SLOW],
'regress/regress-crbug-820312': [PASS, SLOW],
'wasm/wasm-interpreter': [PASS, SLOW],
# BUG(v8:7880): Slow tests.
'regress/regress-707066': [SKIP],
'regress/regress-446389': [SKIP],
'regress/regress-458987': [SKIP],
'es6/regress/regress-crbug-465671': [SKIP],
'regress/regress-inline-getter-near-stack-limit': [SKIP],
'es6/regress/regress-crbug-465671-null': [SKIP],
'regress/regress-148378': [SKIP],
'regress/regress-crbug-762472': [SKIP],
# BUG(v8:10035)
'compiler/deopt-array-builtins': [SKIP],
# BUG(v8:11240)
'regress/regress-v8-9267-1': [SKIP],
# BUG(v8:12561)
'spread-large-map': [SKIP],
# Flaky tests due to GC interferring with optimization.
'compiler/regress-crbug-1323114': [SKIP],
# https://crbug.com/v8/13461
'maglev/inner-function': [SKIP],
# https://crbug.com/v8/13916
'readonly': [SKIP],
# Bug(362522337)
'wasm/growable-stacks': [SKIP],
# Too slow: https://crbug.com/371893264
'harmony/regress/regress-369010108': [SKIP],
}], # 'gc_stress'
##############################################################################
['gc_stress or variant == stress_concurrent_allocation', {
# These tests check that FinalizationRegistry cleanup tasks and/or the
# clearing of WeakRefs work as expected. They use carefully triggered
# synchronous or asynchronous GCs to achieve that and they assume that
# there are no unexpected, externally triggered GCs that would interfere
# with the tests. Therefore, they are unsuitable for modes that stress
# activities which can trigger GC.
'harmony/weakrefs/cleanup': [SKIP],
'harmony/weakrefs/cleanup-is-not-a-microtask': [SKIP],
'harmony/weakrefs/cleanup-on-detached-realm': [SKIP],
'harmony/weakrefs/finalizationregistry-and-weakref': [SKIP],
'harmony/weakrefs/finalizationregistry-independent-lifetime': [SKIP],
'harmony/weakrefs/finalizationregistry-independent-lifetime-multiple': [SKIP],
'harmony/weakrefs/finalizationregistry-keeps-holdings-alive': [SKIP],
'harmony/weakrefs/finalizationregistry-scheduled-for-cleanup-multiple-times': [SKIP],
'harmony/weakrefs/multiple-dirty-finalization-groups': [SKIP],
'harmony/weakrefs/reentrant-gc-from-cleanup': [SKIP],
'harmony/weakrefs/symbol-as-weakref-target-gc': [SKIP],
'harmony/weakrefs/symbol-in-finalizationregistry': [SKIP],
'harmony/weakrefs/two-weakrefs': [SKIP],
'harmony/weakrefs/undefined-holdings': [SKIP],
'harmony/weakrefs/unregister-after-cleanup': [SKIP],
'harmony/weakrefs/unregister-before-cleanup': [SKIP],
'harmony/weakrefs/unregister-called-twice': [SKIP],
'harmony/weakrefs/unregister-inside-cleanup2': [SKIP],
'harmony/weakrefs/unregister-inside-cleanup3': [SKIP],
'harmony/weakrefs/unregister-inside-cleanup': [SKIP],
'harmony/weakrefs/unregister-many': [SKIP],
'harmony/weakrefs/unregister-when-cleanup-already-scheduled': [SKIP],
'harmony/weakrefs/weak-cell-basics': [SKIP],
'harmony/weakrefs/weakref-creation-keeps-alive': [SKIP],
'harmony/weakrefs/weakref-deref-keeps-alive': [SKIP],
}], # 'gc_stress or variant == stress_concurrent_allocation'
##############################################################################
# TODO(v8:7777): Change this once wasm is supported in jitless mode.
['not has_webassembly or (variant == jitless and not has_wasm_interpreter)', {
# Skip tests that require webassembly.
'regress/asm/*': [SKIP],
'regress/wasm/*': [SKIP],
'asm/*': [SKIP],
'wasm/*': [SKIP],
'maglev/regress-355256380': [SKIP],
'turboshaft/maglev-frontend/has-in-prototype-chain-wasm': [SKIP],
'sandbox/regress/regress-334120897': [SKIP],
'sandbox/regress/regress-349502157': [SKIP],
'sandbox/wasm-inlining-sigcheck': [SKIP],
'sandbox/wasm-signature-verification': [SKIP],
'sandbox/wasm-table-import': [SKIP],
'sandbox/wasm-table-sigcheck': [SKIP],
# Tests tracing when generating wasm in TurboFan.
'tools/compiler-trace-flags-wasm': [SKIP],
'compiler/fast-api-calls-wasm': [SKIP],
}], # not has_webassembly or (variant == jitless and not has_wasm_interpreter)
##############################################################################
['not has_webassembly', {
# This test case requires wasm. It is not in the regress/wasm subfolder
# as we want to run this test in jitless mode (where it is supposed to pass).
'regress/regress-366323504': [SKIP],
}], # not has_webassembly
##############################################################################
['not has_wasm_interpreter or variant != jitless', {
# Tests to run only with the Wasm interpreter.
'wasm/wasm-interpreter-fuzzer' : [SKIP],
'wasm/wasm-interpreter-memory*' : [SKIP],
}], # not has_wasm_interpreter or variant != jitless
##############################################################################
['not has_wasm_interpreter and variant == jitless', {
'wasm/*': [SKIP],
'regress/wasm/*': [SKIP],
}], # not has_wasm_interpreter and variant == jitless
['has_wasm_interpreter and variant == jitless', {
# Skip tests that require Wasm experimental features not supported by the
# Wasm interpreter, or that explicitly require compilation.
# --wasm-inlining
'regress/wasm/regress-crbug-1510626': [SKIP],
# --experimental-wasm-typed-funcref
'regress/wasm/regress-1364036': [SKIP],
'regress/wasm/regress-1446221': [SKIP],
'regress/wasm/regress-1449208': [SKIP],
'regress/wasm/regress-crbug-1047368': [SKIP],
'regress/wasm/regress-crbug-1463219': [SKIP],
'wasm/imported-function-types': [SKIP],
'wasm/loop-unrolling': [SKIP],
'wasm/reference-tables': [SKIP],
'wasm/test-wasm-module-builder': [SKIP],
# --experimental-wasm-type-reflection
'regress/wasm/regress-crbug-1002388': [SKIP],
'regress/wasm/regress-crbug-1006631': [SKIP],
'regress/wasm/regress-14695': [SKIP],
'regress/wasm/regress-329130358': [SKIP],
'regress/wasm/regress-336358915*': [SKIP],
'regress/wasm/regress-362539773': [SKIP],
'regress/wasm/regress-382547695': [SKIP],
'regress/wasm/regress-384974501': [SKIP],
'wasm/call-ref': [SKIP],
'wasm/exceptions-type-reflection': [SKIP],
'wasm/externref-table': [SKIP],
'wasm/js-to-js': [SKIP],
'wasm/gc-casts-subtypes': [SKIP],
'wasm/log-wasm-to-js-wrapper-callref': [SKIP],
'wasm/ref-cast-js-function': [SKIP],
'wasm/type-reflection*': [SKIP],
'wasm/wasm-to-js-tierup': [SKIP],
# --experimental-wasm-memory-control
'wasm/memory-control': [SKIP],
# --experimental-wasm-exnref
'regress/wasm/regress-14689': [SKIP],
'regress/wasm/regress-1502837': [SKIP],
'regress/wasm/regress-1507743': [SKIP],
'regress/wasm/regress-336214779': [SKIP],
'regress/wasm/regress-372261626': [SKIP],
'regress/wasm/regress-377620832': [SKIP],
'wasm/exnref*': [SKIP],
'wasm/gc-casts-exnref': [SKIP],
'wasm/gc-casts-invalid': [SKIP],
'wasm/js-wrapper-typechecks': [SKIP],
'wasm/wasm-inlining-catch-unreachable': [SKIP],
#--experimental-wasm-ref-cast-nop
'wasm/gc-experiments': [SKIP],
# --experimental-wasm-compilation-hints
'wasm/compilation-hints*': [SKIP],
# --experimental-wasm-extended-const
'wasm/extended-constants': [SKIP],
# Multiple memories
'regress/wasm/regress-1518257': [SKIP],
'regress/wasm/regress-1523740': [SKIP],
'regress/wasm/regress-343035068': [SKIP],
'regress/wasm/regress-382816108': [SKIP],
'wasm/atomic-wait-multi-memory': [SKIP],
'wasm/generate-random-module*': [SKIP],
'wasm/js-api': [SKIP],
'wasm/memory-huge-constant-index': [SKIP],
'wasm/multi-memory*': [SKIP],
# --experimental-wasm-stack-switching
'regress/wasm/regress-v8-14471': [SKIP],
'wasm/stack-switching*': [SKIP],
'wasm/growable-stacks': [SKIP],
# --experimental-wasm-stringref
'regress/wasm/regress-324475066': [SKIP],
'regress/wasm/regress-324690505': [SKIP],
'regress/wasm/regress-330580823': [SKIP],
'regress/wasm/regress-336007398': [SKIP],
'regress/wasm/regress-crbug-1463232': [SKIP],
'regress/wasm/regress-crbug-1466312': [SKIP],
'regress/wasm/regress-v8-14710': [SKIP],
'wasm/gc-casts-from-any': [SKIP],
'wasm/origin-trial-flags': [SKIP],
'wasm/reference-globals-import': [SKIP],
'wasm/reference-table-js-interop': [SKIP],
'wasm/stringref*': [SKIP],
'wasm/stringview-valuestack': [SKIP],
'wasm/turboshaft/instruction-selection': [SKIP],
# --liftoff
'regress/wasm/regress-1045737': [SKIP],
'regress/wasm/regress-1046472': [SKIP],
'regress/wasm/regress-1125951': [SKIP],
'regress/wasm/regress-1185464': [SKIP],
'regress/wasm/regress-1220855': [SKIP],
'regress/wasm/regress-14113': [SKIP],
'regress/wasm/regress-14116': [SKIP],
'regress/wasm/regress-14118': [SKIP],
'regress/wasm/regress-14171': [SKIP],
'regress/wasm/regress-864509': [SKIP],
'regress/wasm/regress-9017': [SKIP],
'regress/wasm/regress-350779988': [SKIP],
'regress/wasm/regress-366350772': [SKIP],
'wasm/deopt/*': [SKIP],
'wasm/enter-debug-state': [SKIP],
'wasm/liftoff-trap-handler': [SKIP],
'wasm/serialization-with-compilation-hints': [SKIP],
'wasm/streaming-trap-location': [SKIP],
# --wasm_lazy_compilation
'regress/wasm/regress-1016515': [SKIP],
'regress/wasm/regress-1161555': [SKIP],
'regress/wasm/regress-1180690': [SKIP],
'regress/wasm/regress-1184964': [SKIP],
'regress/wasm/regress-724851': [SKIP],
'regress/wasm/regress-7353': [SKIP],
'regress/wasm/regress-736584': [SKIP],
'regress/wasm/regress-739768': [SKIP],
'regress/wasm/regress-803427': [SKIP],
'regress/wasm/regress-803788': [SKIP],
'regress/wasm/regress-808012': [SKIP],
'regress/wasm/regress-817380': [SKIP],
'regress/wasm/regress-834619': [SKIP],
'regress/wasm/regress-956771*': [SKIP],
'regress/wasm/regress-1430858': [SKIP],
'wasm/code-flushing*': [SKIP],
'wasm/lazy-compilation': [SKIP],
'wasm/lazy-feedback-vector-allocation': [SKIP],
'wasm/serialize-lazy-module': [SKIP],
'wasm/test-serialization-with-lazy-compilation': [SKIP],
# --wasm-lazy-validation
'regress/wasm/regress-334687959': [SKIP],
'regress/wasm/regress-366350766': [SKIP],
# --experimental-wasm-imported-strings
'wasm/imported-strings*': [SKIP],
'regress/wasm/regress-324747822': [SKIP],
'regress/wasm/regress-326091470': [SKIP],
'regress/wasm/regress-326260438': [SKIP],
'regress/wasm/regress-326156493': [SKIP],
'regress/wasm/regress-326273468': [SKIP],
'regress/wasm/regress-326894018': [SKIP],
'regress/wasm/regress-327517308': [SKIP],
'regress/wasm/regress-327643791': [SKIP],
'regress/wasm/regress-329464129': [SKIP],
'regress/wasm/regress-40258436': [SKIP],
# --experimental-wasm-shared
'wasm/shared-everything/basic': [SKIP],
# --experimental-wasm-jspi
'regress/wasm/regress-336852356': [SKIP],
'regress/wasm/regress-342522151': [SKIP],
'regress/wasm/regress-349640002': [SKIP],
'regress/wasm/regress-361717714': [SKIP],
'regress/wasm/regress-361123483': [SKIP],
'regress/wasm/regress-364667545': [SKIP],
# --experimental-wasm-fp16
'wasm/simd-fp16': [SKIP],
# --wasm-deopt
'regress/wasm/regress-363826217': [SKIP],
'regress/wasm/regress-364360260': [SKIP],
# --enable-testing-opcode-in-wasm
'regress/wasm/regress-377971725': [SKIP],
# Module serialization tests expect compilation
'regress/wasm/regress-11024': [SKIP],
'regress/wasm/regress-7785': [SKIP],
'regress/wasm/regress-808848': [SKIP],
'regress/wasm/regress-808980': [SKIP],
'regress/wasm/regress-8896': [SKIP],
'wasm/compiled-module-serialization': [SKIP],
'wasm/print-code': [SKIP],
# Other tests that require compilation.
'compiler/fast-api-calls-wasm': [SKIP],
'wasm/async-compile': [SKIP],
'wasm/log-code-after-post-message': [SKIP],
'wasm/multiple-code-spaces': [SKIP],
'wasm/wrapper-compilation': [SKIP],
# Tests that expect different profiling samples.
'wasm/log-wasm-to-js-wrapper-indirect': [SKIP],
# Interpreter stack trace not fully implemented yet.
'wasm/function-names': [SKIP],
'wasm/stack': [SKIP],
# d8.exe --no-wasm-trap-handler.
'regress/wasm/regress-842501': [SKIP],
# TODO(paolosev): Support Wasm to JS calls to JSApiObjects.
'wasm/ffi': [SKIP],
# Tests using %WasmTierUpFunction()
'regress/wasm/regress-1179065': [SKIP],
'regress/wasm/regress-13230': [SKIP],
'regress/wasm/regress-13290': [SKIP],
'regress/wasm/regress-13826': [SKIP],
'regress/wasm/regress-1403398': [SKIP],
'regress/wasm/regress-1511849': [SKIP],
'regress/wasm/regress-325372946': [SKIP],
'regress/wasm/regress-326904344': [SKIP],
'regress/wasm/regress-353582136': [SKIP],
'regress/wasm/regress-353913485': [SKIP],
'regress/wasm/regress-354324155*': [SKIP],
'regress/wasm/regress-360044696': [SKIP],
'regress/wasm/regress-360052650': [SKIP],
'regress/wasm/regress-373702823': [SKIP],
'regress/wasm/regress-361369297': [SKIP],
'regress/wasm/regress-361611472': [SKIP],
'regress/wasm/regress-368241691': [SKIP],
'regress/wasm/regress-crbug-1507751': [SKIP],
'wasm/bit-shift-right': [SKIP],
'wasm/bounds-check-turbofan': [SKIP],
'wasm/enter-and-leave-debug-state': [SKIP],
'wasm/inlining-multi-instance': [SKIP],
'wasm/inlining-mutable-instance-fields': [SKIP],
'wasm/recognize-imports': [SKIP],
'wasm/simd-relaxed-lane-select': [SKIP],
'wasm/speculative-inlining': [SKIP],
'wasm/stringrefs-regressions': [SKIP],
# Tests using %WasmGenerateRandomModule() (require compilation)
'regress/wasm/regress-369652650': [SKIP],
# --wasm_tier_up
'wasm/graceful_shutdown_during_tierup': [SKIP],
# asm.js tests
'asm/*': [SKIP],
'regress/asm/*': [SKIP],
# NaN representation
'wasm/nan-constant': [SKIP],
# Interpreter needs more stack space
'wasm/turboshaft/reduction-shuffle': [SKIP],
}], # has_wasm_interpreter and variant == jitless
['has_wasm_interpreter and variant == jitless and arch == arm64', {
# Trap handling not used for bounds checking on arm64, disable tests that use
# %GetWasmRecoveredTrapCount()
'wasm/module-memory': [SKIP],
}], # has_wasm_interpreter and variant == jitless and arch == arm64
##############################################################################
['has_jitless', {
# invocation_count maintenance is disabled.
'code-coverage*': [SKIP],
}], # has_jitless
##############################################################################
['lite_mode or variant == jitless', {
# Timeouts in lite / jitless mode.
'asm/embenchen/*': [SKIP],
# Tests that generate code at runtime.
'code-comments': [SKIP],
'regexp-tier-up': [SKIP],
'regexp-tier-up-multiple': [SKIP],
'regress/regress-996234': [SKIP],
# These tests rely on TurboFan being enabled.
'compiler/call-with-arraylike-or-spread*': [SKIP],
'compiler/fast-api-calls': [SKIP],
'compiler/fast-api-attributes': [SKIP],
'compiler/fast-api-interface-types': [SKIP],
'compiler/regress-crbug-1201011': [SKIP],
'compiler/regress-crbug-1201057': [SKIP],
'compiler/regress-crbug-1201082': [SKIP],
'wasm/fast-api-calls-with-wellknown-imports*': [SKIP],
'regress/wasm/regress-368086282': [SKIP],
'maglev/extras-cped': [SKIP],
'turboshaft/extras-cped': [SKIP],
# These tests check that we can trace the compiler.
'tools/compiler-trace-flags': [SKIP],
# Too slow on arm64 simulator and debug: https://crbug.com/v8/7783
'md5': [PASS, ['arch == arm64 and mode == debug and simulator_run', SKIP]],
# Slow with pointer compression.
'regress/regress-crbug-319860': [PASS, ['pointer_compression', SLOW]],
# Flag --interpreted-frames-native-stack incompatible with jitless
'regress/regress-10138': [SKIP],
'regress/regress-1078913': [SKIP],
# Baseline incompatible with jitless
'baseline/*': [SKIP],
# BUG(https://crbug.com/v8/13107).
'regress/regress-1018871': [PASS, ['tsan', SKIP]],
}], # 'lite_mode or variant == jitless'
##############################################################################
['not i18n', {
# Case-insensitive unicode regexp relies on case mapping provided by ICU.
'es6/unicode-regexp-ignore-case': [FAIL],
'es7/regexp-ui-word': [FAIL],
'regress/regress-5036': [FAIL],
# Desugaring regexp property class relies on ICU. Anything goes as long as we
# don't crash.
'harmony/regexp-property-*': [PASS,FAIL],
'regress/regress-1262423': [PASS,FAIL],
'regress/regress-793588': [PASS,FAIL],
'regress/regress-crbug-1437346': [PASS,FAIL],
# RegExp unicode tests relies on ICU for property classes and
# case-insensitive unicode patterns.
'regexp-unicode-sets': [PASS,FAIL],
# The noi18n build cannot parse characters in supplementary plane.
'harmony/regexp-named-captures': [FAIL],
'regress/regress-v8-10384': [FAIL],
# noi18n cannot turn on ICU backend for Date. Anything goes as long as we
# don't crash.
'icu-date-to-string': [PASS,FAIL],
'icu-date-lord-howe': [PASS,FAIL],
'tzoffset-transition-apia': [PASS,FAIL],
'tzoffset-transition-lord-howe': [PASS,FAIL],
'tzoffset-transition-moscow': [PASS,FAIL],
'tzoffset-transition-new-york': [PASS,FAIL],
'tzoffset-seoul': [PASS,FAIL],
# i18n is required for Intl
'regress/regress-crbug-1052647': [PASS,FAIL],
'regress/regress-1409058': [SKIP],
'regress/regress-1447383': [SKIP],
'regress/regress-crbug-335592010': [SKIP],
'regress/regress-352402863': [SKIP],
# Temporal intl tests won't work without i18n
'temporal/function-exist': [FAIL],
'temporal/plain-date-get-era': [FAIL],
'temporal/plain-date-get-eraYear': [FAIL],
'temporal/plain-date-time-get-era': [FAIL],
'temporal/plain-date-time-get-eraYear': [FAIL],
# Non-BMP characters currently aren't considered identifiers without i18n
'harmony/private-name-surrogate-pair': [PASS,FAIL],
# Tests ICU-specific behavior.
'regress/regress-crbug-1414292': [SKIP],
}], # 'not i18n'
##############################################################################
['full_debug', {
# Tests too slow in non-optimized debug mode.
'es6/super-ic': [SKIP],
'regress/regress-1122': [SKIP],
'regress/regress-2790': [SKIP],
'regress/regress-740784': [SKIP],
'regress/regress-992389': [SKIP],
'wasm/shared-memory-worker-gc': [SKIP],
}], # 'full_debug'
##############################################################################
['byteorder == big', {
# Emscripten requires little-endian, skip all tests on big endian platforms.
'asm/embenchen/*': [SKIP],
'asm/poppler/*': [SKIP],
# TODO(mips-team): Fix Wasm for big-endian.
'wasm/*': [SKIP],
}], # 'byteorder == big'
##############################################################################
# 32-bit platforms
['arch in (ia32, arm, riscv32)', {
# Needs >2GB of available contiguous memory.
'wasm/grow-huge-memory': [SKIP],
'wasm/huge-memory': [SKIP],
'wasm/huge-typedarray': [SKIP],
'wasm/bigint-opt': [SKIP],
'wasm/simd-lane-memory64': [SKIP],
'regress/regress-1320641': [SKIP],
'regress/regress-354626177': [SKIP],
# Float parameters are not supported in the fast api on these platforms
'wasm/fast-api-calls-with-wellknown-imports-floats': [SKIP],
'regress/wasm/regress-368086282': [SKIP],
# Needs a huge Uint8Array.
'regress/regress-1432470': [SKIP],
'wasm/imported-dataview-bytelength': [SKIP],
# Needs 64-bit number register support
'compiler/fast-api-calls-64-bit-integer-values': [SKIP],
'wasm/fast-api-calls-with-wellknown-imports-i64': [SKIP],
'wasm/fast-api-calls-with-wellknown-imports-conflict': [SKIP],
}], # 'arch in (ia32, arm, riscv32)'
##############################################################################
['arch == arm64', {
# Requires bigger stack size in the Genesis and if stack size is increased,
# the test requires too much time to run. However, the problem test covers
# should be platform-independent.
'regress/regress-1132': [SKIP],
# Pass but take too long to run. Skip.
# Some similar tests (with fewer iterations) may be included in arm64-js
# tests.
'asm/embenchen/box2d': [SKIP],
'asm/embenchen/lua_binarytrees': [SKIP],
'compiler/regress-arguments': [SKIP],
'compiler/regress-gvn': [SKIP],
'compiler/regress-4': [SKIP],
'compiler/regress-or': [SKIP],
'compiler/regress-rep-change': [SKIP],
'regress/regress-1117': [SKIP],
'regress/regress-1849': [SKIP],
'regress/regress-3247124': [SKIP],
'regress/regress-91008': [SKIP],
'regress/regress-91010': [SKIP],
'regress/regress-91013': [SKIP],
'regress/regress-99167': [SKIP],
# BUG(v8:3457).
'deserialize-reference': [PASS, FAIL],
# OOMing tests
'regress/regress-500980': [SKIP],
# BUG(v8:9337).
'compiler/regress-9017': [SKIP],
# Slow tests.
'array-indexing': [PASS, SLOW],
'array-reduce': [PASS, SLOW],
'array-sort': [PASS, SLOW],
'array-splice': [PASS, SLOW],
'compiler/alloc-number': [PASS, SLOW],
'compiler/osr-with-args': [PASS, SLOW],
'frozen-array-reduce': [PASS, SLOW],
'generated-transition-stub': [PASS, SLOW],
'math-floor-of-div-nosudiv': [PASS, SLOW],
'messages': [PASS, SLOW],
'regress/regress-2790': [PASS, SLOW],
'regress/regress-490': [PASS, SLOW],
'regress/regress-crbug-217858': [PASS, SLOW],
'regress/regress-create-exception': [PASS, SLOW],
'regress/regress-json-stringify-gc': [PASS, SLOW],
'string-indexof-2': [PASS, SLOW],
'unicodelctest-no-optimization': [PASS, SLOW],
'unicodelctest': [PASS, SLOW],
'unicode-test': [PASS, SLOW],
'wasm/atomics': [PASS, SLOW],
'whitespaces': [PASS, SLOW],
# BUG(v8:10032).
'array-store-and-grow': [PASS, SLOW],
# BUG(v8:7247).
'regress/regress-779407': [PASS, SLOW, NO_VARIANTS],
# BUG(v8:14215).
'tzoffset-seoul-noi18n': [PASS, FAIL],
'tzoffset-transition-new-york-noi18n': [PASS, FAIL],
# Maglev's Construct node should be lowered to a call to Construct_WithFeedback
# in the Maglev->Turboshaft graph builder, but this builtin can't currently be
# called from Turbofan on Arm64.
'turboshaft/maglev-frontend/construct-array-feedback': [SKIP],
}], # 'arch == arm64'
##############################################################################
['arch == arm64 and simulator_run', {
'try': [PASS, SLOW],
'non-extensible-array-reduce': [PASS, SLOW],
}], # 'arch == arm64 and simulator_run'
##############################################################################
['arch == arm64 and mode == debug and simulator_run', {
# Pass but take too long with the simulator in debug mode.
'array-sort': [PASS, SLOW],
'regexp-global': [SKIP],
'math-floor-of-div-nosudiv': [PASS, SLOW],
'unicodelctest': [PASS, SLOW],
'unicodelctest-no-optimization': [PASS, SLOW],
# Issue 3219:
'getters-on-elements': [PASS, ['gc_stress == True', FAIL]],
}], # 'arch == arm64 and mode == debug and simulator_run'
##############################################################################
['asan == True', {
# Skip tests not suitable for ASAN.
'big-array-literal': [SKIP],
'regress/regress-crbug-178790': [SKIP],
# https://bugs.chromium.org/p/v8/issues/detail?id=4639
# The failed allocation causes an asan/msan/tsan error
'es6/typedarray-construct-offset-not-smi': [SKIP],
# Exception thrown during bootstrapping on ASAN builds, see issue 4236.
'regress/regress-1132': [SKIP],
# Flaky on ASAN builds: https://bugs.chromium.org/p/v8/issues/detail?id=6305
'regress/regress-430201': [SKIP],
'regress/regress-430201b': [SKIP],
# Stack overflow on windows.
'es8/regress/regress-624300': [PASS, ['system == windows', SKIP]],
# https://bugs.chromium.org/p/v8/issues/detail?id=7102
# Flaky due to huge string allocation.
'regress/regress-748069': [SKIP],
# Tests that need to run sequentially (e.g. due to memory consumption).
'wasm/asm-wasm': [PASS, HEAVY],
}], # 'asan == True'
##############################################################################
['msan == True', {
# Skip tests not suitable for MSAN.
'big-array-literal': [SKIP],
# ICU upstream issues.
'date': [SKIP],
'deep-recursion': [SKIP],
'regress/regress-builtinbust-7': [SKIP],
'string-localecompare': [SKIP],
# Too slow.
'asm/embenchen/zlib': [SKIP],
'harmony/regexp-property-lu-ui': [SKIP],
'regress/regress-779407': [SKIP],
'wasm/embenchen/box2d': [SKIP],
'wasm/embenchen/lua_binarytrees': [SKIP],
'wasm/embenchen/zlib': [SKIP],
# https://bugs.chromium.org/p/v8/issues/detail?id=7102
# Flaky due to huge string allocation.
'regress/regress-748069': [SKIP],
}], # 'msan == True'
##############################################################################
['tsan == True', {
# TODO(354103254): There are still data races on background compilation.
'regress/regress-350779648': [SKIP],
# https://bugs.chromium.org/p/v8/issues/detail?id=7102
# Flaky due to huge string allocation.
'regress/regress-748069': [SKIP],
# BUG(v8:7042). Uses a lot of memory.
'regress/regress-678917': [SKIP],
# BUG(v8:8103). Uses a lot of memory.
'regress/regress-852258': [SKIP],
# BUG(v8:6924). The test uses a lot of memory.
'regress/wasm/regress-694433': [SKIP],
'es6/typedarray': [PASS, NO_VARIANTS],
# BUG(v8:9242). Uses a lot of memory.
'regress/regress-599414-array-concat-fast-path': [PASS, SLOW],
# BUG(v8:9026). Flaky timeouts.
'es6/large-classes-properties': [SKIP],
# Slow tests.
'compiler/regress-1125145': [SKIP],
'd8/d8-worker-shutdown*': [PASS, SLOW],
'es6/block-conflicts-sloppy': [PASS, SLOW],
'math-floor-part1': [PASS, SLOW],
'regress/regress-430201': [SKIP],
'regress/regress-500980': [PASS, SLOW],
'regress/regress-crbug-941743': [PASS, SLOW],
'wasm/shared-memory-worker-stress': [PASS, SLOW],
# https://crbug.com/v8/11780 - Flakily times out on TSAN.
'wasm/memory_1gb_oob': [PASS, SLOW],
# BUG(v8:9506): times out.
'wasm/shared-memory-worker-explicit-gc-stress': [SKIP],
# https://crbug.com/v8/9337 - OOMs on TSAN
'compiler/regress-9017': [SKIP],
# BUG(v8:11702): Times out on TSAN.
'harmony/sharedarraybuffer-worker-gc-stress': [SKIP],
# BUG(v8:11752): Flakes on TSAN.
'd8/d8-worker-shutdown-spawn': [SKIP],
# BUG(v8:11745) The test allocates too much memory, making it slow on TSAN.
'compiler/regress-crbug-11564': [SKIP],
# BUG(v8:12822): Flakes on TSAN.
'regress/regress-crbug-1239907': [SKIP],
# BUG(v8:12920): Breaks on TSAN.
'regress/regress-crbug-620253': [SKIP],
# Skip tests that require a large amount of virtual address space (inside the
# sandbox if that is enabled) if tsan is enabled.
'regress/wasm/regress-1010272': [SKIP],
'wasm/many-memories': [SKIP],
'wasm/multiple-code-spaces': [SKIP],
'wasm/shared-memory-worker-gc-stress': [SKIP],
}], # 'tsan == True'
##############################################################################
['arch == arm', {
# Slow tests which times out in debug mode.
'try': [PASS, ['mode == debug', SKIP]],
'array-constructor': [PASS, ['mode == debug', SKIP]],
'regress/regress-1122': [PASS, SLOW, ['mode == debug', SKIP]],
# Flaky test that can hit compilation-time stack overflow in debug mode.
'unicode-test': [PASS, ['mode == debug', FAIL]],
# Slow in release mode on ARM.
'compiler/regress-stacktrace-methods': [PASS, SLOW],
'array-splice': [PASS, SLOW],
# Long running tests. Skipping because having them timeout takes too long on
# the buildbot.
'compiler/alloc-number': [SKIP],
'regress/regress-490': [SKIP],
'regress/regress-create-exception': [SKIP],
'regress/regress-3247124': [SKIP],
# Requires bigger stack size in the Genesis and if stack size is increased,
# the test requires too much time to run. However, the problem test covers
# should be platform-independent.
'regress/regress-1132': [SKIP],
# Currently always deopt on minus zero
'math-floor-of-div-minus-zero': [SKIP],
# BUG(v8:9337).
'compiler/regress-9017': [SKIP],
# Slow tests.
'array-sort': [PASS, SLOW],
'compiler/osr-with-args': [PASS, SLOW],
'regress/regress-2790': [PASS, SLOW],
'regress/regress-91008': [PASS, SLOW],
'regress/regress-json-stringify-gc': [PASS, SLOW],
'string-indexof-2': [PASS, SLOW],
'wasm/atomics': [PASS, SLOW],
}], # 'arch == arm
##############################################################################
['arch in (mips64el, mips64) and not simulator_run', {
# These tests fail occasionally on the buildbots because they consume
# a large amount of memory if executed in parallel. Therefore we
# run only a single instance of these tests
'regress/regress-crbug-514081': [PASS, NO_VARIANTS],
'regress/regress-599414-array-concat-fast-path': [PASS, NO_VARIANTS],
'array-functions-prototype-misc': [PASS, NO_VARIANTS],
}], # 'arch in (mips64el, mips64)'
##############################################################################
['arch in (mips64el, mips64, ppc64)', {
# These tests fail because qNaN and sNaN values are encoded differently on
# MIPS and ARM/x86 architectures
'wasm/float-constant-folding': [SKIP],
}],
##############################################################################
['arch == mips64el or arch == mips64', {
# Slow tests which times out in debug mode.
'try': [PASS, ['mode == debug', SKIP]],
'array-constructor': [PASS, ['mode == debug', SKIP]],
# Slow in release mode on MIPS.
'compiler/regress-stacktrace-methods': [PASS, SLOW],
'array-splice': [PASS, SLOW],
# Long running test.
'string-indexof-2': [PASS, SLOW],
# BUG(3251035): Timeouts in long looping crankshaft optimization
# tests. Skipping because having them timeout takes too long on the
# buildbot.
'compiler/alloc-number': [PASS, SLOW],
'compiler/array-length': [PASS, SLOW],
'compiler/assignment-deopt': [PASS, SLOW],
'compiler/deopt-args': [PASS, SLOW],
'compiler/inline-compare': [PASS, SLOW],
'compiler/inline-global-access': [PASS, SLOW],
'compiler/optimized-function-calls': [PASS, SLOW],
'compiler/pic': [PASS, SLOW],
'compiler/property-calls': [PASS, SLOW],
'compiler/recursive-deopt': [PASS, SLOW],
'compiler/regress-4': [PASS, SLOW],
'compiler/regress-funcaller': [PASS, SLOW],
'compiler/regress-rep-change': [PASS, SLOW],
'compiler/regress-arguments': [PASS, SLOW],
'compiler/regress-funarguments': [PASS, SLOW],
'compiler/regress-3249650': [PASS, SLOW],
'compiler/simple-deopt': [PASS, SLOW],
'regress/regress-490': [PASS, SLOW],
'regress/regress-create-exception': [PASS, SLOW],
'regress/regress-3218915': [PASS, SLOW],
'regress/regress-3247124': [PASS, SLOW],
# Requires bigger stack size in the Genesis and if stack size is increased,
# the test requires too much time to run. However, the problem test covers
# should be platform-independent.
'regress/regress-1132': [SKIP],
# Currently always deopt on minus zero
'math-floor-of-div-minus-zero': [SKIP],
# Requires too much memory on MIPS.
'regress/regress-779407': [SKIP],
# MIPS64 port doesn't support maglev yet.
'turboshaft/maglev-frontend/*': [SKIP],
}], # 'arch == mips64el or arch == mips64'
##############################################################################
['arch == loong64', {
# This test fail because when convert sNaN to qNaN, loong64 use a different
# qNaN encoding with x86 architectures
'wasm/float-constant-folding': [SKIP],
# Loong64 port doesn't support maglev yet.
'turboshaft/maglev-frontend/*': [SKIP],
}], # 'arch == loong64'
##############################################################################
['arch == riscv64 or arch == riscv32', {
# Slow tests which times out in debug mode.
'try': [PASS, ['mode == debug', SKIP]],
'array-constructor': [PASS, ['mode == debug', SKIP]],
# Slow in release mode on RISC-V.
'compiler/regress-stacktrace-methods': [PASS, SLOW],
'array-splice': [PASS, SLOW],
# Long running test.
'string-indexof-2': [PASS, SLOW],
# Long running tests. Skipping because having them timeout takes too long on
# the buildbot.
'compiler/alloc-number': [SKIP],
'regress/regress-490': [SKIP],
'regress/regress-create-exception': [SKIP],
'regress/regress-3247124': [SKIP],
# RISCV don't preserve signalling NaNs.
'regress/wasm/regress-347914831': [SKIP],
# Requires bigger stack size in the Genesis and if stack size is increased,
# the test requires too much time to run. However, the problem test covers
# should be platform-independent.
'regress/regress-1132': [SKIP],
# Currently always deopt on minus zero
'math-floor-of-div-minus-zero': [SKIP],
# Requires too much memory on RISC-V.
'regress/regress-779407': [SKIP],
'harmony/bigint/regressions': [SKIP],
# https://github.com/v8-riscv/v8/issues/53
'wasm/float-constant-folding': [SKIP],
'wasm/memory_2gb_oob': [SKIP], # OOM: sorry, best effort max memory size test
'wasm/memory_4gb_oob': [SKIP], # OOM: sorry, best effort max memory size test
# This often fails in debug mode because it is too slow
'd8/d8-performance-now': [PASS, ['mode == debug', SKIP]],
# Disabling Turboshaft's from-Maglev graph building until support maglev
'turboshaft/maglev-frontend/*': [SKIP],
# Needs sandbox enabled.
'shared-memory/condition-async-wait-timeout' :['pointer_compression', SKIP],
'shared-memory/condition-async-wait-realm-disposed' :['pointer_compression', SKIP],
'shared-memory/mutex-async-lock-workers-timeout' :['pointer_compression', SKIP],
'shared-memory/mutex-async-lock-realm-disposed' :['pointer_compression', SKIP],
# Needs FP16 support.
'wasm/simd-fp16': [SKIP],
}], # 'arch == riscv64 or arch == riscv32'
['variant == stress and (arch == riscv64 or arch == riscv32)', {
'wasm/multi-value-simd': [SKIP]
}], # 'arch == riscv64 or arch == riscv32' and 'variant == stress'
[ 'arch == riscv32' , {
'wasm/compare-exchange64-stress':[SKIP],
'regress/regress-crbug-781583':[SKIP],
'regress/wasm/regress-14171':[SKIP],
# Don't support stack switcgihing
'wasm/stack-switching-no-stress': [SKIP],
}], # 'arch == riscv32'
##############################################################################
['system == macos', {
# TODO(machenbach): These tests are x25 slower on 4-core Mac Minis. They can
# be unskipped as soon as the pools only contain 8-core+ Macs.
'wasm/compare-exchange-stress': [SKIP],
'wasm/compare-exchange64-stress': [SKIP],
}], # 'system == macos'
##############################################################################
['system == macos and arch == arm64', {
# BUG(v8:13171): The following tests a function that shouldn't be optimized
# on M1 hardware, unless a proper fix for the stack corruption is
# implemented (see linked issue).
'compiler/fast-api-calls-8args': [FAIL],
}], # 'system == macos and arch == arm64'
##############################################################################
['system == windows', {
# Too slow with turbo fan.
'math-floor-of-div': [PASS, ['mode == debug', SKIP]],
'math-floor-of-div-nosudiv': [PASS, ['mode == debug', SKIP]],
'unicodelctest': [PASS, ['mode == debug', SKIP]],
# Setting the timezone and locale with environment variables unavailable
'icu-date-to-string': [SKIP],
'icu-date-lord-howe': [SKIP],
'regress/regress-6288': [SKIP],
'tzoffset-transition-apia': [SKIP],
'tzoffset-transition-lord-howe': [SKIP],
'tzoffset-transition-moscow': [SKIP],
'tzoffset-transition-new-york': [SKIP],
'tzoffset-transition-new-york-noi18n': [SKIP],
'tzoffset-seoul': [SKIP],
'tzoffset-seoul-noi18n': [SKIP],
# Suspect to stress other tests when run in background.
'huge-typedarrays': [PASS, HEAVY, NO_VARIANTS],
}], # 'system == windows'
##############################################################################
['system == android', {
# Tests consistently failing on Android.
# Setting the timezone and locale with environment variables unavailable
'icu-date-to-string': [SKIP],
'icu-date-lord-howe': [SKIP],
'regress/regress-6288': [SKIP],
'tzoffset-transition-apia': [SKIP],
'tzoffset-transition-lord-howe': [SKIP],
'tzoffset-transition-moscow': [SKIP],
'tzoffset-transition-new-york': [SKIP],
'tzoffset-transition-new-york-noi18n': [SKIP],
'tzoffset-seoul': [SKIP],
'tzoffset-seoul-noi18n': [SKIP],
# Flaky OOM:
'regress/regress-748069': [SKIP],
'regress/regress-779407': [SKIP],
'regress/regress-852258': [SKIP],
}], # 'system == android'
##############################################################################
['isolates', {
# Slow tests.
'es6/typedarray-of': [PASS, SLOW],
'regress/regress-crbug-854299': [PASS, SLOW],
# Currently d8-os generates a temporary directory name using Math.random(), so
# we cannot run several variants of d8-os simultaneously, since all of them
# get the same random seed and would generate the same directory name.
'd8/d8-os': [SKIP],
# Runs flakily OOM because multiple isolates are involved which create many
# wasm memories each. Before running OOM on a wasm memory allocation we
# trigger a GC, but only in the isolate allocating the new memory.
'wasm/module-memory': [SKIP],
'wasm/shared-memory-gc-stress': [SKIP],
# The {FreezeWasmLazyCompilation} runtime function sets a flag in the native
# module, which causes a data-race if the native module is shared between
# isolates.
'wasm/lazy-compilation': [SKIP],
# Tier down/up Wasm functions is non-deterministic with
# multiple isolates, as dynamic tiering relies on an array shared
# in the module, that can be modified by all instances.
'wasm/code-flushing-single-isolate': [SKIP],
'wasm/enter-and-leave-debug-state': [SKIP],
'wasm/wasm-dynamic-tiering': [SKIP],
'wasm/wasm-to-js-tierup': [SKIP],
'wasm/deopt/deopt-debugging': [SKIP],
# The test relies on precise switching of code kinds of wasm functions. With
# multiple isolates that share the wasm functions, the precise switching is
# not possible.
'wasm/serialization-with-compilation-hints': [SKIP],
# The test enables the global profiler, and there can only exist one profiler
# at a time.
'wasm/log-code-after-post-message': [SKIP],
# These test cases assert on the exact amount of deopts happening between two
# points in the code which cannot be guaranteed with multiple isolates.
'wasm/deopt/deopt-dynamic-tierup': [SKIP],
'wasm/deopt/deopt-metrics': [SKIP],
# The test explicitly deserializes a wasm module and expects the resulting
# wasm module to match the serialized one. With multiple isolate the resulting
# wasm module can however, come from the native module cache, and therefore
# does not match the serialized one, e.g. some functions are not compiled with
# TurboFan.
'regress/wasm/regress-11024': [SKIP],
# waitAsync tests modify the global state (across Isolates)
'harmony/atomics-waitasync': [SKIP],
'harmony/atomics-waitasync-1thread-2timeout': [SKIP],
'harmony/atomics-waitasync-1thread-promise-out-of-scope': [SKIP],
'harmony/atomics-waitasync-1thread-timeout': [SKIP],
'harmony/atomics-waitasync-1thread-wake-up-fifo': [SKIP],
'harmony/atomics-waitasync-1thread-wake-up-simple': [SKIP],
'harmony/atomics-waitasync-worker-shutdown-before-wait-finished-timeout': [SKIP],
'harmony/atomics-waitasync-worker-shutdown-before-wait-finished-no-timeout': [SKIP],
}], # 'isolates'
##############################################################################
['deopt_fuzzer', {
# Skip tests that are not suitable for deoptimization fuzzing.
'never-optimize': [SKIP],
'readonly': [SKIP],
'array-feedback': [SKIP],
'array-reduce': [SKIP],
'deopt-recursive-eager-once': [SKIP],
'deopt-recursive-lazy-once': [SKIP],
'deopt-recursive-soft-once': [SKIP],
'code-coverage-block-opt': [SKIP],
'compiler/serializer-apply': [SKIP],
'compiler/serializer-call': [SKIP],
'compiler/serializer-dead-after-jump': [SKIP],
'compiler/serializer-dead-after-return': [SKIP],
'compiler/serializer-transition-propagation': [SKIP],
'regress/regress-1049982-1': [SKIP],
'regress/regress-1049982-2': [SKIP],
# Bounds check triggers forced deopt for array constructors.
'array-constructor-feedback': [SKIP],
# Deopting uses just enough memory to make this one OOM.
'regress/regress-3976': [SKIP],
# Forced optimisation path tests.
'shared-function-tier-up-turbo': [SKIP],
# Too slow tests.
'regress/regress-740784': [SKIP],
# https://crbug.com/v8/9984
'compiler/opt-higher-order-functions': [SKIP],
}], # 'deopt_fuzzer'
##############################################################################
['gc_fuzzer', {
'regress/regress-336820': [SKIP],
'regress/regress-748069': [SKIP],
'regress/regress-778668': [SKIP],
'ignition/regress-672027': [PASS, ['tsan', SKIP]],
'string-replace-gc': [PASS, SLOW, ['mode == debug', SKIP]],
# Unsuitable for GC fuzzing because coverage information is lost on GC.
'code-coverage-ad-hoc': [SKIP],
'code-coverage-precise': [SKIP],
# Flaky under GC stress (sometimes precludes the tested optimization)
'compiler/load-elimination-const-field': [SKIP],
# Passes incompatible arguments.
'd8/d8-arguments': [SKIP],
# Fails allocation on tsan.
'regress/regress-779407': [PASS, ['tsan', SKIP]],
# Tests that fail some assertions due to checking internal state sensitive
# to GC.
'compiler/native-context-specialization-hole-check': [SKIP],
'compiler/serializer-apply': [SKIP],
'compiler/serializer-call': [SKIP],
'compiler/serializer-dead-after-jump': [SKIP],
'compiler/serializer-dead-after-return': [SKIP],
'compiler/serializer-transition-propagation': [SKIP],
'opt-elements-kind': [SKIP],
'regress/regress-trap-allocation-memento': [SKIP],
'regress/regress-v8-9267-*': [SKIP],
'shared-function-tier-up-turbo': [SKIP],
# BUG(v8:11826) Skipped until we remove flakes on NumFuzz.
'regress/wasm/regress-1231950': [SKIP],
# BUG(v8:13433)
'compiler/array-slice-clone': [SKIP],
}], # 'gc_fuzzer'
##############################################################################
['gc_fuzzer or deopt_fuzzer', {
# Not working with gc stress:
'maglev/osr-to-tf': [SKIP],
# BUG(v8:12725) Skipped until issue is fixed to reduce noise on alerts.
'ignition/regress-672027': [SKIP],
# BUG(v8:12358) Skipped until we make progress on NumFuzz.
'compiler/regress-crbug-1211215': [SKIP],
# BUG(v8:11656) Skipped until we make progress on NumFuzz.
'baseline/test-osr': [SKIP],
# BUG(v8:13153) Skipped until issue is fixed to reduce noise on alerts.
'regress/regress-1034322': [SKIP],
}], # gc_fuzzer or deopt_fuzzer
##############################################################################
['gc_fuzzer or deopt_fuzzer or interrupt_fuzzer', {
# BUG(v8:12842) Skipped until we remove flakes on NumFuzz.
'compiler/regress-1224277': [SKIP],
'regress/regress-1220974': [SKIP],
'regress/regress-992389': [SKIP],
# BUG(v8:13331) Skipped until issue is fixed to reduce noise on alerts.
'harmony/regress/regress-crbug-1367133': [SKIP],
# BUG(v8:13379) maglev-inlining flag isn't stable enough for fuzzing.
'maglev/eager-deopt-in-inline': [SKIP],
# BUG(chromium:1394659) Skipped until issue is fixed to reduce noise on alerts.
'wasm/log-code-after-post-message': [SKIP],
'asm/regress-1395401': [SKIP],
'regress/regress-1394663': [SKIP],
# Skipped because it has contradictory flags.
'compiler/regress-crbug-1399490': [SKIP],
# BUG(v8:13470) Skipped until we have a solution.
'compiler/js-create-arguments': [SKIP],
'compiler/js-create': [SKIP],
'compiler/construct-bound-function': [SKIP],
# BUG(v8:13882) Skipped until we have a solution.
'compiler/osr-literals': [SKIP],
'compiler/osr-literals-adapted': [SKIP],
}], # gc_fuzzer or deopt_fuzzer or interrupt_fuzzer
##############################################################################
['endurance_fuzzer', {
# BUG(v8:7400).
'wasm/lazy-compilation': [SKIP],
# BUG(v8:7429).
'regress/regress-599414-array-concat-fast-path': [SKIP],
# Often crashes due to memory consumption.
'regress/regress-655573': [SKIP],
# TSAN allocation failures.
'deep-recursion': [PASS, ['tsan', SKIP]],
'regress/regress-430201b': [PASS, ['tsan', SKIP]],
'regress/regress-crbug-493779': [PASS, ['tsan', SKIP]],
'regress/wasm/regress-763439': [PASS, ['tsan', SKIP]],
}], # 'endurance_fuzzer'
##############################################################################
['verify_predictable', {
# Skip tests that are known to be non-deterministic.
'd8/d8-worker-sharedarraybuffer': [SKIP],
'd8/d8-os': [SKIP],
'd8/d8-worker-shutdown': [SKIP],
'd8/d8-worker-shutdown-gc': [SKIP],
'd8/d8-worker-onmessage-ping-pong': [SKIP],
'harmony/futex': [SKIP],
'typedarray-growablesharedarraybuffer-atomics': [SKIP],
# Tests using a shared heap are inherently non-deterministic.
'shared-memory/*': [SKIP],
# BUG(v8:7166).
'd8/enable-tracing': [SKIP],
# Intentionally non-deterministic using shared arraybuffers between workers.
'huge-typedarrays': [SKIP],
'wasm/atomic-wait-multi-memory': [SKIP],
'wasm/atomics-stress': [SKIP],
'wasm/atomics64-stress': [SKIP],
'wasm/atomics-memory64': [SKIP],
'wasm/futex': [SKIP],
'wasm/grow-shared-memory': [SKIP],
'wasm/wasm-interpreter': [SKIP],
'regress/regress-1205290': [SKIP],
'regress/regress-1212404': [SKIP],
'regress/regress-1221035': [SKIP],
'regress/regress-1232620': [SKIP],
'regress/regress-1353555': [SKIP],
'regress/regress-crbug-1237153': [SKIP],
'regress/wasm/regress-1067621': [SKIP],
'regress/wasm/regress-377942344': [SKIP],
# BUG(v8:9975).
'es6/typedarray-copywithin': [SKIP],
# BUG(v8:11858): Deadlocks in verify_predictable mode when waiting for the
# native module cache entry to be completed.
'regress/wasm/regress-709684': [SKIP],
# These tests trigger profiling, which can trigger non-deterministic
# allocations.
'asm/log-lazy-code': [SKIP],
'regress/regress-1394663': [SKIP],
'regress/wasm/regress-crbug-1502180': [SKIP],
'wasm/log-wasm-to-js-wrapper-callref': [SKIP],
'wasm/log-wasm-to-js-wrapper-indirect': [SKIP],
# BUG(v8:13234)
'wasm/shared-memory-worker-gc-stress': [SKIP],
'object-literal': [SKIP],
# Slow tests.
'wasm/serialization-with-compilation-hints': [SKIP],
# https://crbug.com/v8/14228
'asm/poppler/poppler': [SKIP],
# https://crbug.com/v8/14421
'wasm/multiple-code-spaces': [SKIP],
# Tests calling quit are not supported: https://crbug.com/341021498
'harmony/weakrefs/clearkeptobjects-on-quit': [SKIP],
'd8/d8-finalization-registry-quit': [SKIP],
}], # 'verify_predictable'
##############################################################################
['arch in [ppc64, s390x]', {
# Float parameters are not supported in the fast api
'wasm/fast-api-calls-with-wellknown-imports-floats': [SKIP],
'regress/wasm/regress-368086282': [SKIP],
}], # arch in [ppc64, s390x]'
##############################################################################
['arch in [ppc64, s390x] and pointer_compression', {
# Needs sandbox enabled.
'shared-memory/condition-async-wait-timeout' :[SKIP],
'shared-memory/condition-async-wait-realm-disposed' :[SKIP],
'shared-memory/mutex-async-lock-workers-timeout' :[SKIP],
'shared-memory/mutex-async-lock-realm-disposed' :[SKIP],
}], # arch in [ppc64, s390x] and pointer_compression'
##############################################################################
['pointer_compression and not pointer_compression_shared_cage', {
# These tests require shared heap between all isolates
# but in the multi cage mode heap is shared only inside one cage
# (isolate group) while tests create one cage per isolate.
'shared-memory/*': [SKIP],
'regress/regress-v8-13181': [SKIP],
'regress/regress-v8-14662': [SKIP],
}], # pointer_compression and not pointer_compression_shared_cage'
##############################################################################
['simulator_run and (arch in [ppc64, s390x])', {
# Slow tests
'frozen-array-reduce': [PASS, SLOW],
'generated-transition-stub': [PASS, SLOW],
'harmony/regexp-property-lu-ui': [PASS, SLOW],
'non-extensible-array-reduce': [PASS, SLOW],
'regress/regress-91008': [PASS, SLOW],
'regress/regress-779407': [PASS, SLOW],
'regress/regress-1449567': [PASS, SLOW],
'tools/processor-bigint': [PASS, SLOW],
'whitespaces': [PASS, SLOW],
# Too slow tests.
'regress/regress-1132': [SKIP],
'regress/regress-740784': [SKIP],
'regress/regress-crbug-482998': [SKIP],
}], # 'simulator_run and (arch in [ppc64, s390x])'
##############################################################################
['simulator_run and arch == ppc64', {
# Slow tests
'wasm/wasm-interpreter': [PASS, SLOW]
}], # 'simulator_run and arch == ppc64'
##############################################################################
['arch == ppc64', {
# stack overflow
'big-array-literal': [SKIP],
'regress/regress-353551': [SKIP],
# Limited wasm code space
'wasm/max-wasm-functions': [SKIP],
# kInitialMaxFastElementArray is different on ppc which
# leads to not deopting where we should.
'turboshaft/maglev-frontend/new-array': [SKIP]
}], # 'arch == ppc64'
##############################################################################
['system == aix', {
# stack overflow
'regress/regress-crbug-178790': [PASS, ['mode == debug', SKIP]],
'regress/regress-1067270': [PASS, ['mode == debug', SKIP]],
# PASE environment currently ships with no tzdata database
'tzoffset-transition-new-york-noi18n': [SKIP],
'tzoffset-seoul-noi18n': [SKIP],
# Manipulating addresses in in tools/system-analyzer/processor.mjs can cause
# computation errors due to unsafe integers (v8:13440)
'tools/processor': [PASS, ['component_build', SKIP]],
}], # 'system == aix'
##############################################################################
['system == zos', {
# Currently no tz database on z/OS:
'tzoffset-seoul-noi18n': [SKIP],
'tzoffset-transition-new-york-noi18n': [SKIP],
}], # 'system == zos'
##############################################################################
['arch == s390x', {
# stack overflow
'regress/regress-crbug-178790': [PASS, ['mode == debug', SKIP]],
}], # 'arch == s390x'
##############################################################################
# TODO(v8:10386): The stress variant has been found to have limited value, and
# we've already removed its main flag (--stress-opt). We may want to remove it
# entirely.
['variant == stress', {
# Slow tests.
'array-natives-elements': [SKIP],
'ignition/regress-599001-verifyheap': [SKIP],
'unicode-test': [SKIP],
# Flaky crash on Odroid devices: https://crbug.com/v8/7678
'regress/regress-336820': [PASS, ['arch == arm and not simulator_run', SKIP]],
# Goes OOM on ODROID devices: https://crbug.com/v8/9026
# Too slow on PPC: https://crbug.com/v8/9246
'es6/large-classes-properties': [PASS, SLOW, ['(arch == arm and not simulator_run) or arch == ppc64', SKIP]],
'regress/regress-1122': [PASS, ['tsan', SKIP]],
# Too slow with gc_stress on arm64.
'messages': [PASS, ['gc_stress and arch == arm64', SKIP]],
# Slow on arm64 simulator: https://crbug.com/v8/7783
'string-replace-gc': [PASS, ['arch == arm64 and simulator_run', SKIP]],
# Too memory hungry.
'regress/regress-779407': [PASS, ['tsan', SKIP]],
'regress/regress-599414-array-concat-fast-path': [PASS, ['tsan', SKIP]],
# Too memory hungry on Odroid devices.
'regress/regress-678917': [PASS, ['arch == arm and not simulator_run', SKIP]],
# Bytecode flushing interferes with optimization expectations.
'es6/map-constructor-entry-side-effect2': [SKIP],
# Baseline tests don't make sense with optimization stressing.
'baseline/*': [SKIP],
# Makes assumptions about tiering, which don't hold when we TF everything.
'wasm/enter-and-leave-debug-state': [SKIP],
'wasm/recognize-imports': [SKIP],
# Slow TF compilation.
'wasm/large-struct': [SKIP],
# Requires tier-up.
'regress/wasm/regress-334687959': [SKIP],
}], # variant == stress
##############################################################################
['variant == turboshaft', {
# TODO(v8:14108): These tests require Liftoff. Enable again when we remove
# --no-liftoff from this variant.
'wasm/code-flushing-single-isolate': [FAIL],
'wasm/enter-and-leave-debug-state': [FAIL],
# Slow TF compilation.
'wasm/large-struct': [SKIP],
}], # variant == turboshaft
##############################################################################
['variant == stress and (arch == arm or arch == arm64) and simulator_run', {
# Slow tests: https://crbug.com/v8/7783
'es6/large-classes-properties': [SKIP],
'generated-transition-stub': [SKIP],
'regress/regress-336820': [SKIP],
}], # variant == stress and (arch == arm or arch == arm64) and simulator_run
##############################################################################
['variant in (nooptimization, jitless) and arch in (arm, arm64) and simulator_run', {
# Slow tests: https://crbug.com/v8/7783
'regress/regress-crbug-319860': [SKIP],
# Other slow tests:
'compiler/regress-crbug-1520697': [SKIP],
'regress/regress-1449567': [SKIP],
}], # variant in (nooptimization, jitless) and (arch == arm or arch == arm64) and simulator_run
##############################################################################
['variant == nooptimization', {
# nooptimization disables asm.js -> wasm translation, so disable these tests.
'regress/asm/*': [SKIP],
'asm/*': [SKIP],
# Tests that depend on optimization (beyond doing assertOptimized).
'regress/regress-1049982-1': [SKIP],
'regress/regress-1049982-2': [SKIP],
'maglev/extras-cped': [SKIP],
'turboshaft/extras-cped': [SKIP],
# Wasm serialization relies on TurboFan to be available, hence does not work
# in the 'nooptimization' variant.
'wasm/serialization-with-compilation-hints': [SKIP],
'regress/wasm/regress-7785': [SKIP],
# Tests that require wasm tier up.
'wasm/recognize-imports': [SKIP],
'wasm/speculative-inlining': [SKIP],
'wasm/wasm-dynamic-tiering': [SKIP],
'regress/wasm/regress-1179065': [SKIP],
'regress/wasm/regress-334687959': [SKIP],
# Only implemented in turboshaft for now.
# TODO(14616): Enable again when implemented in liftoff.
'wasm/shared-everything/basic': [SKIP],
}], # variant == nooptimization
##############################################################################
['variant == no_wasm_traps', {
# Skip stuff uninteresting for wasm traps
'bugs/*': [SKIP],
'compiler/*': [SKIP],
'es6/*': [SKIP],
'es7/*': [SKIP],
'es8/*': [SKIP],
'harmony/*': [SKIP],
'ignition/*': [SKIP],
'lithium/*': [SKIP],
'third_party/*': [SKIP],
'tools/*': [SKIP],
'apply': [SKIP],
'math-*': [SKIP],
'unicode-test': [SKIP],
'whitespaces': [SKIP],
}], # variant == no_wasm_traps
##############################################################################
['no_harness', {
# skip assertion tests since the stack trace is broken if mjsunit is
# included in the snapshot
'mjsunit-assertion-error': [SKIP],
}], # no_harness
##############################################################################
['not has_maglev', {
'maglev/*': [SKIP],
}], # not has_maglev
##############################################################################
['arch != x64 or deopt_fuzzer', {
# Skip stress-deopt-count tests since it's in x64 only
'compiler/stress-deopt-count-*': [SKIP],
}], # arch != x64 or deopt_fuzzer
##############################################################################
# Skip Liftoff tests on platforms that do not fully implement Liftoff.
['arch not in (x64, ia32, arm64, arm, s390x, ppc64, mips64el, loong64)', {
'wasm/liftoff': [SKIP],
'wasm/liftoff-debug': [SKIP],
'wasm/tier-up-testing-flag': [SKIP],
'wasm/enter-debug-state': [SKIP],
'wasm/wasm-dynamic-tiering': [SKIP],
'wasm/test-partial-serialization': [SKIP],
'regress/wasm/regress-1248024': [SKIP],
'regress/wasm/regress-1251465': [SKIP],
}], # arch not in (x64, ia32, arm64, arm, s390x, ppc64, mips64el, loong64)
##############################################################################
['system != linux', {
# Multi-mapped mock allocator is only available on Linux.
'regress/regress-crbug-1041232': [SKIP],
'regress/regress-crbug-1104608': [SKIP],
# WebAssembly memory control is only implemented on Linux so far.
'wasm/memory-control': [SKIP],
}],
##############################################################################
['variant == stress_js_bg_compile_wasm_code_gc', {
# Runs significantly slower with --stress-wasm-code-gc, problematic
# especially in combination with tsan or other slow configurations.
'wasm/many-modules': [SKIP],
}], # variant == stress_js_bg_compile_wasm_code_gc
##############################################################################
['variant == assert_types', {
# Type assertions can lead to differences in representation selection,
# which in turn can lead to different deopt behavior.
'compiler/number-abs': [SKIP],
'compiler/number-toboolean': [SKIP],
# Type assertions block the propagation of word64 truncation useinfo,
# leading to differences in representation selection.
'compiler/bigint-multiply-truncate': [SKIP],
'compiler/bigint-shift-left': [SKIP],
'wasm/bigint-opt': [SKIP]
}], # variant == assert_types
##############################################################################
['variant == stress_snapshot and arch != x64', {
# Deserialization fails due to read-only snapshot checksum verification.
# https://crbug.com/v8/10491
'*': [SKIP],
}], # variant == stress_snapshot and arch != x64
##############################################################################
['variant == stress_snapshot and arch == x64', {
# Crashes the serializer due to recursion.
'deep-recursion': [SKIP],
'string-replace-gc': [SKIP],
# Debug check failed:
# map == GetReadOnlyRoots(isolate).fixed_array_map() || map == GetReadOnlyRoots(isolate).fixed_cow_array_map().
# This means a mismatch of elements kinds / elements on the global object.
'es6/block-sloppy-function': [SKIP],
'es6/reflect-get-own-property-descriptor': [SKIP],
'es6/reflect': [SKIP],
'get-own-property-descriptor': [SKIP],
'global-properties': [SKIP],
'indexed-accessors': [SKIP],
'object-freeze-global': [SKIP],
'object-seal-global': [SKIP],
'regress/regress-1103': [SKIP],
'regress/regress-1112': [SKIP],
'regress/regress-1120': [SKIP],
'regress/regress-2346': [SKIP],
'regress/regress-489151': [SKIP],
'regress/regress-crbug-1002628': [SKIP],
'regress/regress-crbug-454091': [SKIP],
'regress/regress-crbug-663750': [SKIP],
'regress/regress-freeze-setter': [SKIP],
# TODO(v8:10494): asm Code objects can't be flushed and end up in the isolate
# serializer.
'asm/*': [SKIP],
'compiler/regress-439743': [SKIP],
'regress/asm/regress-6196': [SKIP],
'regress/asm/regress-7893': [SKIP],
'regress/asm/regress-8377': [SKIP],
'regress/asm/regress-617526': [SKIP],
'regress/asm/regress-crbug-898974': [SKIP],
'regress/asm/regress-crbug-976934': [SKIP],
'regress/regress-441099': [SKIP],
'regress/regress-677685': [SKIP],
'regress/regress-799690': [SKIP],
'regress/regress-1469634': [SKIP],
'regress/regress-crbug-935800': [SKIP],
'regress/wasm/*': [SKIP],
'wasm/*': [SKIP],
# Contain Wasm functions, which are not supported in snapshots.
'maglev/regress-355256380': [SKIP],
'turboshaft/maglev-frontend/has-in-prototype-chain-wasm': [SKIP],
# Investigate (IsScript).
'harmony/import-from-compilation-errored': [SKIP],
'harmony/private-fields-special-object': [SKIP],
'regress/regress-676025': [SKIP],
# Skip, since import errors since they refer to the script via debug symbols
'harmony/import-from-instantiation-errored': [SKIP],
# The entire snapshotting code assumes that the snapshot size fits
# into an int, so it doesn't support huge TypedArrays.
'regress/regress-319722-ArrayBuffer': [SKIP],
'regress/regress-667603': [SKIP],
'regress/regress-crbug-1104608': [SKIP],
# Investigate (IsFixedArrayBase).
'regress/regress-786784': [SKIP],
'regress/regress-v8-9656': [SKIP],
# TODO(v8:13038): the following tests cause GC during deserialization of
# backing stores for huge typed arrays.
'regress/regress-10931': [SKIP],
'regress/regress-948307': [SKIP],
'regress/regress-crbug-1057653': [SKIP],
# Investigate (segfault).
'regress/regress-crbug-397662': [SKIP],
# Script referenced only through context-dependent SourceTextModule
# https://bugs.chromium.org/p/v8/issues/detail?id=11073
'tools/processor': [SKIP],
# https://crbug.com/v8/13181
'maglev/get-template-object': [SKIP],
}], # variant == stress_snapshot and arch == x64
##############################################################################
['variant == slow_path', {
# This tests creates a pretty big array and calls Array.prototype.slice on
# it. In the slow path, this results in one runtime call per element, which
# takes several minutes overall.
'regress/wasm/regress-9017': [SKIP],
# These test Array#toReversed and Array#toSpliced on a big packed array, which
# is created by repeated calls to Array#push. In the slow path this is very
# slow.
'harmony/array-to-reversed-big': [SKIP],
'harmony/array-to-spliced-big': [SKIP],
}], # variant == slow_path
['(arch == mips64el or arch == mips64) and not simd_mips', {
# Requires scalar lowering for 64x2 SIMD instructions, which are not
# implemented yet.
# Also skip tests on archs that don't support SIMD and lowering doesn't yet work correctly.
# Condition copied from cctest.status.
'regress/wasm/regress-10831': [SKIP],
}], # (arch == mips64el or arch == mips64) and not simd_mips
##############################################################################
['variant == stress_sampling', {
# https://bugs.chromium.org/p/v8/issues/detail?id=10915
'harmony/weakrefs/stress-finalizationregistry-dirty-enqueue': [SKIP],
'regress/regress-484544': [SKIP],
'regress/regress-543994': [SKIP],
'regress/regress-crbug-1041232': [SKIP],
'regress/regress-set-flags-stress-compact': [SKIP],
}], # variant == stress_sampling
##############################################################################
['variant == stress_incremental_marking', {
'wasm/shared-memory-worker-stress': [PASS, SLOW, ['tsan', SKIP]],
'regress/regress-740784': [PASS, ['tsan', SKIP]],
'regress/regress-crbug-820312': [PASS, SLOW],
}], # variant == stress_incremental_marking
##############################################################################
['variant == stress_concurrent_allocation', {
# This test manually forces pretenuring of allocation sites.
# stress-concurrent-allocation reverts the pretenuring decision due to low
# survival rate in old generation.
'compiler/deopt-pretenure': [SKIP],
# BUG(v8:9506): slow tests.
'wasm/shared-memory-worker-gc-stress': [SKIP],
# BUG(v8:12607): flaky test.
'harmony/sharedarraybuffer-worker-gc-stress': [SKIP],
}], # variant == stress_concurrent_allocation
##############################################################################
['variant == maglev', {
# TODO(v8:7700): These tests assume that optimization always succeed.
# Change this when maglev support all bytecodes.
'interrupt-budget-override': [SKIP],
'never-optimize': [SKIP],
}], # variant == maglev
##############################################################################
['no_simd_hardware == True', {
'wasm/deopt/deopt-many-params-many-locals-s128': [SKIP],
'wasm/deopt/deopt-non-inlined-target': [SKIP],
'wasm/deopt/deopt-untagged-parameters-s128': [SKIP],
'wasm/deopt/deopt-value-types': [SKIP],
'wasm/exceptions-simd': [SKIP],
'wasm/js-to-js': [SKIP],
'wasm/large-struct': [SKIP],
'wasm/liftoff-simd-params': [SKIP],
'wasm/multi-value-simd': [SKIP],
'wasm/js-to-wasm-invalid-sig': [SKIP],
'wasm/shuffles': [SKIP],
'wasm/simd-*': [SKIP],
'wasm/turboshaft/array-new-unreachable': [SKIP],
'wasm/turboshaft/reduction-shuffle': [SKIP],
'regress/wasm/regress-9447': [SKIP],
'regress/wasm/regress-10309': [SKIP],
'regress/wasm/regress-10831': [SKIP],
'regress/wasm/regress-13732': [SKIP],
'regress/wasm/regress-14356': [SKIP],
'regress/wasm/regress-1054466': [SKIP],
'regress/wasm/regress-1065599': [SKIP],
'regress/wasm/regress-1070078': [SKIP],
'regress/wasm/regress-1081030': [SKIP],
'regress/wasm/regress-1111522': [SKIP],
'regress/wasm/regress-1112124': [SKIP],
'regress/wasm/regress-1116019': [SKIP],
'regress/wasm/regress-1124885': [SKIP],
'regress/wasm/regress-1132461': [SKIP],
'regress/wasm/regress-1161555': [SKIP],
'regress/wasm/regress-1161654': [SKIP],
'regress/wasm/regress-1161954': [SKIP],
'regress/wasm/regress-1165966': [SKIP],
'regress/wasm/regress-1187831': [SKIP],
'regress/wasm/regress-1199662': [SKIP],
'regress/wasm/regress-1231950': [SKIP],
'regress/wasm/regress-1237024': [SKIP],
'regress/wasm/regress-1242300': [SKIP],
'regress/wasm/regress-1242689': [SKIP],
'regress/wasm/regress-1264462': [SKIP],
'regress/wasm/regress-1289678': [SKIP],
'regress/wasm/regress-1299183': [SKIP],
'regress/wasm/regress-1408337': [SKIP],
'regress/wasm/regress-1417516': [SKIP],
'regress/wasm/regress-1443218': [SKIP],
'regress/wasm/regress-1479926': [SKIP],
'regress/wasm/regress-1480117': [SKIP],
'regress/wasm/regress-1484978': [SKIP],
'regress/wasm/regress-1487077': [SKIP],
'regress/wasm/regress-1500812': [SKIP],
'regress/wasm/regress-323694592': [SKIP],
'regress/wasm/regress-325756545': [SKIP],
'regress/wasm/regress-326156493': [SKIP],
'regress/wasm/regress-326894018': [SKIP],
'regress/wasm/regress-329032153': [SKIP],
'regress/wasm/regress-337870524': [SKIP],
'regress/wasm/regress-341875188': [SKIP],
'regress/wasm/regress-344484969': [SKIP],
'regress/wasm/regress-341947685': [SKIP],
'regress/wasm/regress-343748812': [SKIP],
'regress/wasm/regress-353913485': [SKIP],
'regress/wasm/regress-360052650': [SKIP],
'regress/wasm/regress-369652650': [SKIP],
'regress/wasm/regress-378014602': [SKIP],
'regress/wasm/regress-379066968': [SKIP],
'regress/wasm/regress-379414135': [SKIP],
'regress/wasm/regress-379811148': [SKIP],
'regress/wasm/regress-381120595': [SKIP],
'regress/wasm/regress-384549252': [SKIP],
'regress/wasm/regress-crbug-1338980': [SKIP],
'regress/wasm/regress-crbug-1355070': [SKIP],
'regress/wasm/regress-crbug-1356718': [SKIP],
'regress/wasm/regress-crbug-1465386': [SKIP],
'regress/wasm/regress-crbug-1491815': [SKIP],
'regress/wasm/regress-crbug-1520130': [SKIP],
}], # no_simd_hardware == True
##############################################################################
['no_simd_hardware == False', {
'regress/wasm/regress-1254675': [SKIP],
}], # no_simd_hardware == False
##############################################################################
# TODO(v8:11421): Port baseline compiler to other architectures.
['arch not in (x64, arm64, ia32, arm, mips64el, loong64, s390x, riscv64, riscv32) or (arch == s390x and pointer_compression)', {
'baseline/*': [SKIP],
'regress/regress-1242306': [SKIP],
}],
##############################################################################
# Skip baseline for no-lazy-feedback-allocation
['variant == no_lfa or variant == stress_concurrent_inlining', {
'baseline/*': [SKIP],
'wasm/bigint-opt': [SKIP],
}], # variant == no_lfa or variant == stress_concurrent_inlining
##############################################################################
['variant == stress_concurrent_inlining', {
# Flaky under this variant, skipping per https://crbug.com/v8/12267#c4
'compiler/inlined-call-polymorphic': [SKIP],
# Flaky under this variant, skipping per https://crbug.com/v8/14630#c3
'turboshaft/maglev-frontend/*': [SKIP]
}], # variant == stress_concurrent_inlining
##############################################################################
['variant == experimental_regexp', {
'regress/regress-779407': [SKIP],
}], # variant == experimental_regexp
################################################################################
['single_generation', {
# These tests rely on allocation site tracking which only works in the young generation.
'array-constructor-feedback': [SKIP],
'wasm/generic-wrapper': [SKIP],
'regress/regress-trap-allocation-memento': [SKIP],
'regress/regress-crbug-1151890': [SKIP],
'regress/regress-crbug-1163184': [SKIP],
'regress/regress-11519': [SKIP],
'regress/regress-4121': [SKIP],
'packed-elements': [SKIP],
'compiler/native-context-specialization-hole-check': [SKIP],
'compiler/test-literal-map-migration': [SKIP],
'compiler/deopt-pretenure': [SKIP],
'compiler/fast-api-sequences-x64': [SKIP],
'compiler/regress-store-store-elim': [SKIP],
# TODO(v8:12031): Reimplement elements kinds transitions when concurrent
# inlining.
'default-nospec': [SKIP],
'es6/collections-constructor-*': [SKIP],
'es6/map-constructor-entry-side-effect*': [SKIP],
# These tests use %SimulateNewspaceFull, which only works in the young generation
'regress/regress-1424415': [SKIP],
'regress/wasm/regress-375314963': [SKIP],
'wasm/stack-switching-export': [SKIP],
'wasm/stack-switching-generic-wrapper': [SKIP],
'wasm/stack-switching-no-stress': [SKIP],
'regress/wasm/regress-v8-14471': [SKIP],
'regress/wasm/regress-346597059': [SKIP],
'regress/wasm/regress-349640002': [SKIP],
'compiler/regress-347724915': [SKIP],
# TODO(v8:14581): Re-enable this test once TransitionElementsKindOrCheckMap is
# supported by the Maglev->Turboshaft graph builder.
'turboshaft/maglev-frontend/*': [SKIP],
}], # single_generation
################################################################################
['conservative_stack_scanning', {
# These tests are known to timeout with CSS, especially with variants that
# stress the GC.
'regress/regress-crbug-820312': [SKIP],
}], # conservative_stack_scanning
##############################################################################
['arch != x64 and arch != arm64 and arch != ia32 and arch != arm and arch != riscv64 and arch != loong64 and arch != ppc64', {
# Stack switching is not supported on all platforms.
'wasm/stack-switching': [SKIP],
'wasm/stack-switching-conditional': [SKIP],
'wasm/stack-switching-export': [SKIP],
'wasm/stack-switching-generic-wrapper': [SKIP],
'wasm/stack-switching-no-stress': [SKIP],
'wasm/stack-switching-init-safe': [SKIP],
'wasm/stack-switching-notraps': [SKIP],
'regress/wasm/regress-v8-14471': [SKIP],
'regress/wasm/regress-336852356': [SKIP],
'regress/wasm/regress-336358915': [SKIP],
'regress/wasm/regress-342522151': [SKIP],
'regress/wasm/regress-349640002': [SKIP],
'regress/wasm/regress-364667545': [SKIP],
'regress/wasm/regress-361123483': [SKIP],
'regress/wasm/regress-361717714': [SKIP]
}], # (arch != x64 and arch != arm64 and arch != ia32 and arch != arm and arch != riscv64 and arch != loong64 and arch != ppc64)
##############################################################################
['arch != arm64 and arch != x64 and arch != arm and arch != ia32 and arch != loong64 and arch != riscv64', {
# Growable stacks are not supported on all platforms..
'wasm/growable-stacks': [SKIP]
}], # (arch != arm64 and arch != x64 and arch != arm and arch != ia32 and arch != loong64 and arch != riscv64)
##############################################################################
['arch != x64 and arch != arm64 and arch != loong64 and arch != mips64', {
# Tests that include types only supported on x64/arm64.
'compiler/fast-api-sequences-x64': [SKIP],
'compiler/fast-api-annotations': [SKIP],
}], # arch != x64 and arch != arm64 and arch != loong64 and arch != mips64'
##############################################################################
# TODO(14716): memory64 trap handling doesn't work on arm64 without pointer
# compression.
['(arch != x64 and arch != arm64) or (arch == arm64 and not pointer_compression)', {
# --wasm-memory64-trap-handling only supported on x64 and arm64.
'regress/wasm/regress-332939161': [SKIP],
}],
##############################################################################
['not pointer_compression', {
# Mutable Heap Int32 is not enabled in builds with 32-bit smis.
'mutable-int32-slot': [SKIP],
}],
##############################################################################
# TODO(mliedtke): Support deopts on all platforms.
['arch != x64 and arch != arm64 and arch != ia32 and arch != arm and arch != loong64 and arch != mips64el', {
# --wasm-deopt implementation experimental and not ported to most
# architectures, yet.
'wasm/deopt/*': [SKIP],
'regress/wasm/regress-350779988': [SKIP],
'regress/wasm/regress-353582136': [SKIP],
'regress/wasm/regress-353913485': [SKIP],
'regress/wasm/regress-363826217': [SKIP],
'regress/wasm/regress-364360260': [SKIP],
}],
##############################################################################
# Skip failing tests in google3
['variant == google3_noicu or variant == google3_icu', {
# timeouts on Google3:
'compiler/division-by-constant': [PASS, SLOW],
'compiler/expression-trees': [SKIP],
'harmony/sharedarraybuffer-worker-gc-stress': [SKIP],
'math-floor-part1': [SKIP],
'compiler/regress-1125145': [SKIP],
'compiler/regress-crbug-1399627': [SKIP],
'json2': [SKIP],
'es6/typedarray-of': [SKIP],
'compiler/osr-block-scope': [SKIP],
# TODO(victorgomes):
'es6/unicode-regexp-ignore-case-noi18n': [SKIP],
'wasm/bulk-memory': [SKIP],
# TODO(b/201757247):
'array-constructor-feedback': [FAIL],
'compiler/deopt-pretenure': [FAIL],
'compiler/native-context-specialization-hole-check': [FAIL],
'compiler/test-literal-map-migration': [FAIL],
'regress/regress-4121': [FAIL],
'regress/regress-trap-allocation-memento': [FAIL],
# TODO(v8:14581): Re-enable this once turboshaft frontend is done.
'turboshaft/maglev-frontend/*': [SKIP],
}], # variant == google3_nociu or variant == google3_icu
# Specific failures for no_icu builds
['variant == google3_noicu', {
'es6/unicode-regexp-ignore-case': [FAIL],
'es7/regexp-ui-word': [FAIL],
'harmony/regexp-named-captures': [FAIL],
'harmony/regexp-property-binary': [FAIL],
'harmony/regexp-property-char-class': [FAIL],
'harmony/regexp-property-enumerated': [FAIL],
'harmony/regexp-property-exact-match': [FAIL],
'harmony/regexp-property-general-category': [FAIL],
'harmony/regexp-property-lu-ui0': [FAIL],
'harmony/regexp-property-lu-ui1': [FAIL],
'harmony/regexp-property-lu-ui2': [FAIL],
'harmony/regexp-property-lu-ui3': [FAIL],
'harmony/regexp-property-lu-ui4': [FAIL],
'harmony/regexp-property-lu-ui5': [FAIL],
'harmony/regexp-property-lu-ui6': [FAIL],
'harmony/regexp-property-lu-ui7': [FAIL],
'harmony/regexp-property-lu-ui8': [FAIL],
'harmony/regexp-property-lu-ui9': [FAIL],
'harmony/regexp-property-lu-ui': [FAIL],
'harmony/regexp-property-script-extensions': [FAIL],
'harmony/regexp-property-scripts': [FAIL],
'harmony/regexp-property-special': [FAIL],
'icu-date-lord-howe': [FAIL],
'icu-date-to-string': [FAIL],
'regress/regress-5036': [FAIL],
'regress/regress-793588': [FAIL],
'tzoffset-transition-apia': [FAIL],
'tzoffset-transition-lord-howe': [FAIL],
'tzoffset-transition-moscow': [FAIL],
}], # variant == google3_nociu
# Tests that cannot run without JS shared memory
['not js_shared_memory', {
'shared-memory/*': [SKIP],
}], # 'not js_shared_memory'
##############################################################################
['variant == always_sparkplug or variant == always_sparkplug_and_stress_regexp_jit', {
# Tests that rely on turbofan
'wasm/bigint-opt': [SKIP],
}], # variant == always_sparkplug or variant == always_sparkplug_and_stress_regexp_jit
##############################################################################
['variant == stress_regexp_jit or variant == always_sparkplug_and_stress_regexp_jit', {
# Tests that rely on specific tier-up behaviour
'regexp-fallback': [SKIP],
'regexp-tier-up': [SKIP],
'regexp-tier-up-multiple': [SKIP],
}], # variant == stress_regexp_jit or variant == always_sparkplug_and_stress_regexp_jit
##############################################################################
# Behavioural differences between Maglev and Turbofan when the former is used
# for OptimizeFunctionOnNextCall or as a frontend for Turboshaft.
['variant in (stress_maglev, stress_maglev_future, stress_maglev_no_turbofan, maglev_no_turbofan, turbolev)', {
# Maglev deopts on non-int division, even if the result is truncated after.
'shift-for-integer-div': [FAIL],
# Maglev deopts on negative zero for int32, even if truncated afterward.
'compiler/number-abs': [FAIL],
'compiler/number-floor': [FAIL],
'compiler/number-ceil': [FAIL],
'compiler/number-min': [FAIL],
'compiler/number-max': [FAIL],
'compiler/number-round': [FAIL],
'compiler/number-trunc': [FAIL],
'compiler/number-modulus': [FAIL],
'compiler/number-toboolean': [FAIL],
'compiler/number-comparison-truncations': [FAIL],
'regress/regress-2132': [FAIL],
'compiler/regress-1199345': [FAIL],
'wasm/bigint-opt': [FAIL],
# Maglev doesn't inline the call being tested here.
'compiler/call-with-arraylike-or-spread': [FAIL],
'compiler/call-with-arraylike-or-spread-3': [FAIL],
'compiler/call-with-arraylike-or-spread-4': [FAIL],
'compiler/call-with-arraylike-or-spread-5': [FAIL],
'compiler/call-with-arraylike-or-spread-6': [FAIL],
'compiler/call-with-arraylike-or-spread-7': [FAIL],
'compiler/serializer-call': [FAIL],
'compiler/serializer-apply': [FAIL],
'compiler/serializer-accessors': [FAIL],
'compiler/serializer-transition-propagation': [FAIL],
'compiler/serializer-dead-after-jump': [FAIL],
'compiler/serializer-dead-after-return': [FAIL],
'es6/super-ic-opt-no-turboprop': [FAIL],
'regress/regress-1049982-1': [FAIL],
'regress/regress-1049982-2': [FAIL],
# Maglev doesn't support fast API calls.
'compiler/fast-api-annotations': [FAIL],
'compiler/fast-api-attributes': [FAIL],
'compiler/fast-api-calls': [FAIL],
'compiler/fast-api-calls-8args': [FAIL],
'compiler/fast-api-calls-string': [FAIL],
'compiler/fast-api-calls-pointer': [FAIL],
'compiler/fast-api-calls-64-bit-integer-values': [FAIL],
'compiler/fast-api-calls-throw': [FAIL],
'compiler/fast-api-interface-types': [FAIL],
'compiler/fast-api-sequences*': [FAIL],
'wasm/fast-api-calls-with-wellknown-imports*': [SKIP],
'regress/wasm/regress-368086282': [SKIP],
'regress/regress-366323469': [FAIL],
'regress/regress-366635361': [FAIL],
# Maglev doesn't specialise the IsBeingInterpreted runtime func.
'compiler/is-being-interpreted-1': [FAIL],
# Maglev doesn't support elements transitions (yet!).
'compiler/regress-9945-1': [FAIL],
# This test appears to be relying on no adding a map stability check, but
# instead using a field representation dependency and allowing a read from
# the deprecated map. Wiring this through in Maglev would be too messy to be
# worth it.
'regress/regress-map-invalidation-2': [FAIL],
'turboshaft/extras-cped': [SKIP],
}], # variant in (stress_maglev, stress_maglev_future, stress_maglev_no_turbofan, maglev_no_turbofan, turbolev)
['(variant in (stress_maglev, stress_maglev_future, stress_maglev_no_turbofan, maglev_no_turbofan, turbolev)) and (arch != arm)', {
# Maglev doesn't suppress BigInt size errors on truncation.
# On Arm that works, since we always _and_ the shift amount first.
'compiler/bigint-shift-left': [FAIL],
'compiler/bigint-multiply-truncate': [FAIL],
}], # (variant in (stress_maglev, stress_maglev_future, stress_maglev_no_turbofan, maglev_no_turbofan, turbolev))' and (arch != arm)
['variant == turbolev', {
# Because of frontend lowerings being different in Maglev and Turbofan, some
# unit tests don't pass when using Maglev as a frontend for Turboshaft.
# Const tracking let is different in Turbofan and Maglev.
'const-tracking-let-*': [SKIP],
# Maglev doesn't silent holey NaNs if it hasn't seen any, unlike Turbofan.
'getters-on-elements': [SKIP],
# Maglev deopts more aggressively on insufficient feedback.
'array-literal-transitions': [SKIP],
'sealed-array-reduce': [SKIP],
'frozen-array-reduce': [SKIP],
'non-extensible-array-reduce': [SKIP],
# Maglev doesn't inline String.prototype.includes.
'optimized-string-includes': [SKIP],
# Maglev doesn't optimize string wrapper addition.
'string-wrapper-add-1': [SKIP],
'string-wrapper-add-2': [SKIP],
# Maglev doesn't specialize == on mixed objects/smi/oddballs inputs.
'compiler/abstract-equal-undetectable': [SKIP],
'compiler/abstract-equal-oddball': [SKIP],
'compiler/abstract-equal-receiver': [SKIP],
# Maglev doesn't specialize much when it comes to BigInt operations.
'compiler/bigint-bitwise-*': [SKIP],
'compiler/bigint-asuintn': [SKIP],
'compiler/bigint-compare': [SKIP],
'compiler/bigint-divide': [SKIP],
'compiler/bigint-modulus': [SKIP],
'compiler/bigint-asintn': [SKIP],
'compiler/bigint-equal': [SKIP],
'compiler/bigint-add-no-deopt-loop': [SKIP],
'compiler/bigint-multiply': [SKIP],
'compiler/bigint64-mul-no-deopt-loop': [SKIP],
'compiler/bigint64-add-no-deopt-loop': [SKIP],
'compiler/bigint64-sub-no-deopt-loop': [SKIP],
'compiler/bigint64-div-no-deopt-loop': [SKIP],
'compiler/bigint64-array': [SKIP],
'compiler/bigint-shift-right': [SKIP],
'compiler/bigint-shift-left': [SKIP],
'compiler/bigint64-mod-no-deopt-loop': [SKIP],
'regress/regress-1212583': [SKIP],
'regress/regress-1371935': [SKIP],
'regress/regress-9441': [SKIP],
# Maglev doesn't inline some Dataview accessors.
'compiler/dataview-detached': [SKIP],
'compiler/dataview-deopt': [SKIP],
'compiler/dataview-get': [SKIP],
'compiler/dataview-set': [SKIP],
# Maglev doesn't lower CallWithSpread.
'compiler/regress-385386138': [SKIP],
# Various missing lowerings/specializations in Maglev.
'compiler/deopt-pretenure': [SKIP],
'compiler/opt-higher-order-functions': [SKIP],
'compiler/constant-fold-cow-array': [SKIP],
'compiler/promise-resolve-stable-maps': [SKIP],
'compiler/array-multiple-receiver-maps': [SKIP],
'compiler/string-charAt': [SKIP],
'compiler/strict-equal-receiver': [SKIP],
'compiler/string-endswith': [SKIP],
'compiler/string-from-code-point': [SKIP],
'compiler/regress-9945-1': [SKIP],
'es6/iterator-eager-deopt': [SKIP],
'compiler/typedarray-resizablearraybuffer': [SKIP],
'optimized-filter': [SKIP],
'optimized-map': [SKIP],
'compiler/bound-functions-serialize': [SKIP],
'field-type-tracking': [SKIP],
# --maglev-inline-api-calls is currently not supported by the translation.
'regress/regress-crbug-1496606': [SKIP],
}], # variant == turbolev
['(variant == turbolev) and (arch == arm64)', {
# Turboshaft cannot call Construct_WithFeedback, which is required to make
# this test pass with Maglev as a frontend (Turbofan does other lowering
# that don't require calling Construct_WithFeedback).
'array-constructor-feedback': [SKIP],
}], # (variant == turbolev) and (arch == arm64)
##############################################################################
['clang_coverage and mode == debug', {
# Too slow tests.
'asm/poppler/poppler': [SKIP],
'wasm/shared-memory-worker-gc': [SKIP],
}], # 'clang_coverage and mode == debug'
##############################################################################
['wasm_random_fuzzers == False', {
# Random Wasm module generation is not available on official builds.
'wasm/generate-random-module*': [FAIL],
'regress/wasm/regress-369652650': [SKIP],
'regress/wasm/regress-382816108': [SKIP],
}], # 'wasm_random_fuzzers == False'
##############################################################################
['leaptiering', {
# Skip tests that test the old tiering behavior.
'baseline/test-baseline': [SKIP],
'baseline/cross-realm': [SKIP],
# This test relies on the call of a second closure of a function running in
# the interpreter, instead of picking up the optimized code.
'compiler/regress-9945-2': [SKIP],
}], # 'leaptiering'
['variant == stress_wasm_stack_switching', {
# TODO(thibaudm): Fix profiler.
'wasm/log-wasm-to-js-wrapper-callref': [SKIP],
'wasm/log-wasm-to-js-wrapper-indirect': [SKIP],
}],
['variant == stress_wasm_stack_switching and mode == debug', {
# Very slow.
'wasm/turboshaft/reduction-shuffle': [SKIP]
}],
##############################################################################
['cet_shadow_stack', {
# It does not support multiple stacks yet.
'wasm/stack-switching*': [SKIP],
'wasm/growable-stacks': [SKIP],
'regress/wasm/regress-v8-14471': [SKIP],
'regress/wasm/regress-336852356': [SKIP],
'regress/wasm/regress-336358915': [SKIP],
'regress/wasm/regress-342522151': [SKIP],
'regress/wasm/regress-349640002': [SKIP],
'regress/wasm/regress-364667545': [SKIP],
'regress/wasm/regress-361123483': [SKIP],
'regress/wasm/regress-361717714': [SKIP]
}], # cet_shadow_stack
['variant == stress_pinning_scavenger', {
'regress/regress-12657': [SKIP],
}], # variant == stress_pinning_scavenger
]