# 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/prototype-setup-builder': [SKIP],
  'wasm/wasm-module-builder': [SKIP],
  'sandbox/wasm-jspi': [SKIP],
  'compiler/fast-api-helpers': [SKIP],
  'typedarray-helpers': [SKIP],
  'huge-typedarrays-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],

  # Requires throwing exception due to stack overflow.
  'maglev/regress-421228426': [PASS, SLOW, ['mode == debug', SKIP]],

  'turbolev/regress-532607231': [PASS, SLOW],
  'turbolev/regress-540717862': [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]],

  # Ensures that %VerifyGetJSBuiltinState() machinery works as expected.
  'regress/regress-435630464-verification-failure': [['mode == release', SKIP], ['mode != release', FAIL]],

  # https://crbug.com/485267831
  'regress/regress-485267831': [SKIP],

  # https://crbug.com/532595489
  'regress/regress-532595489': [FAIL, CRASH, NO_VARIANTS, ['not pointer_compression', SKIP]],

  # TODO(542447324): --shared-string-table together with
  # --transition-strings-during-gc-with-stack was never intended to work.
  # Consider reverting the changes introduced to fix misbehaviour.
  'regress/regress-526275356': [SKIP],
  'regress/regress-526275356-2': [SKIP],
  'regress/regress-537813778': [SKIP],
  'regress/regress-538529872': [SKIP],
  'regress/regress-538529872-2': [SKIP],
  'turboshaft/regress-523436017': [SKIP],

  ##############################################################################
  # Tests where variants make no sense.
  'd8/enable-tracing': [PASS, NO_VARIANTS],
  'd8/regress-506689382': [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],
  'regexp-jetstream': [PASS, SLOW, NO_VARIANTS],
  'regexp-not-jetstream': [PASS, SLOW, 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]],

  # https://crbug.com/505063230
  'sandbox/regress-488362583': [SKIP],

  # Fails on unrelated commit.
  'sandbox/hardware-watchpoints/regress-524854777': [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],
  'wasm/wrapper-microbenchmark': [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 should always fail.
  'turbolev/static-assert-fail': [FAIL],

  # This test should always fail: %AssertPeeled() in an unpeeled (outer) loop.
  'turbolev/assert-peeled-fail': [FAIL],

  # This test should always fail: %AssertNotPeeled() in a peeled loop.
  'turbolev/assert-not-peeled-fail': [FAIL],

  # 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.

  # This test runs in an isolate with a custom array buffer allocator.
  # We don't want to run it in random isolates.
  'array-buffer-limit': [PASS, NO_VARIANTS, ['isolates', SKIP]],

  # Slow tests.
  'array-functions-prototype-misc': [PASS, SLOW],
  'array-tostring-stack-overflow': [PASS, SLOW, ['arch != x64', SKIP]],
  'compiler/deopt-pretenure': [PASS, SLOW],
  'compiler/regress-461531853': [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],
  'maglev/regress-464612781': [PASS, SLOW],
  'maglev/regress-500774816': [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],
  # Runs a few thousand localeCompare calls, each of which re-runs an ICU
  # collator check under --enable-slow-asserts.
  'regress/regress-539212794': [PASS, SLOW],
  'regress/regress-381390367': [PASS, SLOW, ['(arch == arm or arch == arm64) and simulator_run', SKIP]],
  '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/regress-390568195': [PASS, SLOW, NO_VARIANTS, ['mode != release or dcheck_always_on', SKIP], ['arch != x64', SKIP]],
  'regress/regress-447613219': [PASS, SLOW],
  'regress/regress-494583765' : [PASS, SLOW],
  'regress/regress-7558019': [PASS, SLOW],
  'regress/regress-499721612': [PASS, SLOW],
  'regress/regress-498010834': [PASS, SLOW],
  'regress/regress-rab-proto-oob': [PASS, SLOW, ['tsan', SKIP]],
  'regress/regress-crbug-503557995-b': [PASS, ['mode != release or simulator_run', SKIP]],
  '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/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]],
  'wasm/wasm-interpreter': [PASS, SLOW],

  # 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]],

  # Test is only enabled on ASAN because it relies on ASAN stack poisoning.
  'regress/regress-532288251': [PASS, ['not asan', 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/grow-huge-memory-resizable-buffer': [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],

  # TODO(v8:10915): Fails with --future.
  '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],

  # Requires a large --wasm-max-code-space-size-mb.
  'regress/wasm/regress-538378084': [PASS, ['arch not in (x64, ia32) or no_simd_hardware', SKIP]],

  # Slow tests in the lower_limits_mode.
  # The lower limits makes EphemeronHashTables more inefficient by making hashes
  # collide more. This tests adds many objects to a WeakMap and that is very
  # slow in the lower_limits_mode.
  'es6/big-weakmap': [PASS, HEAVY, ['lower_limits_mode', SKIP]],

  # TODO(thibaudm): Register allocation struggles with the function in this
  # test, which has the maximum allowed number of parameters. The same is true
  # for the scheduler when using TSAN.
  'regress/regress-crbug-724153': [SLOW, ['tsan', SKIP]],

  # BUG(https://crbug.com/420932895): Very slow in many configurations.
  'random-bit-correlations': [PASS, ['mode == debug or simulator_run', SKIP]],

  'arbitrary-length-varargs': [PASS, ['mode == debug or simulator_run or lower_limits_mode', SKIP]],
  'arbitrary-length-varargs-prototype-setter': [PASS, ['mode == debug or simulator_run or lower_limits_mode', SKIP]],

  'regress/regress-509622555*': [['not sparkplug_plus', 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-41433527': [SKIP],
  'regress/regress-crbug-217858': [SKIP],
  'regress/regress-crbug-808192': [SKIP],
  'regress/regress-crbug-941743': [SKIP],
  'regress/regress-create-exception': [SKIP],
  'maglev/regress-431665299': [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],
  'compiler/inlining-exponential': [PASS, SLOW],

  # BUG(https://crbug.com/422346609): Verification of regalloc is too slow.
  'wasm/max-params': [SKIP],
}],  # mode == debug

['novfp3', {
}],  # novfp3

################################################################################
['memory_corruption_api', {
  # Slow tests.
  'apply': [PASS, SLOW],
  'regress/regress-41433527': [PASS, SLOW],
  'regress/regress-425583995': [PASS, SLOW],
  'regress/regress-437956096': [PASS, SLOW],
  'regress/regress-524': [PASS, SLOW],
}],

################################################################################
['not memory_corruption_api', {
  # Sandbox tests require the memory corruption API.
  'sandbox/*': [SKIP],
}],

################################################################################
['not cppgc_microtask_queue', {
  'sandbox/regress/regress-508092629': [SKIP],
}],

################################################################################
['not lower_limits_mode', {
  # Skip tests that's supposed to run only in lower_limits_mode.
  'lower_limits_mode/*': [SKIP],
}],
['lower_limits_mode', {
  # These tests need longer strings.
  # It might be possible to make some of them compatible with lower limits mode
  # by using %StringMaxLength() instead of hard-coded constants.
  # It might also be possible to make them faster by making them target
  # lower limits mode specifically.
  'array-join-invalid-string-length': [SKIP],
  'compiler/conditional-chain': [SKIP],
  'compiler/regress-815392': [SKIP],
  'es6/unicode-regexp-unanchored-advance': [SKIP],
  # Hash collisions cause O(n^2) behavior, leading to timeout.
  'lower_limits_mode/regress/regress-crbug-405910175-map': [SKIP],
  'lower_limits_mode/regress/regress-crbug-405910175-set': [SKIP],
  'regress/regress-490': [SKIP],
  'regress/regress-655573': [SKIP],
  'regress/regress-862433': [SKIP],
  'regress/regress-944945': [SKIP],
  'regress/regress-1447343': [SKIP],
  'regress/regress-7558019': [SKIP],
  'regress/regress-331074427': [SKIP],
  'regress/regress-437956096': [SKIP],
  'regress/regress-506499280': [SKIP],
  'regress/regress-506499280-extended': [SKIP],
  'regress/regress-crbug-612109': [SKIP],
  'regress/regress-crbug-627934': [SKIP],
  'regress/regress-crbug-808192': [SKIP],
  'regress/regress-crbug-923264': [SKIP],
  'regress/regress-json-stringify-gc': [SKIP],
  'regress/regress-latin-1': [SKIP],
  'tools/processor': [SKIP],
  'tools/processor-bigint': [SKIP],
  'turboshaft/string-escape-analysis-exponential-state': [SKIP],
  'wasm/stringrefs-regressions': [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/regress-499721612': [SKIP],
  'regress/wasm/regress-1010272': [SKIP],
  'regress/wasm/regress-531302064': [SKIP],
  'wasm/atomics-stress': [SKIP],
  'wasm/atomics64-stress': [SKIP],
  'wasm/atomics-memory64': [SKIP],
  'compiler/inlining-exponential': [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],

  # These test Array.prototype methods on ArrayBuffers that are multiples of
  # Wasm page size, which is very slow in the slow path.
  'wasm/memory-resizable-buffer-array-concat': [SKIP],
  'wasm/memory-resizable-buffer-array-concat-dictionary-mode': [SKIP],
  'wasm/memory-resizable-buffer-array-flat-flatmap-from': [SKIP],
  'wasm/memory-resizable-buffer-array-flat-grows-detaches': [SKIP],
  'wasm/memory-resizable-buffer-array-flatmap-grows-detaches': [SKIP],
  'wasm/memory-resizable-buffer-array-foreach-reduce': [SKIP],
  'wasm/memory-resizable-buffer-array-from-grows-detaches': [SKIP],
  'wasm/memory-resizable-buffer-array-pop-shift': [SKIP],
  'wasm/memory-resizable-buffer-array-push-unshift-splice': [SKIP],
  'wasm/memory-resizable-buffer-array-slice': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-concat': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-flat-flatmap-from': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-flat-grows': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-flatmap-grows': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-from-grows': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-pop-shift': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-push-unshift-splice': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-slice': [SKIP],
}],  # simulator_run

##############################################################################
['gc_stress', {
  # Skip tests not suitable for GC stress.
  'allocation-site-info': [SKIP],
  'array-constructor-feedback': [SKIP],
  'd8/d8-performance-now': [SKIP],
  'opt-elements-kind': [SKIP],
  'regress/regress-trap-allocation-memento': [SKIP],
  'regress/regress-4121': [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.
  'regress/regress-904275': [PASS, SLOW, NO_VARIANTS],
  'wasm/wasm-interpreter': [PASS, NO_VARIANTS],

  # 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/regress-crbug-820312': [PASS, SLOW],
  'regress/regress-524': [PASS, ['tsan', SLOW]],

  # BUG(v8:7880): Slow tests.
  'regress/regress-390568195': [PASS, ['tsan', SKIP]],
  '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],

  # https://crbug.com/v8/13461
  'maglev/inner-function': [SKIP],

  # https://crbug.com/v8/13916
  'readonly': [SKIP],

  # Too slow: https://crbug.com/371893264
  'harmony/regress/regress-369010108': [SKIP],

  # The --stress-compaction flag prevents minor GCs.
  'weakrefs/minor-gc-*': [SKIP],
}],  # 'gc_stress'

##############################################################################
['gc_stress and arch == arm64 and simulator_run', {
  # Too slow tests.
  'messages': [SKIP],
  'regress/regress-353058': [SKIP],
  'regress/regress-447613219': [SKIP],
  'regress/regress-677685': [SKIP],
  'regress/regress-904275': [SKIP],
  'regress/regress-crbug-1239907': [SKIP],
  'regress/regress-crbug-1406774': [SKIP],
  'regress/wasm/regress-355493919': [SKIP],
  'stackoverflow-underapplication': [SKIP],
  'wasm/wasm-interpreter': [SKIP],
}],  # 'gc_stress and arch == arm64 and simulator_run'

##############################################################################
['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.
  'weakrefs/cleanup': [SKIP],
  'weakrefs/cleanup-is-not-a-microtask': [SKIP],
  'weakrefs/cleanup-on-detached-realm': [SKIP],
  'weakrefs/finalizationregistry-and-weakref': [SKIP],
  'weakrefs/finalizationregistry-independent-lifetime': [SKIP],
  'weakrefs/finalizationregistry-independent-lifetime-multiple': [SKIP],
  'weakrefs/finalizationregistry-keeps-holdings-alive': [SKIP],
  'weakrefs/finalizationregistry-scheduled-for-cleanup-multiple-times': [SKIP],
  'weakrefs/minor-gc-*': [SKIP],
  'weakrefs/multiple-dirty-finalization-groups': [SKIP],
  'weakrefs/reentrant-gc-from-cleanup': [SKIP],
  'weakrefs/symbol-as-weakref-target-gc': [SKIP],
  'weakrefs/symbol-in-finalizationregistry': [SKIP],
  'weakrefs/two-weakrefs': [SKIP],
  'weakrefs/undefined-holdings': [SKIP],
  'weakrefs/unregister-after-cleanup': [SKIP],
  'weakrefs/unregister-before-cleanup': [SKIP],
  'weakrefs/unregister-called-twice': [SKIP],
  'weakrefs/unregister-inside-cleanup2': [SKIP],
  'weakrefs/unregister-inside-cleanup3': [SKIP],
  'weakrefs/unregister-inside-cleanup': [SKIP],
  'weakrefs/unregister-many': [SKIP],
  'weakrefs/unregister-when-cleanup-already-scheduled': [SKIP],
  'weakrefs/weak-cell-basics': [SKIP],
  'weakrefs/weakref-creation-keeps-alive': [SKIP],
  '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/wasm/*': [SKIP],

  'wasm/*': [SKIP],
  'shared-memory/wasm/*': [SKIP],

  'lower_limits_mode/regress/regress-513192886': [SKIP],
  'lower_limits_mode/regress/regress-519856906': [SKIP],

  'maglev/regress-355256380': [SKIP],

  'turbolev/has-in-prototype-chain-wasm': [SKIP],
  'turbolev/regress-505610970': [SKIP],

  'sandbox/regress/regress-334120897': [SKIP],
  'sandbox/regress/regress-349502157': [SKIP],
  'sandbox/regress-537948358': [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],
  'compiler/fast-api-calls-exception': [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.
  'regress/wasm/regress-interpreter-failed-reentry': [SKIP],
  '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],
  'shared-memory/wasm/*': [SKIP],
}],  # not has_wasm_interpreter and variant == jitless

##############################################################################
['not has_wasm_interpreter', {
  # This sandbox regression test forces --wasm-jitless to exercise the DrumBrake
  # interpreter's JS-to-Wasm wrapper.
  'sandbox/regress-522294322': [SKIP],
  # These sandbox regression tests force --wasm-jitless to exercise the
  # DrumBrake interpreter's InterpreterHandle handling.
  'sandbox/regress-527689557-1': [SKIP],
  'sandbox/regress-527689557-2': [SKIP],
  'sandbox/regress-535518222': [SKIP],
}],  # not has_wasm_interpreter

['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 debugging that runs GC while paused at a trap safepoint is not
  # supported by the Wasm interpreter; it crashes (BUS_ADRALN) in the DrumBrake
  # safepoint path in jitless mode. Passes in JIT variants.
  'wasm/regress-534579660': [SKIP],

  # --wasm-inlining
  'regress/wasm/regress-crbug-1510626': [SKIP],

  # --wasm-typed-funcref
  'regress/wasm/regress-1364036': [SKIP],
  'regress/wasm/regress-1446221': [SKIP],
  'regress/wasm/regress-1449208': [SKIP],
  'regress/wasm/regress-385256127': [SKIP],
  'wasm/imported-function-types': [SKIP],
  'wasm/loop-unrolling': [SKIP],
  'wasm/reference-tables': [SKIP],
  'wasm/test-wasm-module-builder': [SKIP],

  # --wasm-type-reflection
  'regress/wasm/regress-crbug-1002388': [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],
  'regress/wasm/regress-390675703': [SKIP],
  'regress/wasm/regress-393632542': [SKIP],
  'wasm/call-ref': [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],

  # --wasm-memory-control
  'wasm/memory-control': [SKIP],
  'regress/wasm/regress-493307331': [SKIP],

  # --experimental-wasm-acquire-release
  'wasm/acq-rel-fence': [SKIP],
  'wasm/acq-rel-load-and-store': [SKIP],
  'wasm/acq-rel-rmw-operations': [SKIP],
  'regress/wasm/regress-516102113': [SKIP],
  'regress/wasm/regress-518131466': [SKIP],

  # 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],
  'regress/wasm/regress-410295354': [SKIP],
  'regress/wasm/regress-434008619': [SKIP],
  'wasm/exnref*': [SKIP],
  'wasm/gc-casts-exnref': [SKIP],
  'wasm/gc-casts-invalid': [SKIP],
  'wasm/js-wrapper-typechecks': [SKIP],
  'wasm/mixed-eh-invalid': [SKIP],
  'wasm/turboshaft/regress-crbug-533179188': [SKIP],
  'wasm/wasm-inlining-catch-unreachable': [SKIP],

  #--wasm-ref-cast-nop
  'wasm/gc-experiments': [SKIP],

  # --wasm-extended-const
  'wasm/extended-constants': [SKIP],

  # --wasm-stack-switching
  'regress/wasm/regress-483269968': [SKIP],
  'regress/wasm/regress-v8-14471': [SKIP],
  'wasm/jspi*': [SKIP],
  'wasm/growable-stacks': [SKIP],

  # --wasm-growable-stacks
  'regress/wasm/regress-421055121': [SKIP],
  'regress/wasm/regress-513250424': [SKIP],
  'regress/wasm/regress-520777574': [SKIP],

  # --wasm-wasmfx
  'regress/wasm/regress-455832038': [SKIP],
  'regress/wasm/regress-473272199': [SKIP],
  'regress/wasm/regress-488089242': [SKIP],
  'regress/wasm/regress-489349562': [SKIP],
  'regress/wasm/regress-493314948': [SKIP],
  'regress/wasm/regress-493430818': [SKIP],
  'regress/wasm/regress-493529579': [SKIP],
  'regress/wasm/regress-493521637': [SKIP],
  'wasm/cont-bind': [SKIP],
  'wasm/regress-496645739': [SKIP],
  'wasm/regress-497667917': [SKIP],
  'wasm/regress-498482620': [SKIP],
  'wasm/regress-499719427': [SKIP],
  'wasm/regress-507134091': [SKIP],
  'wasm/regress-510084068': [SKIP],
  'wasm/regress-wasmfx-exact-types': [SKIP],
  'wasm/resume-throw': [SKIP],
  'wasm/stack-switching*': [SKIP],
  'wasm/wasmfx*': [SKIP],

  # --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-390467420': [SKIP],
  'regress/wasm/regress-399497254': [SKIP],
  'regress/wasm/regress-497330272': [SKIP],
  'regress/wasm/regress-511160771': [SKIP],
  'regress/wasm/regress-516109051': [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/reference-globals-import': [SKIP],
  'wasm/reference-table-js-interop': [SKIP],
  'wasm/regress-467863659': [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],
  'regress/wasm/regress-397043084': [SKIP],
  'wasm/denormals': [SKIP],
  'wasm/deopt/*': [SKIP],
  'wasm/enter-debug-state': [SKIP],
  'wasm/liftoff-trap-handler': [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],
  'regress/wasm/regress-441844767': [SKIP],
  'wasm/code-flushing*': [SKIP],
  'wasm/lazy-compilation': [SKIP],
  'wasm/lazy-feedback-vector-allocation': [SKIP],
  'wasm/regress-wasm-sourcemap-logging': [SKIP],
  'wasm/serialize-lazy-module': [SKIP],
  'wasm/test-serialization-with-lazy-compilation': [SKIP],

  # --wasm-lazy-validation
  'regress/wasm/regress-334687959': [SKIP],
  'regress/wasm/regress-441221187': [SKIP],
  'regress/wasm/regress-505124865': [SKIP],

  # Wasm imported strings (just text-decoder or text-encoder)
  'wasm/imported-strings-utf8': [SKIP],
  'wasm/imported-strings-invalid': [SKIP],
  'regress/wasm/regress-326156493': [SKIP],
  'regress/wasm/regress-326260438': [SKIP],
  'regress/wasm/regress-326894018': [SKIP],
  'regress/wasm/regress-327643791': [SKIP],

  # --wasm-shared
  'regress/wasm/regress-454276076': [SKIP],
  'regress/wasm/regress-475896261': [SKIP],
  'regress/wasm/regress-490877756': [SKIP],
  'regress/wasm/regress-490877757': [SKIP],
  'regress/wasm/regress-490877758': [SKIP],
  'regress/wasm/regress-493088266': [SKIP],
  'regress/wasm/regress-493171989': [SKIP],
  'regress/wasm/regress-500181839': [SKIP],
  'regress/wasm/regress-504716006': [SKIP],
  'regress/wasm/regress-505117973': [SKIP],
  'regress/wasm/regress-508336493': [SKIP],
  'regress/wasm/regress-508691168': [SKIP],
  'regress/wasm/regress-513364114': [SKIP],
  'regress/wasm/regress-518229528': [SKIP],
  'regress/wasm/regress-518872404': [SKIP],
  'regress/wasm/regress-521064735': [SKIP],
  'regress/wasm/regress-524830496': [SKIP],
  'regress/wasm/regress-536581698': [SKIP],
  'wasm/shared-everything/*': [SKIP],
  'wasm/subtyping-invalid': [SKIP],

  # --wasm-jspi
  'regress/wasm/regress-336358915': [SKIP],
  'regress/wasm/regress-336852356': [SKIP],
  'regress/wasm/regress-342522151': [SKIP],
  'regress/wasm/regress-348473836-*': [SKIP],
  'regress/wasm/regress-349640002': [SKIP],
  'regress/wasm/regress-361717714': [SKIP],
  'regress/wasm/regress-361123483': [SKIP],
  'regress/wasm/regress-364667545': [SKIP],
  'regress/wasm/regress-365376497': [SKIP],
  'regress/wasm/regress-381917890': [SKIP],
  'regress/wasm/regress-392928805': [SKIP],
  'regress/wasm/regress-406043349': [SKIP],
  'regress/wasm/regress-407298298': [SKIP],
  'regress/wasm/regress-407797300': [SKIP],
  'regress/wasm/regress-408254017': [SKIP],
  'regress/wasm/regress-crbug-408253898': [SKIP],

  # --wasm-fp16
  'regress/wasm/regress-499027764': [SKIP],
  'regress/wasm/regress-504612573': [SKIP],
  'wasm/fp16-load-mul': [SKIP],
  'wasm/fp16-oob-trap': [SKIP],
  'wasm/fp16-store': [SKIP],
  'wasm/simd-fp16': [SKIP],

  # --wasm-rab-integration
  'regress/wasm/regress-451144692': [SKIP],
  'regress/wasm/regress-476461881': [SKIP],
  'regress/wasm/regress-482759504': [SKIP],
  'regress/wasm/regress-483643012': [SKIP],
  'regress/wasm/regress-487444465': [SKIP],
  'regress/wasm/regress-489029655': [SKIP],
  'wasm/grow-huge-memory-resizable-buffer*': [SKIP],
  'wasm/grow-memory-detaching-resizable-buffer': [SKIP],
  'wasm/grow-memory-in-branch-resizable-buffer': [SKIP],
  'wasm/grow-memory-in-call-resizable-buffer': [SKIP],
  'wasm/grow-memory-in-loop-resizable-buffer': [SKIP],
  'wasm/grow-memory-resizable-buffer': [SKIP],
  'wasm/grow-shared-memory-resizable-buffer': [SKIP],
  'wasm/memory-resizable-buffer*': [SKIP],
  'wasm/memory-toresizable-max-byte-length': [SKIP],
  'wasm/memory-toresizable-tofixedlength': [SKIP],
  'wasm/shared-memory-resizable-buffer-array*': [SKIP],
  'wasm/shared-memory-resizable-buffer-errors': [SKIP],

  # --wasm-custom-descriptors
  'regress/wasm/regress-433984397': [SKIP],
  'regress/wasm/regress-435301441': [SKIP],
  'regress/wasm/regress-435315689': [SKIP],
  'regress/wasm/regress-436362279': [SKIP],
  'regress/wasm/regress-436937141': [SKIP],
  'regress/wasm/regress-443377612': [SKIP],
  'regress/wasm/regress-446122633': [SKIP],
  'regress/wasm/regress-446124893': [SKIP],
  'regress/wasm/regress-447613211': [SKIP],
  'regress/wasm/regress-448404198': [SKIP],
  'regress/wasm/regress-452541294': [SKIP],
  'regress/wasm/regress-457106696': [SKIP],
  'regress/wasm/regress-513063392': [SKIP],
  'regress/wasm/regress-525437482': [SKIP],
  'wasm/custom-descriptors*': [SKIP],
  'wasm/exact-types': [SKIP],

  # --wasm-compact-imports
  'wasm/compact-imports': [SKIP],

  # --wasm-wide-arithmetic
  'regress/wasm/regress-515525741': [SKIP],
  'regress/wasm/regress-516102112-1': [SKIP],
  'regress/wasm/regress-simd-520944504': [SKIP],
  'wasm/wide-arithmetic': [SKIP],

  # --experimental-wasm-imported-strings-utf8
  'regress/wasm/regress-525472599': [SKIP],

  # --wasm-deopt
  'regress/wasm/regress-363826217': [SKIP],
  'regress/wasm/regress-364360260': [SKIP],

  # --enable-testing-opcode-in-wasm
  'regress/wasm/regress-377971725': [SKIP],
  'regress/wasm/regress-426164352': [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],
  'regress/wasm/regress-403308742': [SKIP],
  'regress/wasm/regress-488943662': [SKIP],
  'regress/wasm/regress-526163463': [SKIP], # --wasm-code-coverage
  'wasm/regression-521715545': [SKIP], # --wasm-code-coverage
  'wasm/async-compile': [SKIP],
  'wasm/log-code-after-post-message': [SKIP],
  'wasm/multiple-code-spaces': [SKIP],
  'wasm/wasm-code-coverage': [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],
  'regress/wasm/regress-513413942': [SKIP],

  # TODO(paolosev): Support Wasm to JS calls to JSApiObjects.
  'wasm/ffi': [SKIP],

  # Tests using %WasmTierUpFunction()
  'regress/wasm/regress-372269618': [SKIP],
  '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-326091470': [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-361369297': [SKIP],
  'regress/wasm/regress-361611472': [SKIP],
  'regress/wasm/regress-368241691': [SKIP],
  'regress/wasm/regress-373702823': [SKIP],
  'regress/wasm/regress-383356864': [SKIP],
  'regress/wasm/regress-391907159': [SKIP],
  'regress/wasm/regress-456319253': [SKIP],
  'regress/wasm/regress-484405356': [SKIP],
  'regress/wasm/regress-490183533': [SKIP],
  'regress/wasm/regress-493099941': [SKIP],
  'regress/wasm/regress-509268941': [SKIP],
  'regress/wasm/regress-509674461': [SKIP],
  'regress/wasm/regress-511772679': [SKIP],
  'regress/wasm/regress-518697709': [SKIP],
  'regress/wasm/regress-524792614': [SKIP],
  'regress/wasm/regress-530658019': [SKIP],
  'regress/wasm/regress-535659723': [SKIP],
  'regress/wasm/regress-538378084': [SKIP],
  'regress/wasm/regress-540446645': [SKIP],
  'regress/wasm/regress-543901836': [SKIP],
  'regress/wasm/regress-crbug-1507751': [SKIP],
  'regress/wasm/regress-simd-518058891': [SKIP],
  'regress/wasm/regress-simd-525600038': [SKIP],
  'regress/wasm/regress-simd-526303929': [SKIP],
  'regress/wasm/regress-simd-528884838': [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/memory-huge-constant-index': [SKIP],
  'wasm/nan-constant': [SKIP],
  'wasm/recognize-imports': [SKIP],
  'wasm/regress-471363817': [SKIP],
  'wasm/regress-526041421': [SKIP],
  'wasm/regress-529842414': [SKIP],
  'wasm/regress-531123009': [SKIP],
  'wasm/regress-532625494': [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],
  'regress/wasm/regress-388934347-a': [SKIP],
  'wasm/generate-random-module*': [SKIP],

  # --wasm_tier_up
  'wasm/graceful_shutdown_during_tierup': [SKIP],

  # --wasm-in-js-inlining-body
  'regress/wasm/regress-382564224': [SKIP],
  'regress/wasm/regress-422639603': [SKIP],
  'regress/wasm/regress-449028728': [SKIP],
  'regress/wasm/regress-451240002': [SKIP],
  'regress/wasm/regress-462045796': [SKIP],

  # Turbolev
  'turbolev/regress-475583927': [SKIP],
  'turbolev/regress-477658238': [SKIP],

  # --wasm-js-interop
  'regress/wasm/regress-470127856': [SKIP],
  'regress/wasm/regress-471380636': [SKIP],
  'regress/wasm/regress-474491347': [SKIP],
  'regress/wasm/regress-491696923': [SKIP],
  'regress/wasm/regress-493521807': [SKIP],
  'regress/wasm/regress-498814570': [SKIP],
  'regress/wasm/regress-498818401': [SKIP],
  'regress/wasm/regress-500113958': [SKIP],

  # The interpreter call stack contains an additional top frame if we throw a
  # type-mismatch exception before executing the Wasm function.
  'regress/wasm/regress-366635354': [SKIP],

  # Interpreter needs more stack space
  'wasm/turboshaft/reduction-shuffle': [SKIP],

  # Wasm-to-JS type incompatibility in jitless mode with shadow realms.
  'harmony/regress/regress-511329274': [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

##############################################################################
# --future-wasm-simd-opt, only supported on arm64
['arch != arm64', {
  'wasm/half-shuffles': [SKIP],
  'wasm/redundant-shuffle-lanes': [SKIP],
}],

##############################################################################
['has_jitless', {
  # invocation_count maintenance is disabled.
  'code-coverage*': [SKIP],
}],  # has_jitless

##############################################################################
['lite_mode or variant == jitless', {
  # Timeouts in lite / jitless mode.

  # 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.
  'ensure-growing-store-learns': [SKIP],
  'compiler/call-with-arraylike-or-spread*': [SKIP],
  'compiler/fast-api-calls': [SKIP],
  'compiler/fast-api-attributes': [SKIP],
  'compiler/fast-api-interface-types': [SKIP],
  'compiler/fast-api-deopt': [SKIP],
  'regress/regress-505551322': [SKIP],
  'regress/regress-508672637': [SKIP],
  'compiler/regress-crbug-1201011': [SKIP],
  'compiler/regress-crbug-1201057': [SKIP],
  'compiler/regress-crbug-1201082': [SKIP],
  'compiler/regress-331909453': [SKIP],
  'compiler/regress-crbug-1457532': [SKIP],
  'regress/regress-390675705': [SKIP],
  'regress/regress-395028748': [SKIP],
  'regress/regress-424627229': [SKIP],
  'regress/regress-438321229': [SKIP],

  'wasm/fast-api-calls-with-wellknown-imports*': [SKIP],
  'regress/wasm/regress-368086282': [SKIP],
  'regress/wasm/regress-438770394': [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],
  'regexp/first-character-reject-bitset': [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],
  'regress/regress-449341185': [PASS,FAIL],

  # RegExp unicode tests relies on ICU for property classes and
  # case-insensitive unicode patterns.
  'regexp-unicode-sets': [PASS,FAIL],
  'regexp-not-jetstream': [SKIP],
  'regexp-jetstream': [SKIP],

  # 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],
  'string-localecompare-inline': [SKIP],

  # 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],

  # Requires ICU for toLocaleString()
  'regress/regress-398067539': [SKIP],
}],  # 'not i18n'

##############################################################################
['full_debug', {
  # Slow tests.
  'regress/regress-crbug-854299': [PASS, SLOW],

  # Tests too slow in non-optimized debug mode.
  'es6/super-ic': [SKIP],
  'es6/typedarray-of': [SKIP],
  'regress/regress-1122': [SKIP],
  'regress/regress-2790': [SKIP],
  'regress/regress-740784': [SKIP],
  'regress/regress-7558019': [SKIP],
  'regress/regress-992389': [SKIP],
  'regress/regress-crbug-1276923': [SKIP],
  'wasm/memory-resizable-buffer-array-flat-flatmap-from': [SKIP],
  'wasm/memory-resizable-buffer-array-from-grows-detaches': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-flat-flatmap-from': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-from-grows': [SKIP],
  'wasm/shared-memory-worker-gc': [SKIP],
}],  # 'full_debug'

##############################################################################
['byteorder == big', {
  # Emscripten requires little-endian, skip all tests on big endian platforms.
  # 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/grow-huge-memory-resizable-buffer': [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],
  'regress/wasm/regress-398439335': [SKIP],
  'turbolev/regress-488090094': [SKIP],
  'maglev/regress-498816446-3': [SKIP],
  'maglev/regress-521604719': [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],
  'regress/wasm/regress-438770394': [SKIP],

  # Needs a huge Uint8Array.
  'regress/regress-1432470': [SKIP],
  'wasm/imported-dataview-bytelength': [SKIP],
  'maglev/regress-525732296': [SKIP],

  # Needs 64-bit integer add.
  'additive-safe-int-feedback': [SKIP],
  'regress-398879933': [SKIP],
  'regress-399698534': [SKIP],
  'regress-414738826': [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],
  'regress/regress-508347341': [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.
  '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],
  'maglev/regress-431665299': [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.
  'turbolev/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).
}],  # '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.
  'harmony/regexp-property-lu-ui': [SKIP],
  'regress/regress-499721612': [SKIP],
  'regress/regress-779407': [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],
  'maglev/regress-431665299': [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],
  'maglev/regress-431665299': [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.
  'turbolev/*': [SKIP],

  # Flush to zero is not supported yet.
  'd8/flush-denormals-flag': [SKIP],
  'd8/flush-denormals-helper': [SKIP],
  'd8/flush-denormals-worker': [SKIP],
  'wasm/denormals': [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],

  # Flush to zero is not supported yet.
  'd8/flush-denormals-flag': [SKIP],
  'd8/flush-denormals-helper': [SKIP],
  'd8/flush-denormals-worker': [SKIP],
  'wasm/denormals': [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],
  'maglev/regress-431665299': [SKIP],

  # RISC-V 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]],

  # Flush to zero is not supported yet.
  'd8/flush-denormals-flag': [SKIP],
  'd8/flush-denormals-helper': [SKIP],
  'd8/flush-denormals-worker': [SKIP],
  'wasm/denormals': [SKIP],
}],  # 'arch == riscv64 or arch == riscv32'


['(arch == riscv64 or arch == riscv32) and variant == stress', {
  '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 switching.
  'wasm/jspi-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],

  # TODO(thibaudm): investigate timeout.
  'regress/wasm/regress-392928805': [SKIP],

  # These allocate big TypedArrays.
  'maglev/typed-array-length-index-into-typed-array': [PASS, HEAVY],
  'maglev/typed-array-length-index-into-typed-array-large': [PASS, HEAVY],
  'turbolev/typed-array-length-index-into-typed-array': [PASS, HEAVY],
  'turbolev/typed-array-length-index-into-typed-array-large': [PASS, HEAVY]
}],  # '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],
  # Segfault, probably due to an uncaught stack overflow.
  # See chromium:419744840.
  'regress/regress-408820921': [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],

  # Fails due to CWD changes in arguments processing.
  'd8/cwd/working_dir': [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],

  # This test runs a GC to guarantee that the module is deserialized instead of
  # using the cached module; this does not work in multi-isolate mode.
  'wasm/compiled-module-serialization': [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],

  # Code coverage tests are not supported in multiple isolates because the
  # counters are shared across isolates.
  'regress/wasm/regress-488943662': [SKIP],
  'wasm/wasm-code-coverage': [SKIP],

  # JSON.parse is not supported with --shared-string-table and multiple isolates
  'shared-memory/regress-crbug-1395117': [SKIP],

  # Synchronization point tests don't play well with multiple isolates.
  # https://crbug.com/539796962
  'compiler/concurrent-string-ext-seq': [SKIP],
  'compiler/regress-519664497': [SKIP],
  'turboshaft/regress-539984773': [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],

  # BUG(403297803): Flaky under GC stress.
  'code-stats-flag': [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],

  # Times out with asan.
  'regress/regress-524': [PASS, ['asan', SKIP]],
  'wasm/max-wasm-functions': [PASS, ['asan', SKIP]],
  'wasm/user-properties-module': [PASS, ['asan', SKIP]],

  # Too slow.
  'wasm/futex': [SKIP],

  # https://crbug.com/496520250
  'maglev/regress-494492520': [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

##############################################################################
['num_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],
  '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],

  # Slow tests that we only choose randomly on NumFuzz.
  'compiler/division-by-constant': [FUZZ_RARE, PASS],
  'compiler/inlining-exponential': [FUZZ_RARE, PASS],
  'es6/big-weakmap': [FUZZ_RARE, PASS],
  'harmony/atomics-waitasync-*': [FUZZ_RARE, PASS],
  'harmony/regexp-property-*': [FUZZ_RARE, PASS],
  'harmony/sharedarraybuffer-worker-gc-stress': [FUZZ_RARE, PASS],
  'regress/regress-1020031': [FUZZ_RARE, PASS],
  'regress/regress-crbug-632800': [FUZZ_RARE, PASS],
  'regress/regress-crbug-854299': [FUZZ_RARE, PASS],
  'regress/wasm/regress-808848': [FUZZ_RARE, PASS],
  'shared-memory/*': [FUZZ_RARE, PASS],
  'typedarray-growablesharedarraybuffer-atomics': [FUZZ_RARE, PASS],
  'wasm/atomics-memory64': [FUZZ_RARE, PASS],
  'wasm/futex': [FUZZ_RARE, PASS],
  'wasm/many-modules': [FUZZ_RARE, PASS],
  'wasm/max-wasm-functions': [FUZZ_RARE, PASS],
  'wasm/memory-resizable-buffer-array-*': [FUZZ_RARE, PASS],
  'wasm/shared-memory*': [FUZZ_RARE, PASS],
  # Fails due to CWD changes in arguments processing.
  'd8/cwd/working_dir': [SKIP],
}], # num_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],
  'wasm/shared-everything/post-message': [SKIP],
  'wasm/shared-everything/spin-lock': [SKIP],

  # BUG(v8:7166).
  'd8/enable-tracing': [SKIP],
  'd8/regress-506689382': [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.
  '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],

  # https://crbug.com/v8/14228

  # https://crbug.com/v8/14421
  'wasm/multiple-code-spaces': [SKIP],

  # Tests calling quit are not supported: https://crbug.com/341021498
  'weakrefs/clearkeptobjects-on-quit': [SKIP],
  'd8/d8-finalization-registry-quit': [SKIP],

  # This waits for background compilation to finish, thus times out in
  # predictable mode.
  'wasm/recognize-imports': [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],
  'regress/wasm/regress-438770394': [SKIP],

  # Flush to zero is not supported yet.
  'd8/flush-denormals-flag': [SKIP],
  'd8/flush-denormals-helper': [SKIP],
  'd8/flush-denormals-worker': [SKIP],
  'wasm/denormals': [SKIP],

  # Wasm code coverage is not supported yet.
  'regress/wasm/regress-488943662': [SKIP],
  'wasm/wasm-code-coverage': [SKIP],
  'wasm/regression-521715545': [SKIP],
  'regress/wasm/regress-526163463': [SKIP]
}],  # arch in [ppc64, s390x]'

##############################################################################
['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],
  'regress/regress-499721612': [SKIP],
}],  # '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.
  'turbolev/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]],
  # triggers OOM condition
  'huge-typedarrays-*': [SKIP],
  'es6/typedarray-construct-by-array-like': [SKIP],
  'es6/typedarray-construct-by-array-like-prototype-element-added': [SKIP],
  'regress/regress-324028': [SKIP],
  'regress/regress-crbug-1029658': [SKIP],
  'regress/regress-crbug-650933': [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],

  # Fails in stress due to --no-wasm-generic-wrapper (requires generic wrapper).
  'sandbox/regress/regress-496341820': [SKIP],
}],  # variant == stress

##############################################################################
['variant == stress and (arch == arm or arch == arm64 or arch == loong64 or arch == mips64el) 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, loong64, mips64el) and simulator_run', {
  # Slow tests: https://crbug.com/v8/7783
  'regress/regress-crbug-319860': [SKIP],

  # Slow tests:
  'regress/regress-1167': [PASS, SLOW],
  'typedarray-resizablearraybuffer': [PASS, SLOW],
  'unbox-double-arrays': [PASS, SLOW],

  # Very slow tests:
  'array-constructor': [SKIP],
  'compiler/regress-crbug-1520697': [SKIP],
  'maglev/regress-432847895': [SKIP],
  'regress/regress-1449567': [SKIP],
  'regress/regress-crbug-1209152': [SKIP],
  'regress/regress-crbug-1191886': [SKIP],
  'tools/processor': [SKIP],
  'tools/processor-bigint': [SKIP],
  'wasm/multiple-code-spaces': [SKIP],
  'wasm/multi-memory': [SKIP],
  'wasm/multi-memory64': [SKIP],
  'wasm/wasm-interpreter': [SKIP],
  'unicode-test': [SKIP],
}],  # variant in (nooptimization, jitless) and (arch == arm or arch == arm64) and simulator_run

##############################################################################
['variant == nooptimization', {

  # Tests that depend on optimization (beyond doing assertOptimized).
  'ensure-growing-store-learns': [SKIP],
  '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.
  '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],

  # These tests require Turbolev (--turbofan) which nooptimization disables.
  'wasm/wasm-wrapper-inlining-turbolev': [SKIP],
  'wasm/wrapper-inlining-lazy-deopt-turbolev': [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],
  'regress/wasm/regress-493307331': [SKIP],

  # Test writes snapshot to /dev/null
  'regress/regress-494583765' : [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],
  'additive-safe-int-feedback': [SKIP],
  'regress-398879933': [SKIP],
  'regress-399698534': [SKIP],
  'regress-414738826': [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],

  # Type assertions block Turbolev escape analysis.
  'turbolev/escape-analysis-*': [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-454091': [SKIP],
  'regress/regress-crbug-663750': [SKIP],
  'regress/regress-freeze-setter': [SKIP],
  'compiler/regress-439743': [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],
  'shared-memory/wasm/*': [SKIP],
  'wasm/*': [SKIP],
  # Contain Wasm functions, which are not supported in snapshots.
  'maglev/regress-355256380': [SKIP],
  'turbolev/has-in-prototype-chain-wasm': [SKIP],
  # Investigate (IsScript).
  'harmony/import-from-compilation-errored': [SKIP],
  'harmony/private-fields-special-object': [SKIP],
  'regress/regress-676025': [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],

  # Failing under this variant. https://crbug.com/401016020
  'regress/regress-340921322': [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],

  # These test Array.prototype methods on ArrayBuffers that are multiples of
  # Wasm page size, which is very slow in the slow path.
  'wasm/memory-resizable-buffer-array-concat': [SKIP],
  'wasm/memory-resizable-buffer-array-concat-dictionary-mode': [SKIP],
  'wasm/memory-resizable-buffer-array-flat-flatmap-from': [SKIP],
  'wasm/memory-resizable-buffer-array-flat-grows-detaches': [SKIP],
  'wasm/memory-resizable-buffer-array-flatmap-grows-detaches': [SKIP],
  'wasm/memory-resizable-buffer-array-foreach-reduce': [SKIP],
  'wasm/memory-resizable-buffer-array-from-grows-detaches': [SKIP],
  'wasm/memory-resizable-buffer-array-pop-shift': [SKIP],
  'wasm/memory-resizable-buffer-array-push-unshift-splice': [SKIP],
  'wasm/memory-resizable-buffer-array-slice': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-concat': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-flat-flatmap-from': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-flat-grows': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-flatmap-grows': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-from-grows': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-pop-shift': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-push-unshift-splice': [SKIP],
  'wasm/shared-memory-resizable-buffer-array-slice': [SKIP],
}],  # variant == slow_path

##############################################################################
['variant == instruction_scheduling', {
  # https://crbug.com/532192480
  'regress/regress-crbug-724153': [SKIP],
}],  # variant == instruction_scheduling

['(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
  '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', {
  'harmony/sharedarraybuffer-worker-gc-stress': [PASS, ['gc_stress', SKIP]],
  'regress/regress-crbug-820312': [PASS, SLOW],
  'wasm/shared-memory-worker-stress': [PASS, SLOW, ['tsan', SKIP]],
}],  # 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],
  # TSAN allocation failures.
  'regress/regress-430201b': [PASS, ['tsan', SKIP]],
  # Slow test due to generating heap snapshots on every GC.
  'regress/regress-494583765' : [SKIP],
  # Exceeds expected timeouts.
  'compiler/concurrent-string-ext-seq': [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

##############################################################################
['variant != default', {
  # BUG(https://crbug.com/420932895): Very slow in many configurations.
  'random-bit-correlations': [SKIP],
}],  # variant != default

##############################################################################
['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/growable-stacks': [SKIP],
  'wasm/interleaved-loads': [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/stack-switching-params': [SKIP],
  'wasm/cont-bind': [SKIP],
  'wasm/half-shuffles': [SKIP],
  'wasm/quarter-shuffles': [SKIP],
  'wasm/half-dup-shuffles': [SKIP],
  'wasm/redundant-shuffle-lanes': [SKIP],
  'wasm/simd-*': [SKIP],
  'wasm/deopt/deopt-large-frames-jspi': [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-384974501': [SKIP],
  'regress/wasm/regress-395214627': [SKIP],
  'regress/wasm/regress-398439335': [SKIP],
  'regress/wasm/regress-450694568': [SKIP],
  'regress/wasm/regress-499027764': [SKIP],
  'regress/wasm/regress-504612573': [SKIP],
  'regress/wasm/regress-504711585': [SKIP],
  'regress/wasm/regress-513250424': [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],
  'regress/wasm/regress-simd-*': [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
  'turbolev/*': [SKIP]
}],  # variant == stress_concurrent_inlining

##############################################################################
['variant == experimental_regexp', {
  'regress/regress-779407': [SKIP],
  'regress/regress-438523582': [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],
  'wasm/gc-casts-invalid': [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/jspi-export': [SKIP],
  'wasm/jspi-generic-wrapper': [SKIP],
  'wasm/jspi-no-stress': [SKIP],
  'regress/wasm/regress-v8-14471': [SKIP],
  'regress/wasm/regress-346597059': [SKIP],
  'regress/wasm/regress-349640002': [SKIP],
  'regress/wasm/regress-455832038': [SKIP],
  'regress/wasm/regress-483269968': [SKIP],
  'regress/wasm/regress-543901836': [SKIP],
  'compiler/regress-347724915': [SKIP],
  'regress/regress-crbug-418520151': [SKIP],
  'regress/regress-535000102': [SKIP],

  # TODO(v8:14581): Re-enable this test once TransitionElementsKindOrCheckMap is
  # supported by the Maglev->Turboshaft graph builder.
  'turbolev/*': [SKIP],

  # TODO(42204563): These tests rely on the shared heap which is incompatible
  # with single generation.
  'regress/regress-461969023': [SKIP],
  'regress/wasm/regress-536581698': [SKIP],
  # We need this here because it needs --fuzzing, and in that case we do not
  # check for contradictory flags.
  'regress/wasm/regress-510448957': [SKIP],

  # weakrefs/minor-gc-* tests require a young generation.
  'weakrefs/minor-gc-*': [SKIP],
}], # single_generation

################################################################################
['direct_handle', {
  # These tests are known to timeout with CSS, especially with variants that
  # stress the GC.
  'regress/regress-crbug-820312': [SKIP],
  # These tests need to disable conservative stack scanning and are thus not
  # compatible with direct handles.
  'wasm/compiled-module-management': [SKIP],
  'weakrefs/minor-gc-*': [SKIP],
}], # direct_handle

##############################################################################
['arch == mips64el', {
  # Stack switching is not supported on MIPS64 platform.
  'wasm/jspi': [SKIP],
  'wasm/jspi-export': [SKIP],
  'wasm/jspi-generic-wrapper': [SKIP],
  'wasm/jspi-no-stress': [SKIP],
  'wasm/jspi-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],
  'regress/wasm/regress-365376497': [SKIP],
  'regress/wasm/regress-381917890': [SKIP],
  'regress/wasm/regress-392928805': [SKIP],
  'regress/wasm/regress-394091686': [SKIP]
}],  # (arch == mips64el)

##############################################################################
['arch != arm64 and arch != x64 and arch != arm and arch != ia32 and arch != loong64 and arch != riscv64 and arch != ppc64 and arch != s390x', {
  # 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 and arch != ppc64 and arch != s390x)

##############################################################################
['arch != x64 and arch != arm64 and arch != loong64 and arch != mips64 and arch != riscv64', {
  # Tests that include types only supported on x64/arm64.
  'compiler/fast-api-sequences-x64': [SKIP],
  'compiler/fast-api-annotations': [SKIP],
  'regress/regress-505551322': [SKIP],
  'regress/regress-508672637': [SKIP],
}],  # arch != x64 and arch != arm64 and arch != loong64 and arch != mips64 and arch != riscv64'

##############################################################################
# TODO(14716): memory64 trap handling doesn't work on arm64 without pointer
# compression.
['(arch != x64 and arch != arm64 and arch != riscv64 and arch != loong64) or (arch == arm64 and not pointer_compression)', {
  # this test requires memory64 trap handling.
  'regress/wasm/regress-332939161': [SKIP],
  # Requires 4GB typed array, which fails on 32-bit systems.
  'regress/regress-509312809': [SKIP],
}],

##############################################################################
['not pointer_compression', {
  # Mutable Heap Int32 is not enabled in builds with 32-bit smis.
  'mutable-int32-slot': [SKIP],
  'turbolev/phi-untagging-call-launder-1': [SKIP],
}],

##############################################################################
['(arch not in (ia32, arm, riscv32)) and (not pointer_compression)', {
  # Turbolev escape analysis is currently only implement for 32-bit builds or
  # 64-bit builds with pointer compression enabled.
  'turbolev/escape-analysis-*': [SKIP],
}],

##############################################################################
# TODO(ports): Support Wasm deopts on all platforms.
# If you need to add your architecture here, you will need to disable the
# wasm_deopt flag by default on your platform as well!
['arch in [mips64, ppc64, s390x]', {
  # --wasm-deopt implementation not ported to all  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', {
  # 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],
  'regress/regress-425583995': [SKIP],
  'regress/regress-490446682': [SKIP],
  'regress/regress-506499280-extended': [SKIP],

  # Needs temporal:
  'regress/regress-463593768': [SKIP],
  'regress/regress-464961493': [SKIP],
  'regress/regress-temporal-zoneinfo': [SKIP],
  'regress/regress-493269623': [SKIP],
  'regress/regress-495503781': [SKIP],

  # TODO(victorgomes):
  'es6/unicode-regexp-ignore-case-noi18n': [SKIP],
  'wasm/bulk-memory': [SKIP],

  # Stack overflow:
  'regress/regress-484904778': [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.
  'turbolev/*': [SKIP],

  # Cannot open trace file 'v8_trace.json' for writing: Permission denied.
  'd8_trace': [SKIP],
}], # variant == google3

# 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],
  # BUG(501108091): Sparkplug code is not correctly merged.
  'regress/regress-1497251': [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_tracing, stress_maglev_non_eager_inlining, stress_maglev_future, stress_maglev_no_turbofan, maglev_no_turbofan, turbolev, turbolev_future, stress_turbolev_future)', {
  # 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-nested': [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-deopt': [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/wasm/regress-438770394': [SKIP],
  'regress/regress-505551322': [SKIP],
  'regress/regress-508672637': [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],
  # Maglev does not support additive safe ints.
  'additive-safe-int-feedback': [SKIP],
  'regress-398879933': [SKIP],
  'regress-399698534': [SKIP],
  'regress-414738826': [SKIP],

  # TODO(dmercadier,505648716): fix LateLoadElimination's map tracking and re-enable this test.
  'turbolev/load-elimination-backing-store-alias': [SKIP],
}], # variant in (stress_maglev, stress_maglev_tracing, stress_maglev_non_eager_inlining, stress_maglev_future, stress_maglev_no_turbofan, maglev_no_turbofan, turbolev, turbolev_future, stress_turbolev_future)


##############################################################################
['variant in (stress_maglev, stress_maglev_tracing, stress_maglev_non_eager_inlining, stress_maglev_future, stress_maglev_no_turbofan, maglev_no_turbofan)', {
  # Maglev doesn't support %TurbofanStaticAssert.
  'turbolev/static-assert-fail': [SKIP],
  # Maglev doesn't support %AssertPeeled.
  'turbolev/assert-peeled-fail': [SKIP],
  # Maglev doesn't support %AssertNotPeeled.
  'turbolev/assert-not-peeled-fail': [SKIP],
}], # variant in (stress_maglev, stress_maglev_tracing, stress_maglev_non_eager_inlining, stress_maglev_future, stress_maglev_no_turbofan, maglev_no_turbofan)


##############################################################################
['(variant in (stress_maglev, stress_maglev_tracing, stress_maglev_non_eager_inlining, stress_maglev_future, stress_maglev_no_turbofan, maglev_no_turbofan, turbolev, turbolev_future, stress_turbolev_future)) 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_tracing, stress_maglev_non_eager_inlining, stress_maglev_future, stress_maglev_no_turbofan, maglev_no_turbofan, turbolev, turbolev_future, stress_turbolev_future))' and (arch != arm)

##############################################################################
['variant == stress_maglev_tracing', {
  # Hangs with trace flags.
  'switch': [SKIP],

  # Slow with trace flags.
  'regress/regress-1146013': [PASS, SLOW],
}], # variant == stress_maglev_tracing

##############################################################################
['variant in (turbolev, turbolev_future, stress_turbolev_future)', {
  # 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],

  # Maglev doesn't unroll constant arrays in apply.
  'compiler/function-apply-constant-array': [SKIP],
  'compiler/function-apply-constant-slow-array': [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],

  # %TurbofanStaticAssert that don't hold because of various missing
  # optimizations in Turbolev.
  'compiler/concurrent-inlining-1': [SKIP],
  'compiler/concurrent-inlining-2': [SKIP],
  'compiler/construct-bound-function': [SKIP],
  'compiler/js-create-arguments': [SKIP],
  'compiler/js-create': [SKIP],
  'compiler/load-elimination-const-field': [SKIP],
  'compiler/reference-equal-boolean': [SKIP],
  'compiler/serializer-feedback-propagation-2': [SKIP],

  # --maglev-inline-api-calls is currently not supported by the translation.
  'regress/regress-crbug-1496606': [SKIP],

  # --jitless tests not supported
  'regress/regress-992389': [SKIP],
  'regress/regress-crbug-419454582': [SKIP],

}], # 'variant in (turbolev, turbolev_future, stress_turbolev_future)'

##############################################################################
['(variant in (turbolev, turbolev_future, stress_turbolev_future)) 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 in (turbolev, turbolev_future, stress_turbolev_future)) and (arch == arm64)

##############################################################################
['variant == stress_maglev_tests_with_turbofan', {
  # This test deopts in Turbofan because it doesn't realize than nan==nan,
  # whereas Maglev has special handling for this.
  'maglev/store-constant-field-nan': [SKIP],
}], # variant == stress_maglev_tests_with_turbofan'

##############################################################################
['clang_coverage and mode == debug', {
  # Slow tests.
  'es6/big-weakmap': [PASS, SLOW],
  'regress/wasm/regress-1010272': [PASS, SLOW],
  'wasm/table': [PASS, SLOW],

  # Too slow tests.
  'regress/regress-7558019': [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],
  'regress/wasm/regress-388934347-a': [SKIP],
}],  # 'wasm_random_fuzzers == False'

##############################################################################
['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/jspi*': [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 == conservative_stack_scanning', {
  'regress/regress-12657': [SKIP],
  'regress/regress-678917': [SKIP],
  'maglev/regress-1407606': [SKIP],

  # Slow tests.
  'ignition/regress-672027': [PASS, SLOW],
  'regress/wasm/regress-355493919': [SKIP], # No need to waste cpu cycles on it.

  # Test checks that object is reclaimed but cannot use async GCs.
  'weakrefs/minor-gc-*': [SKIP],
}],  # variant == conservative_stack_scanning

['variant == precise_pinning', {
  'weakrefs/minor-gc-*': [SKIP],
}],  # variant == precise_pinning

##############################################################################
['variant == code_serializer', {
  'compiler/fast-api-calls-nested': [SKIP],
  # JSON.parse with --shared-string-table is not supported on background
  # threads right now.
  'shared-memory/regress-crbug-1395117': [SKIP],
  # Fails due to CWD changes in arguments processing.
  'd8/cwd/working_dir': [SKIP],
}],  # variant == code_serializer

##############################################################################
['variant in [jit_fuzzing, jit_fuzzing_maglev]', {
  # Extremely slow tests.
  'regress/wasm/regress-808848': [SKIP],
  'shared-memory/*': [SKIP],
  'typedarray-growablesharedarraybuffer-atomics': [SKIP],

  # Hangs.
  'wasm/futex': [SKIP],

  # Slow tests.
  'wasm/max-params': [PASS, SLOW],

  # Requires lazy.
  'regress/regress-crbug-1407080': [SKIP],

  # These tests are not compatible with --fuzzing.
  'regress/regress-435630464-verification-failure': [SKIP],
  'turbolev/static-assert-fail': [SKIP],
  'turbolev/assert-peeled-fail': [SKIP],
  'turbolev/assert-not-peeled-fail': [SKIP],

  # Negative tests are not supported, because we pass --no-fail.
  'bugs/*': [SKIP],
  'es6/unicode-regexp-ignore-case-noi18n': [SKIP],
}],  # variant in [jit_fuzzing, jit_fuzzing_maglev]

##############################################################################
['variant in [no_lfa, always_sparkplug_and_stress_regexp_jit, stress_concurrent_inlining]', {
  # https://crbug.com/453967876
  'osr-elements-kind': [FAIL],
}],

##############################################################################
['not disassembler', {
  # Sets a flag which is read-only if the disassembler is disabled.
  'regress/regress-392928803': [FAIL],
}],  # not disassembler

##############################################################################
# https://issues.chromium.org/issues/404881599
['(arch == arm64) and simulator_run', {
'wasm/growable-stacks': [SKIP],
}], # (arch == arm64) and simulator_run

##############################################################################
['sandbox_hardware_support', {
  # Skip tests for unsupported features. See https://crbug.com/428674890.

  # Multi-mapped mock allocator is not currently supported.
  'regress/regress-crbug-1041232': [SKIP],
  'regress/regress-crbug-1209152': [SKIP],

  # Wasm code coverage is not currently supported.
  'regress/wasm/regress-488943662': [SKIP],
  'wasm/wasm-code-coverage': [SKIP],
  'regress/wasm/regress-526163463': [SKIP],

  # Tests that require the sampler/profiler, which doesn't work on older kernel
  # versions if hardware sandboxing is active. See https://crbug.com/429173713.
  'regress/regress-381390367': [SKIP],
  'regress-332570754': [SKIP],
  'regress/regress-490446682': [SKIP],
  'regress/regress-1394663': [SKIP],
  'regress/wasm/regress-crbug-1502180': [SKIP],
  'regress/wasm/regress-392928805': [SKIP],
  'regress/wasm/regress-406043349': [SKIP],
  'regress/wasm/regress-413963387': [SKIP],
  'wasm/interrupt-worker-with-perf': [SKIP],
  'wasm/liftoff-trap-handler': [SKIP],
  'wasm/log-code-after-post-message': [SKIP],
  'wasm/log-wasm-to-js-wrapper-callref': [SKIP],
  'wasm/log-wasm-to-js-wrapper-indirect': [SKIP],
}], # sandbox_hardware_support

['variant == experimental_regexp', {
  'regress/regress-503097371': [SKIP],
}],  # variant == experimental_regexp

##############################################################################
['variant in [dumpling_test]', {
  # Dumpling is not enabled for wasm:
  'regress/wasm/*': [SKIP],
  'wasm/*': [SKIP],

  # Slow tests:
  'array-constructor': [SKIP],
  'array-push11': [SKIP],
  'array-push14': [SKIP],
  'array-reduce': [SKIP],
  'array-store-and-grow': [SKIP],
  'big-object-literal': [SKIP],
  'compiler/battery-saver-limits-tiering': [SKIP],
  'compiler/efficiency-mode-limits-tiering': [SKIP],
  'compiler/osr-forin': [SKIP],
  'compiler/osr-forof': [SKIP],
  'compiler/string-add-try-catch': [SKIP],
  'compiler/string-concat-try-catch': [SKIP],
  'compiler/regress-1423468': [SKIP],
  'compiler/regress-801097': [SKIP],
  'deep-recursion': [SKIP],
  'delete': [SKIP],
  'elements-transition': [SKIP],
  'ensure-growing-store-learns': [SKIP],
  'es6/array-concat-typedarray': [SKIP],
  'es6/array-copywithin': [SKIP],
  'es6/big-weakmap': [SKIP],
  'es6/symbols': [SKIP],
  'es6/typedarray-copywithin': [SKIP],
  'frozen-array-reduce': [SKIP],
  'harmony/array-to-reversed-big': [SKIP],
  'harmony/array-to-spliced-big': [SKIP],
  'harmony/map-groupby': [SKIP],
  'harmony/object-groupby': [SKIP],
  'harmony/private': [SKIP],
  'ignition/regress-672027': [SKIP],
  'large-object-literal-slow-elements': [SKIP],
  'maglev/tier-to-ml-to-tf': [SKIP],
  'measure-memory-multiple-realms': [SKIP],
  'non-extensible-array-reduce': [SKIP],
  'regress/regress-1167': [SKIP],
  'regress/regress-1122': [SKIP],
  'regress/regress-12657': [SKIP],
  'regress/regress-3027': [SKIP],
  'regress/regress-381390367': [SKIP],
  'regress/regress-430201b': [SKIP],
  'regress/regress-458849015': [SKIP],
  'regress/regress-491': [SKIP],
  'regress/regress-492': [SKIP],
  'regress/regress-524': [SKIP],
  'regress/regress-5404': [SKIP],
  'regress/regress-655573': [SKIP],
  'regress/regress-732836': [SKIP],
  'regress/regress-91008': [SKIP],
  'regress/regress-crbug-1191886': [SKIP],
  'regress/regress-crbug-119926': [SKIP],
  'regress/regress-crbug-1263994': [SKIP],
  'regress/regress-crbug-702058-3': [SKIP],
  'regress/regress-crbug-781583': [SKIP],
  'regress/regress-crbug-820312': [SKIP],
  'regress/short-circuit': [SKIP],
  'sealed-array-reduce': [SKIP],
  'spread-large-array': [SKIP],
  'spread-large-string': [SKIP],
  'stress-array-push': [SKIP],
  'typedarray-growablesharedarraybuffer': [SKIP],
  'unbox-double-arrays': [SKIP],
  'unicode-test': [SKIP],

  # Crashing tests:
  'compiler/call-with-arraylike-or-spread': [SKIP],
  'compiler/regress-1239601': [SKIP],
  'compiler/regress-crbug-1520697': [SKIP],
  'deserialize-optimize-inner': [SKIP],
  'maglev/regress-464965404': [SKIP],
  'object-literal': [SKIP],
  'optimized-array-every': [SKIP],
  'optimized-array-find': [SKIP],
  'optimized-array-findindex': [SKIP],
  'optimized-array-some': [SKIP],
  'optimized-filter': [SKIP],
  'optimized-foreach': [SKIP],
  'optimized-foreach-polymorph': [SKIP],
  'optimized-map': [SKIP],
  'turbolev/regress-447520177': [SKIP],

  # Failing tests:
  'array-push9': [FAIL],
  'compiler/osr-block-scope': [FAIL],
  'compiler/regress-725743': [FAIL],
  'compiler/stress-deopt-count-2': [FAIL],
  'harmony/futex': [FAIL],
  'maglev/phi-untagging-conversions-no-truncation': [FAIL],
  'maglev/string-compare': [FAIL],
  'opt-proto-seq/proto-seq-opt-arrow-function': [FAIL],
  'opt-proto-seq/proto-seq-opt-assign-key-multiple-times': [FAIL],
  'opt-proto-seq/proto-seq-opt-basic': [FAIL],
  'opt-proto-seq/proto-seq-opt-before-after': [FAIL],
  'opt-proto-seq/proto-seq-opt-class-fast-path': [FAIL],
  'opt-proto-seq/proto-seq-opt-computed': [FAIL],
  'opt-proto-seq/proto-seq-opt-constructor': [FAIL],
  'opt-proto-seq/proto-seq-opt-destructuring': [FAIL],
  'opt-proto-seq/proto-seq-opt-different-left-most-var': [FAIL],
  'opt-proto-seq/proto-seq-opt-different-objects': [FAIL],
  'opt-proto-seq/proto-seq-opt-duplicate': [FAIL],
  'opt-proto-seq/proto-seq-opt-eval-return-last-set-property': [FAIL],
  'opt-proto-seq/proto-seq-opt-feedback-vector-side-effect': [FAIL],
  'opt-proto-seq/proto-seq-opt-frozen-objects': [FAIL],
  'opt-proto-seq/proto-seq-opt-frozen-objects-strict': [FAIL],
  'opt-proto-seq/proto-seq-opt-function-fast-path': [FAIL],
  'opt-proto-seq/proto-seq-opt-functions': [FAIL],
  'opt-proto-seq/proto-seq-opt-get-own-property-descriptor': [FAIL],
  'opt-proto-seq/proto-seq-opt-get-own-property-descriptors': [FAIL],
  'opt-proto-seq/proto-seq-opt-global-proxy': [FAIL],
  'opt-proto-seq/proto-seq-opt-has-prototype-keys': [FAIL],
  'opt-proto-seq/proto-seq-opt-has-setters': [FAIL],
  'opt-proto-seq/proto-seq-opt-ignore-chain-descriptors': [FAIL],
  'opt-proto-seq/proto-seq-opt-iife': [FAIL],
  'opt-proto-seq/proto-seq-opt-interleaved': [FAIL],
  'opt-proto-seq/proto-seq-opt-lazy-override-builtin': [FAIL],
  'opt-proto-seq/proto-seq-opt-limit': [FAIL],
  'opt-proto-seq/proto-seq-opt-locked-proto': [FAIL],
  'opt-proto-seq/proto-seq-opt-locked-proto-strict': [FAIL],
  'opt-proto-seq/proto-seq-opt-non-extensible-objects': [FAIL],
  'opt-proto-seq/proto-seq-opt-non-extensible-objects-strict': [FAIL],
  'opt-proto-seq/proto-seq-opt-non-literal': [FAIL],
  'opt-proto-seq/proto-seq-opt-not-function': [FAIL],
  'opt-proto-seq/proto-seq-opt-not-proto-assign-seq': [FAIL],
  'opt-proto-seq/proto-seq-opt-null-prototype': [FAIL],
  'opt-proto-seq/proto-seq-opt-object-assign': [FAIL],
  'opt-proto-seq/proto-seq-opt-object-entries': [FAIL],
  'opt-proto-seq/proto-seq-opt-object-values': [FAIL],
  'opt-proto-seq/proto-seq-opt-poison-default-proto': [FAIL],
  'opt-proto-seq/proto-seq-opt-preserve-descriptor': [FAIL],
  'opt-proto-seq/proto-seq-opt-proto-of-prototype-assigned': [FAIL],
  'opt-proto-seq/proto-seq-opt-proto-prop': [FAIL],
  'opt-proto-seq/proto-seq-opt-prototype-proto-keys': [FAIL],
  'opt-proto-seq/proto-seq-opt-prototype-read-only': [FAIL],
  'opt-proto-seq/proto-seq-opt-readonly-chain': [FAIL],
  'opt-proto-seq/proto-seq-opt-reassign-local': [FAIL],
  'opt-proto-seq/proto-seq-opt-reflect-get': [FAIL],
  'opt-proto-seq/proto-seq-opt-reflect-get-own-property-descriptor': [FAIL],
  'opt-proto-seq/proto-seq-opt-setter-chain': [FAIL],
  'opt-proto-seq/proto-seq-opt-shadow': [FAIL],
  'opt-proto-seq/proto-seq-opt-slow-modified': [FAIL],
  'opt-proto-seq/proto-seq-opt-slow-non-extensible': [FAIL],
  'opt-proto-seq/proto-seq-opt-spreading': [FAIL],
  'opt-proto-seq/proto-seq-opt-strict': [FAIL],
  'opt-proto-seq/proto-seq-opt-structured-clone': [FAIL],
  'opt-proto-seq/proto-seq-opt-variable-proxy': [FAIL],
  'opt-proto-seq/proto-seq-opt-variable-proxy-eval': [FAIL],
  'regress/regress-1132': [FAIL],
  'regress/regress-3650-1': [FAIL],
  'regress/regress-447206453': [FAIL],
  'regress/regress-8510-2': [FAIL],
  'regress/regress-9383': [FAIL],
  'regress/regress-crbug-1000094': [FAIL],
  'regress/regress-crbug-1000170': [FAIL],
  'regress/regress-crbug-1003403': [FAIL],
  'regress/regress-crbug-980422': [FAIL],
  'regress/regress-crbug-981701': [FAIL],
  'regress/regress-crbug-988304': [FAIL],
  'regress/regress-crbug-994719': [FAIL],
  'regress/regress-crbug-997320': [FAIL],
  'regress/regress-crbug-999450': [FAIL],
  'regress/regress-v8-9394-2': [FAIL],
}],

##############################################################################
['not temporal', {
  # Needs temporal:
  'regress/regress-463593768': [SKIP],
  'regress/regress-464961493': [SKIP],
  'regress/regress-493269623': [SKIP],
  'regress/regress-495503781': [SKIP],
  'regress/regress-temporal-zoneinfo': [SKIP],
}],

##############################################################################
['not test_only_sync_points', {
  # Requires test-only sync points
  'compiler/concurrent-string-ext-seq': [SKIP],
  'regress/regress-511263221': [SKIP],
}],  # not test_only_sync_points

##############################################################################
['not sandbox', {
  # Requires V8 sandbox to be enabled (relies on external pointer table index layout
  # and fails in-place externalization without sandbox on 64-bit pointer compression builds).
  'regress/regress-539212794': [SKIP],
}],  # not sandbox
]
