# 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],
  'regress/modules-skip*': [SKIP],
  'wasm/exceptions-utils': [SKIP],
  'wasm/wasm-module-builder': [SKIP],

  # All tests in the bug directory are expected to fail.
  'bugs/*': [FAIL],

  ##############################################################################
  # Open bugs.

  # BUG(v8:2989).
  'regress/regress-2989': [FAIL, NO_VARIANTS, ['lite_mode == True', SKIP]],

  # 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:8169)
  'external-backing-store-gc': [SKIP],

  # BUG(v8:9260)
  'tools/profviz': [SKIP],

  # Issue 9380: Memory leaks of shared WebAssembly.Memory objects
  'wasm/shared-memory-worker-gc': [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],

  # https://crbug.com/v8/issues/10486
  # Enable once multi-byte prefixed opcodes are correctly handled
  'regress/wasm/regress-1065599': [SKIP],

  ##############################################################################
  # Tests where variants make no sense.
  'd8/enable-tracing': [PASS, NO_VARIANTS],
  'd8/d8-os': [PASS, NO_VARIANTS],
  'd8/d8-performance-now': [PASS, NO_VARIANTS],
  'regexp-global': [PASS, NO_VARIANTS],
  'regress/regress-4595': [PASS, NO_VARIANTS],
  'regress/regress-crbug-491062': [PASS, NO_VARIANTS],
  'third_party/regexp-pcre/regexp-pcre': [PASS, NO_VARIANTS],
  'tools/compiler-trace-flags': [PASS, NO_VARIANTS],
  'tools/dumpcpp': [PASS, NO_VARIANTS],
  'tools/tickprocessor': [PASS, NO_VARIANTS],

  # Issue 488: this test sometimes times out.
  # TODO(arm): This seems to flush out a bug on arm with simulator.
  'array-constructor': [PASS, SLOW, ['arch == arm and simulator_run', SKIP]],

  ##############################################################################
  # Long-running tests.
  # We really should find better solutions for these.
  'es6/promise-all-overflow-1': [SKIP],
  'harmony/promise-any-overflow-1': [SKIP],
  'migrations': [SKIP],
  'regress/regress-2073': [SKIP],

  ##############################################################################
  # Tests verifying CHECK and ASSERT.
  'verify-check-false': [FAIL, NO_VARIANTS],
  'verify-assert-false': [NO_VARIANTS, ['mode == release and dcheck_always_on == False', PASS], ['mode == debug', FAIL]],

  ##############################################################################
  # Tests with different versions for release and debug.
  'compiler/alloc-number': [PASS, ['mode == debug', SKIP]],
  'compiler/alloc-number-debug': [PASS, ['mode == release', SKIP]],
  'regress/regress-634-debug': [PASS, ['mode == release', SKIP]],

  # This test variant makes only sense on arm.
  'math-floor-of-div-nosudiv': [PASS, SLOW, ['arch not in [arm, arm64]', SKIP]],

  # OOM flakes in isolates tests because too many largish heaps are created.
  'asm/asm-heap': [PASS, NO_VARIANTS, ['isolates', SKIP]],

  # Slow tests.
  'array-functions-prototype-misc': [PASS, SLOW],
  'asm/embenchen/*': [PASS, SLOW, NO_VARIANTS],
  'asm/poppler/*': [PASS, SLOW, NO_VARIANTS],
  'asm/sqlite3/*': [PASS, SLOW, NO_VARIANTS],
  'compiler/regress-9017': [PASS, SLOW],
  'es6/promise-all-overflow-2': [PASS, SLOW, ['arch != x64', SKIP]],
  'harmony/promise-any-overflow-2': [PASS, SLOW, ['arch != x64', SKIP]],
  'copy-on-write-assert': [PASS, SLOW],
  'es6/typedarray-construct-offset-not-smi': [PASS, SLOW],
  'harmony/futex': [PASS, SLOW],
  'harmony/regexp-property-script-extensions': [PASS, SLOW],
  'ignition/regress-672027': [PASS, SLOW],
  'md5': [PASS, SLOW],
  'readonly': [PASS, SLOW],
  'regress/regress-1122': [PASS, SLOW],
  'regress/regress-605470': [PASS, SLOW],
  'regress/regress-655573': [PASS, SLOW],
  'regress/regress-1200351': [PASS, SLOW],
  'regress/regress-crbug-808192': [PASS, SLOW, NO_VARIANTS, ['arch not in (ia32, x64)', SKIP]],
  'regress/regress-crbug-918301': [PASS, SLOW, NO_VARIANTS, ['mode != release or dcheck_always_on', SKIP], ['(arch == arm or arch == arm64) and simulator_run', SKIP], ['tsan', SKIP]],
  'regress/wasm/regress-810973': [PASS, SLOW],
  'string-replace-gc': [PASS, SLOW],
  'wasm/asm-wasm-f32': [PASS, SLOW],
  'wasm/asm-wasm-f64': [PASS, SLOW],
  'wasm/embenchen/*': [PASS, SLOW],
  'wasm/grow-memory': [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/compare-exchange-stress': [PASS, SLOW, NO_VARIANTS],
  'wasm/compare-exchange64-stress': [PASS, SLOW, NO_VARIANTS],

  # Very slow on ARM and MIPS, contains no architecture dependent code.
  'unicode-case-overoptimization': [PASS, NO_VARIANTS, ['arch in (arm, arm64, mipsel, mips64el, mips64, mips)', SKIP]],
  'regress/regress-3976': [PASS, NO_VARIANTS, ['arch in (arm, arm64, mipsel, mips64el, mips64, mips)', SKIP]],
  'regress/regress-crbug-482998': [PASS, NO_VARIANTS, ['arch in (arm, arm64, mipsel, mips64el, mips)', SKIP]],
  'regress/regress-740784': [PASS, NO_VARIANTS, ['arch in (arm, arm64, mipsel, mips64el, mips)', 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.
  'regress/regress-crbug-9161': [PASS, SLOW, ['asan == False', 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, NO_VARIANTS, ['system == android', SKIP], ['predictable', SKIP]],

  # Only makes sense in the no_i18n variant.
  'es6/unicode-regexp-ignore-case-noi18n':
      [['no_i18n == True', PASS], ['no_i18n == False', FAIL]],

  # Needs to be adapted after changes to Function constructor. chromium:1065094
  'cross-realm-filtering': [SKIP],
}],  # ALWAYS

##############################################################################
['mode == debug', {
  # Skip slow tests in debug mode.
  'array-functions-prototype-misc': [SKIP],
  'compiler/regress-808472': [SKIP],
  'es6/promise-all-overflow-2': [SKIP],
  'generated-transition-stub': [SKIP],
  'regress/regress-524': [SKIP],
  'regress/regress-4595': [SKIP],
  'regress/regress-430201': [SKIP],
  'regress/regress-430201b': [SKIP],
  'regress/regress-716044': [SKIP],
  'regress/regress-crbug-217858': [SKIP],
  'regress/regress-crbug-808192': [SKIP],
  'regress/regress-crbug-941743': [SKIP],
  'regress/regress-create-exception': [SKIP],

  # These tests run out of stack space in debug mode.
  'big-array-literal': [SKIP],
  'big-object-literal': [SKIP],

  # Too slow in debug mode BUG(v8:9506): times out.
  'wasm/shared-memory-worker-explicit-gc-stress': [SKIP],
  'wasm/shared-memory-worker-gc-stress': [SKIP],

  # For these tests, making them as slow is enough:
  'numops-fuzz-part*': [SLOW],

  # worker creation/shutdown is very slow in debug mode
  'd8/d8-worker-shutdown*': [SLOW],
  # Allocates a huge string and then flattens it.
  'regress/regress-752764': [SLOW],
}],  # mode == debug

['novfp3', {
  'asm/embenchen/box2d': [SKIP],
  'asm/embenchen/zlib': [SKIP],
  'asm/embenchen/memops': [SKIP],
  'asm/embenchen/lua_binarytrees': [SKIP],
}],  # novfp3

##############################################################################
# TODO(ahaas): Port multiple return values to MIPS, S390 and PPC
['arch in (mips, mips64, mipsel, mips64el, s390, s390x, ppc, ppc64)', {
  'wasm/multi-value': [SKIP],
}],

##############################################################################
['simulator_run', {
  # Skip/annotate tests that are too slow on simulators.
  'random-bit-correlations': [SLOW],
  'regress/regress-crbug-941743': [SKIP],
  'regress/regress-crbug-1041232': [SKIP],
  'regress/wasm/regress-1010272': [SKIP],
  'wasm/atomics-stress': [SKIP],
  'wasm/atomics64-stress': [SKIP],
}],  # simulator_run

##############################################################################
['gc_stress', {
  # Skip tests not suitable for GC stress.
  'allocation-site-info': [SKIP],
  'array-constructor-feedback': [SKIP],
  'array-feedback': [SKIP],
  'array-literal-feedback': [SKIP],
  'd8/d8-performance-now': [SKIP],
  'elements-kind': [SKIP],
  'elements-transition-hoisting': [SKIP],
  'fast-prototype': [SKIP],
  'field-type-tracking': [SKIP],
  'getters-on-elements': [SKIP],
  'es6/block-let-crankshaft': [SKIP],
  'opt-elements-kind': [SKIP],
  'osr-elements-kind': [SKIP],
  'compiler/number-divide': [SKIP],
  'regress/regress-crbug-137689': [SKIP],
  'regress/regress-trap-allocation-memento': [SKIP],
  'regress/regress-2249': [SKIP],
  'regress/regress-4121': [SKIP],
  'regress/regress-6989': [SKIP],
  'compare-known-objects-slow': [SKIP],
  'compiler/array-multiple-receiver-maps': [SKIP],
  # Tests taking too long
  'regress/regress-1122': [SKIP],
  'regress/regress-331444': [SKIP],
  'regress/regress-353551': [SKIP],
  'regress/regress-crbug-119926': [SKIP],
  'regress/short-circuit': [SKIP],
  'stack-traces-overflow': [SKIP],
  'unicode-test': [SKIP],
  'whitespaces': [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, NO_VARIANTS],
  'unicodelctest': [PASS, NO_VARIANTS],
  'unicodelctest-no-optimization': [PASS, NO_VARIANTS],

  # TODO(jkummerow): Doesn't work correctly in GC stress.
  'regress/regress-crbug-500497': [SKIP],

  # Too slow for gc stress.
  'asm/embenchen/box2d': [SKIP],

  # BUG(v8:4237)
  'regress/regress-3976': [SKIP],

  # Slow tests.
  'array-constructor': [PASS, SLOW],
  'json': [PASS, SLOW],
  'large-object-literal-slow-elements': [PASS, SLOW],
  'harmony/sharedarraybuffer-worker-gc-stress': [PASS, SLOW],

  # BUG(v8:4779): Crashes flakily with stress mode on arm64.
  'array-splice': [PASS, SLOW, ['arch == arm64', NO_VARIANTS]],

  # BUG(v8:7880): Slow tests.
  'regress/regress-707066': [SKIP],
  'regress/regress-446389': [SKIP],
  'regress/regress-458987': [SKIP],
  'es6/regress/regress-crbug-465671': [SKIP],
  'regress/regress-inline-getter-near-stack-limit': [SKIP],
  'es6/regress/regress-crbug-465671-null': [SKIP],
  'regress/regress-148378': [SKIP],
  'regress/regress-crbug-762472': [SKIP],

  # BUG(v8:10035)
  'compiler/deopt-array-builtins': [SKIP],
}],  # 'gc_stress'

##############################################################################
['lite_mode or variant == jitless', {
  # Skip tests not suitable for lite_mode.

  # TODO(v8:7777): Re-enable once wasm is supported in jitless mode.
  'regress/regress-5888': [SKIP],
  'regress/regress-5911': [SKIP],
  'regress/regress-813440': [SKIP],
  'regress/regress-crbug-746835': [SKIP],
  'regress/regress-crbug-772056': [SKIP],
  'regress/regress-crbug-816961': [SKIP],
  'regress/regress-crbug-969498': [SKIP],
  'regress/regress-crbug-1047368': [SKIP],
  'regress/wasm/*': [SKIP],
  'regress/regress-8947': [SKIP],
  'regress/regress-9209': [SKIP],
  'regress/regress-1034394': [SKIP],
  'regress/regress-v8-9106': [SKIP],
  'wasm/*': [SKIP],

  # Other tests that use asm / wasm / optimized code.
  'asm/asm-heap': [SKIP],
  'asm/asm-validation': [SKIP],
  'asm/call-stdlib': [SKIP],
  'asm/call-annotation': [SKIP],
  'asm/global-imports': [SKIP],
  'asm/regress-1027595': [SKIP],
  'asm/regress-913822': [SKIP],
  'asm/regress-937650': [SKIP],
  'asm/regress-9531': [SKIP],
  'asm/return-types': [SKIP],
  'regress/regress-599719': [SKIP],
  'regress/regress-6196': [SKIP],
  'regress/regress-6700': [SKIP],
  'regress/regress-6838-2': [SKIP],
  'regress/regress-6838-3': [SKIP],
  'regress/regress-6838-4': [SKIP],
  'regress/regress-9022': [SKIP],
  'regress/regress-9832': [SKIP],
  'regress/regress-crbug-934138': [SKIP],
  'regress/regress-crbug-976934': [SKIP],

  # Timeouts in lite / jitless mode.
  'asm/embenchen/*': [SKIP],

  # Tests that generate code at runtime.
  'code-comments': [SKIP],
  'regress/regress-617526': [SKIP],
  'regress/regress-7893': [SKIP],
  'regress/regress-8377': [SKIP],
  'regress/regress-863810': [SKIP],
  'regress/regress-crbug-721835': [SKIP],
  'regress/regress-crbug-759327': [SKIP],
  'regress/regress-crbug-898974': [SKIP],
  'regexp-tier-up': [SKIP],
  'regexp-tier-up-multiple': [SKIP],
  'regress/regress-996234': [SKIP],

  # Tests that depend on optimization (beyond doing assertOptimized).
  'compiler/is-being-interpreted-*': [SKIP],
  'compiler/serializer-accessors': [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],

  # These tests check that we can trace the compiler.
  'tools/compiler-trace-flags': [SKIP],
  'tools/compiler-trace-flags-wasm': [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],
}],  # 'lite_mode or variant == jitless'

##############################################################################
['no_i18n', {
  # Case-insensitive unicode regexp relies on case mapping provided by ICU.
  'es6/unicode-regexp-ignore-case': [FAIL],
  'regress/regress-5036': [FAIL],
  'es7/regexp-ui-word': [FAIL],
  'regexp-modifiers-i18n': [FAIL],
  'regexp-modifiers-autogenerated-i18n': [FAIL],

  # Desugaring regexp property class relies on ICU. Anything goes as long as we
  # don't crash.
  'harmony/regexp-property-*': [PASS,FAIL],
  'regress/regress-793588': [PASS,FAIL],

  # noi18n build cannot parse characters in supplementary plane.
  'harmony/regexp-named-captures': [FAIL],

  # noi18n cannot turn on ICU backend for Date
  'icu-date-to-string': [SKIP],
  'icu-date-lord-howe': [SKIP],
  'tzoffset-transition-apia': [SKIP],
  'tzoffset-transition-lord-howe': [SKIP],
  'tzoffset-transition-moscow': [SKIP],
  'tzoffset-transition-new-york': [SKIP],
  'tzoffset-seoul': [SKIP],

  # noi18n is required for Intl
  'regress/regress-crbug-1052647': [SKIP],
}],  # 'no_i18n'

##############################################################################
['is_full_debug', {
  # Tests too slow in non-optimized debug mode.
  'regress/regress-2790': [SKIP],
  'regress/regress-331444': [SKIP],
  'regress/regress-740784': [SKIP],
}],  # 'is_full_debug'

##############################################################################
['byteorder == big', {
  # Emscripten requires little-endian, skip all tests on big endian platforms.
  'asm/embenchen/*': [SKIP],
  'asm/poppler/*': [SKIP],
  'asm/sqlite3/*': [SKIP],
  # TODO(mips-team): Fix Wasm for big-endian.
  'wasm/*': [SKIP],
}],  # 'byteorder == big'

##############################################################################
# 32-bit platforms
['arch in (ia32, arm, mips, mipsel)', {
  # Needs >2GB of available contiguous memory.
  'wasm/grow-huge-memory': [SKIP],
  'wasm/huge-memory': [SKIP],
  'wasm/huge-typedarray': [SKIP],
}],  # 'arch in (ia32, arm, mips, mipsel)'

##############################################################################
['arch == arm64', {

  # Requires bigger stack size in the Genesis and if stack size is increased,
  # the test requires too much time to run.  However, the problem test covers
  # should be platform-independent.
  'regress/regress-1132': [SKIP],

  # Pass but take too long to run. Skip.
  # Some similar tests (with fewer iterations) may be included in arm64-js
  # tests.
  'asm/embenchen/box2d': [SKIP],
  'asm/embenchen/lua_binarytrees': [SKIP],
  'compiler/regress-arguments': [SKIP],
  'compiler/regress-gvn': [SKIP],
  'compiler/regress-4': [SKIP],
  'compiler/regress-or': [SKIP],
  'compiler/regress-rep-change': [SKIP],
  'regress/regress-1117': [SKIP],
  'regress/regress-1849': [SKIP],
  'regress/regress-3247124': [SKIP],
  'regress/regress-91008': [SKIP],
  'regress/regress-91010': [SKIP],
  'regress/regress-91013': [SKIP],
  'regress/regress-99167': [SKIP],

  # BUG(v8:3457).
  'deserialize-reference': [PASS, FAIL],

  # BUG(v8:4016)
  'regress/regress-crbug-467047': [SKIP],

  # OOMing tests
  'regress/regress-500980': [SKIP],

  # BUG(v8:9337).
  'compiler/regress-9017': [SKIP],

  # Slow tests.
  'array-concat': [PASS, SLOW],
  '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],
  'json2': [PASS, SLOW],
  'math-floor-of-div-nosudiv': [PASS, SLOW],
  'math-floor-of-div': [PASS, SLOW],
  'messages': [PASS, SLOW],
  'regress/regress-2790': [PASS, SLOW],
  'regress/regress-331444': [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],
}],  # 'arch == arm64'

##############################################################################
['arch == arm64 and simulator_run', {
  'compiler/osr-big': [PASS, SLOW],
  'regress/regress-454725': [PASS, SLOW],
  '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': [PASS, SLOW],
  '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],
}],  # 'asan == True'

##############################################################################
['msan == True', {
  # Skip tests not suitable for MSAN.
  'big-array-literal': [SKIP],
  # ICU upstream issues.
  'date': [SKIP],
  'deep-recursion': [SKIP],
  'regress/regress-builtinbust-7': [SKIP],
  'string-localecompare': [SKIP],

  # Too slow.
  'asm/embenchen/zlib': [SKIP],
  'harmony/regexp-property-lu-ui': [SKIP],
  'regress/regress-779407': [SKIP],
  'wasm/embenchen/box2d': [SKIP],
  'wasm/embenchen/lua_binarytrees': [SKIP],
  'wasm/embenchen/zlib': [SKIP],

  # https://bugs.chromium.org/p/v8/issues/detail?id=7102
  # Flaky due to huge string allocation.
  'regress/regress-748069': [SKIP],
}],  # 'msan == True'

##############################################################################
['tsan == True', {

  # https://bugs.chromium.org/p/v8/issues/detail?id=7102
  # Flaky due to huge string allocation.
  'regress/regress-748069': [SKIP],

  # Allocates a large array buffer, which TSAN sometimes cannot handle.
  'regress/regress-599717': [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],
  'regress/regress-752764': [PASS, SLOW, 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.
  'es6/block-conflicts-sloppy': [PASS, SLOW],
  'math-floor-part1': [PASS, SLOW],
  'regress/regress-430201': [SKIP],
  'regress/regress-500980': [PASS, SLOW],

  # BUG(v8:9506): times out.
  'wasm/shared-memory-worker-explicit-gc-stress': [SKIP],
}],  # 'tsan == True'

##############################################################################
['arch == arm', {

  # Slow tests which times out in debug mode.
  'try': [PASS, ['mode == debug', SKIP]],
  'array-constructor': [PASS, ['mode == debug', SKIP]],
  'regress/regress-1122': [PASS, SLOW, ['mode == debug', SKIP]],

  # Flaky test that can hit compilation-time stack overflow in debug mode.
  'unicode-test': [PASS, ['mode == debug', FAIL]],

  # Slow in release mode on ARM.
  'compiler/regress-stacktrace-methods': [PASS, SLOW],
  'array-splice': [PASS, SLOW],

  # Long running tests. Skipping because having them timeout takes too long on
  # the buildbot.
  'compiler/alloc-number': [SKIP],
  'regress/regress-490': [SKIP],
  'regress/regress-create-exception': [SKIP],
  'regress/regress-3247124': [SKIP],

  # Requires bigger stack size in the Genesis and if stack size is increased,
  # the test requires too much time to run.  However, the problem test covers
  # should be platform-independent.
  'regress/regress-1132': [SKIP],

  # Currently always deopt on minus zero
  'math-floor-of-div-minus-zero': [SKIP],

  # BUG(v8:9337).
  'compiler/regress-9017': [SKIP],

  # Slow tests.
  'array-sort': [PASS, SLOW],
  'compiler/osr-with-args': [PASS, SLOW],
  'regress/regress-2790': [PASS, SLOW],
  'regress/regress-91008': [PASS, SLOW],
  'regress/regress-json-stringify-gc': [PASS, SLOW],
  'string-indexof-2': [PASS, SLOW],
  'wasm/atomics': [PASS, SLOW],
}],  # 'arch == arm

##############################################################################
['arch in (mipsel, mips, 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-599717': [PASS, NO_VARIANTS],
  'regress/regress-599414-array-concat-fast-path': [PASS, NO_VARIANTS],
  'array-functions-prototype-misc': [PASS, NO_VARIANTS],
}],  # 'arch in (mipsel, mips, mips64el, mips64)'

##############################################################################
['arch in (mipsel, mips, mips64el, mips64, ppc, ppc64)', {
  # These tests fail because qNaN and sNaN values are encoded differently on
  # MIPS and ARM/x86 architectures
  'wasm/float-constant-folding': [SKIP],
}],

##############################################################################
['arch == mipsel or arch == mips', {

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

  # Long running tests. Skipping because having them timeout takes too long on
  # the buildbot.
  'compiler/alloc-number': [SKIP],
  'regress/regress-490': [SKIP],
  'regress/regress-create-exception': [SKIP],
  'regress/regress-3247124': [SKIP],

  # Requires bigger stack size in the Genesis and if stack size is increased,
  # the test requires too much time to run.  However, the problem test covers
  # should be platform-independent.
  'regress/regress-1132': [SKIP],

  # Currently always deopt on minus zero
  'math-floor-of-div-minus-zero': [SKIP],

  # Requires too much memory on MIPS.
  'regress/regress-752764': [SKIP],
  'regress/regress-779407': [SKIP],
  'harmony/bigint/regressions': [SKIP],

  # Pre-r6 MIPS32 doesn't have instructions needed to properly handle 64-bit
  # atomic instructions.
  'wasm/atomics64-stress': [PASS, ['mips_arch_variant != r6', SKIP]],
}],  # 'arch == mipsel or arch == mips'

##############################################################################
['arch == mips64el or arch == mips64', {

  # Slow tests which times out in debug mode.
  'try': [PASS, ['mode == debug', SKIP]],
  'array-constructor': [PASS, ['mode == debug', SKIP]],

  # Slow in release mode on MIPS.
  'compiler/regress-stacktrace-methods': [PASS, SLOW],
  'array-splice': [PASS, SLOW],

  # Long running test.
  'string-indexof-2': [PASS, SLOW],

  # BUG(3251035): Timeouts in long looping crankshaft optimization
  # tests. Skipping because having them timeout takes too long on the
  # buildbot.
  'compiler/alloc-number': [PASS, SLOW],
  'compiler/array-length': [PASS, SLOW],
  'compiler/assignment-deopt': [PASS, SLOW],
  'compiler/deopt-args': [PASS, SLOW],
  'compiler/inline-compare': [PASS, SLOW],
  'compiler/inline-global-access': [PASS, SLOW],
  'compiler/optimized-function-calls': [PASS, SLOW],
  'compiler/pic': [PASS, SLOW],
  'compiler/property-calls': [PASS, SLOW],
  'compiler/recursive-deopt': [PASS, SLOW],
  'compiler/regress-4': [PASS, SLOW],
  'compiler/regress-funcaller': [PASS, SLOW],
  'compiler/regress-rep-change': [PASS, SLOW],
  'compiler/regress-arguments': [PASS, SLOW],
  'compiler/regress-funarguments': [PASS, SLOW],
  'compiler/regress-3249650': [PASS, SLOW],
  'compiler/simple-deopt': [PASS, SLOW],
  'regress/regress-490': [PASS, SLOW],
  'regress/regress-create-exception': [PASS, SLOW],
  'regress/regress-3218915': [PASS, SLOW],
  'regress/regress-3247124': [PASS, SLOW],

  # Requires bigger stack size in the Genesis and if stack size is increased,
  # the test requires too much time to run.  However, the problem test covers
  # should be platform-independent.
  'regress/regress-1132': [SKIP],

  # Currently always deopt on minus zero
  'math-floor-of-div-minus-zero': [SKIP],

  # Requires too much memory on MIPS.
  'regress/regress-752764': [SKIP],
  'regress/regress-779407': [SKIP],
}],  # 'arch == mips64el or arch == mips64'

##############################################################################
['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],
}],  # 'system == windows'

##############################################################################
['system == android', {
  # Tests consistently failing on Android.
  # Setting the locale with environment variables unavailable
  'icu-date-to-string': [SKIP],
  'icu-date-lord-howe': [SKIP],
  'regress/regress-6288': [SKIP],
  # OOM:
  'regress/regress-752764': [FAIL],
  # Flaky OOM:
  'regress/regress-748069': [SKIP],
  'regress/regress-779407': [SKIP],
  'regress/regress-852258': [SKIP],
}],  # 'system == android'

##############################################################################
['isolates', {
  # Slow tests.
  'es6/typedarray-of': [PASS, SLOW],
  'regress/regress-crbug-854299': [PASS, SLOW],

  # Currently d8-os generates a temporary directory name using Math.random(), so
  # we cannot run several variants of d8-os simultaneously, since all of them
  # get the same random seed and would generate the same directory name.
  'd8/d8-os': [SKIP],

  # Runs flakily OOM because multiple isolates are involved which create many
  # wasm memories each. Before running OOM on a wasm memory allocation we
  # trigger a GC, but only in the isolate allocating the new memory.
  'wasm/module-memory': [SKIP],
  'wasm/shared-memory-gc-stress': [SKIP],

  # The {FreezeWasmLazyCompilation} runtime function sets a flag in the native
  # module, which causes a data-race if the native module is shared between
  # isolates.
  'wasm/lazy-compilation': [SKIP],

  # Tier down/up Wasm NativeModule in debugging is non-deterministic with
  # multiple isolates (https://crbug.com/v8/10099).
  'wasm/tier-down-to-liftoff': [SKIP],
}],  # 'isolates'

##############################################################################
['deopt_fuzzer', {

  # Skip tests that are not suitable for deoptimization fuzzing.
  'never-optimize': [SKIP],
  'readonly': [SKIP],
  'array-feedback': [SKIP],
  'array-reduce': [SKIP],
  'deopt-recursive-eager-once': [SKIP],
  'deopt-recursive-lazy-once': [SKIP],
  'deopt-recursive-soft-once': [SKIP],
  'code-coverage-block-opt': [SKIP],
  'compiler/serializer-apply': [SKIP],
  'compiler/serializer-call': [SKIP],
  'compiler/serializer-dead-after-jump': [SKIP],
  'compiler/serializer-dead-after-return': [SKIP],
  'compiler/serializer-transition-propagation': [SKIP],
  'regress/regress-1049982-1': [SKIP],
  'regress/regress-1049982-2': [SKIP],

  # Bounds check triggers forced deopt for array constructors.
  'array-constructor-feedback': [SKIP],

  # Deopting uses just enough memory to make this one OOM.
  'regress/regress-3976': [SKIP],

  # Forced optimisation path tests.
  'shared-function-tier-up-turbo': [SKIP],

  # Too slow tests.
  'regress/regress-740784': [SKIP],

  # https://crbug.com/v8/9984
  'compiler/opt-higher-order-functions': [SKIP],
}],  # 'deopt_fuzzer'

##############################################################################
['gc_fuzzer', {
  'regress/regress-336820': [SKIP],
  'regress/regress-748069': [SKIP],
  'regress/regress-778668': [SKIP],
  'ignition/regress-672027': [PASS, ['tsan', SKIP]],
  'string-replace-gc': [PASS, SLOW, ['mode == debug', SKIP]],

  # Unsuitable for GC fuzzing because coverage information is lost on GC.
  'code-coverage-ad-hoc': [SKIP],
  'code-coverage-precise': [SKIP],

  # Flaky under GC stress (sometimes precludes the tested optimization)
  'compiler/load-elimination-const-field': [SKIP],

  # Passes incompatible arguments.
  'd8/d8-arguments': [SKIP],

  # Fails allocation on tsan.
  'regress/regress-779407': [PASS, ['tsan', SKIP]],

  # Tests that fail some assertions due to checking internal state sensitive
  # to GC.
  'compiler/native-context-specialization-hole-check': [SKIP],
  'compiler/serializer-apply': [SKIP],
  'compiler/serializer-call': [SKIP],
  'compiler/serializer-dead-after-jump': [SKIP],
  'compiler/serializer-dead-after-return': [SKIP],
  'compiler/serializer-transition-propagation': [SKIP],
  'opt-elements-kind': [SKIP],
  'regress/regress-trap-allocation-memento': [SKIP],
  'regress/regress-v8-9267-*': [SKIP],
  'shared-function-tier-up-turbo': [SKIP],
}],  # 'gc_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'

##############################################################################
['predictable == True', {

  # 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],
  'harmony/futex': [SKIP],

  # BUG(v8:7166).
  'd8/enable-tracing': [SKIP],

  # Rely on (blocking) concurrent compilation.
  'compiler/concurrent-invalidate-transition-map': [SKIP],
  'compiler/concurrent-proto-change': [SKIP],
  'compiler/manual-concurrent-recompile': [SKIP],
  'compiler/regress-905555-2': [SKIP],
  'compiler/regress-905555': [SKIP],
  'compiler/regress-9945-1': [SKIP],
  'concurrent-initial-prototype-change': [SKIP],
  'regress/regress-356053': [SKIP],
  'regress/regress-embedded-cons-string': [SKIP],

  # Intentionally non-deterministic using shared arraybuffers.
  'wasm/atomics-stress': [SKIP],
  'wasm/atomics64-stress': [SKIP],
  'wasm/futex': [SKIP],
  'regress/wasm/regress-1067621': [SKIP],

  # BUG(v8:9975).
  'es6/typedarray-copywithin': [SKIP],
}],  # 'predictable == True'

##############################################################################
['simulator_run and (arch in [ppc64, s390x])', {

  # take too long with the simulator.
  'regress/regress-1132': [SKIP],
  'regress/regress-740784': [SKIP],
  'regress/regress-crbug-482998': [PASS, SLOW],
  'regress/regress-91008': [PASS, SLOW],
  'regress/regress-779407': [PASS, SLOW],
  'harmony/regexp-property-lu-ui': [PASS, SLOW],
  'whitespaces': [PASS, SLOW],
  'generated-transition-stub': [PASS, SLOW],
}],  # 'simulator_run and (arch in [ppc64, s390x])'

##############################################################################
['arch == ppc64', {

  # stack overflow
  'big-array-literal': [SKIP],
  'regress/regress-353551': [SKIP],
}],  # 'arch == ppc64'

##############################################################################
['system == aix', {
  # stack overflow
  'regress/regress-crbug-178790': [PASS, ['mode == debug', SKIP]],
}],  # 'system == aix'

##############################################################################
['arch == s390x', {
  # stack overflow
  'regress/regress-crbug-178790': [PASS, ['mode == debug', SKIP]],
}],  # 'arch == s390x'

##############################################################################
['variant == stress', {
  # Slow tests.
  'array-natives-elements': [SKIP],
  'ignition/regress-599001-verifyheap': [SKIP],
  'unicode-test': [SKIP],

  # The RegExp code cache means running this test multiple times is invalid.
  'regexp-tier-up': [SKIP],
  'regexp-tier-up-multiple': [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 in [ppc, 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]],
}],  # variant == stress

##############################################################################
['variant == stress and (arch == arm or arch == arm64) and simulator_run', {
  # Slow tests: https://crbug.com/v8/7783
  'es6/large-classes-properties': [SKIP],
  'generated-transition-stub': [SKIP],
  'regress/regress-336820': [SKIP],
  'wasm/grow-memory': [SKIP],
}],  # variant == stress and (arch == arm or arch == arm64) and simulator_run

##############################################################################
['variant in (nooptimization, jitless) and arch in (arm, arm64) and simulator_run', {
  # Slow tests: https://crbug.com/v8/7783
  'regress/regress-crbug-319860': [SKIP],
  'wasm/asm-wasm-f32': [SKIP],
  'wasm/asm-wasm-f64': [SKIP],
  'wasm/grow-memory': [SKIP],
}],  # variant == nooptimization and (arch == arm or arch == arm64) and simulator_run

##############################################################################
['variant == nooptimization', {
  # Tests that depend on optimization (beyond doing assertOptimized).
  'regress/regress-1049982-1': [SKIP],
  'regress/regress-1049982-2': [SKIP],
}],  # variant == nooptimization

##############################################################################
['(arch == arm or arch == arm64)', {
  # Flaky tests: https://crbug.com/v8/8090
  'regress/regress-752764': [SKIP],
}],  # (arch == arm or arch == arm64)

##############################################################################
['gcov_coverage', {
  # Tests taking too long.
  'array-functions-prototype-misc': [SKIP],

  # Stack overflow.
  'big-array-literal': [SKIP],
}],  # 'gcov_coverage'

##############################################################################
['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

##############################################################################
['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

##############################################################################
# Liftoff is currently only sufficiently implemented on x64, ia32, arm64 and
# arm.
# TODO(clemensb): Implement on all other platforms (crbug.com/v8/6600).
['arch not in (x64, ia32, arm64, arm)', {
  'wasm/liftoff': [SKIP],
  'wasm/tier-up-testing-flag': [SKIP],
  'wasm/tier-down-to-liftoff': [SKIP],
}], # arch not in (x64, ia32, arm64, arm)

##############################################################################
['system != linux', {
  # Multi-mapped mock allocator is only available on Linux.
  'regress/regress-crbug-1041232': [SKIP],
  'regress/regress-crbug-1104608': [SKIP],
}],

##############################################################################
['variant == turboprop', {
  # Deopts differently than TurboFan.
  'parallel-optimize-disabled': [SKIP],
  'compiler/native-context-specialization-hole-check': [SKIP],
  'compiler/number-comparison-truncations': [SKIP],
  'compiler/redundancy-elimination': [SKIP],
  'compiler/regress-9945-*': [SKIP],

  # Static asserts for optimizations don't hold due to removed optimization
  # phases.
  'compiler/concurrent-inlining-1': [SKIP],
  'compiler/concurrent-inlining-2': [SKIP],
  'compiler/constant-fold-add-static': [SKIP],
  'compiler/diamond-followedby-branch': [SKIP],
  'compiler/is-being-interpreted-*': [SKIP],
  'compiler/load-elimination-const-field': [SKIP],
  'compiler/serializer-accessors': [SKIP],
  'compiler/serializer-apply': [SKIP],
  'compiler/serializer-call': [SKIP],
  'compiler/serializer-dead-after-jump': [SKIP],
  'compiler/serializer-dead-after-return': [SKIP],
  'compiler/serializer-feedback-propagation-*': [SKIP],
  'compiler/serializer-transition-propagation': [SKIP],

  # Some tests rely on inlining.
  'compiler/inlined-call-polymorphic': [SKIP],
  'compiler/opt-higher-order-functions': [SKIP],
  'regress/regress-1049982-1': [SKIP],
  'regress/regress-1049982-2': [SKIP],
  'es6/iterator-eager-deopt': [SKIP],

  # interrupt_budget overrides don't work with TurboProp.
  'interrupt-budget-override': [SKIP],
  'never-optimize': [SKIP],

  # In turboprop we reuse the optimized code on soft deopt. The following tests
  # test for a soft deopt and they won't work in TurboProp.
  'deopt-recursive-soft-once': [SKIP],
  'regress/regress-3709': [SKIP],
  'regress/regress-5790': [SKIP],

  # const field tracking is disabled in turboprop
  'const-field-tracking': [SKIP],
}],  # variant == turboprop

##############################################################################
['variant == top_level_await', {
  # specifically expects to fail on top level await.
  'harmony/modules-import-15': [SKIP],
}], # variant == top_level_await

##############################################################################
['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],
}],  # variant == assert_types

##############################################################################
['variant == stress_snapshot and arch != x64', {
  # Deserialization fails due to read-only snapshot checksum verification.
  # https://crbug.com/v8/10491
  '*': [SKIP],
}],  # variant == stress_snapshot and arch != x64

##############################################################################
['variant == stress_snapshot and arch == x64', {
  # Crashes the serializer due to recursion.
  'deep-recursion': [SKIP],
  'string-replace-gc': [SKIP],
  # Debug check failed:
  # map == GetReadOnlyRoots(isolate).fixed_array_map() || map == GetReadOnlyRoots(isolate).fixed_cow_array_map().
  # This means a mismatch of elements kinds / elements on the global object.
  'es6/block-sloppy-function': [SKIP],
  'es6/reflect-get-own-property-descriptor': [SKIP],
  'es6/reflect': [SKIP],
  'get-own-property-descriptor': [SKIP],
  'global-properties': [SKIP],
  'indexed-accessors': [SKIP],
  'object-freeze-global': [SKIP],
  'object-seal-global': [SKIP],
  'regress/regress-1103': [SKIP],
  'regress/regress-1112': [SKIP],
  'regress/regress-1120': [SKIP],
  'regress/regress-2346': [SKIP],
  'regress/regress-489151': [SKIP],
  'regress/regress-crbug-1002628': [SKIP],
  'regress/regress-crbug-454091': [SKIP],
  'regress/regress-crbug-663750': [SKIP],
  'regress/regress-freeze-setter': [SKIP],
  # TODO(v8:10494): asm Code objects can't be flushed and end up in the isolate
  # serializer.
  'asm/*': [SKIP],
  'compiler/regress-439743': [SKIP],
  'regress/regress-441099': [SKIP],
  'regress/regress-617526': [SKIP],
  'regress/regress-6196': [SKIP],
  'regress/regress-677685': [SKIP],
  'regress/regress-7893': [SKIP],
  'regress/regress-799690': [SKIP],
  'regress/regress-8377': [SKIP],
  'regress/regress-crbug-1047368': [SKIP],
  'regress/regress-crbug-898974': [SKIP],
  'regress/regress-crbug-935800': [SKIP],
  'regress/regress-crbug-976934': [SKIP],
  'regress/wasm/*': [SKIP],
  'wasm/*': [SKIP],
  # Investigate (IsScript).
  'harmony/import-from-compilation-errored': [SKIP],
  'harmony/private-fields-special-object': [SKIP],
  # Investigate (JSFunction in startup serializer).
  'regress/regress-1034394': [SKIP],
  'regress/regress-863810': [SKIP],
  'regress/regress-crbug-772056': [SKIP],
  # Investigate (Check failed: buffer.byte_length() <= Smi::kMaxValue)
  'regress/regress-319722-ArrayBuffer': [SKIP],
  'regress/regress-599717': [SKIP],
  'regress/regress-667603': [SKIP],
  # Investigate (IsFixedArrayBase).
  'regress/regress-786784': [SKIP],
  'regress/regress-v8-9656': [SKIP],
  # Investigate (startup_serializer_->ReferenceMapContains(obj)).
  'regress/regress-813440': [SKIP],
  # Investigate (segfault).
  'regress/regress-crbug-397662': [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],
}],  # variant == slow_path

################################################################################
['variant == nci', {
  # Deopts differently than TurboFan.
  'compiler/is-being-interpreted*': [SKIP],
  'compiler/number-comparison-truncations': [SKIP],
  'compiler/redundancy-elimination': [SKIP],
  'compiler/regress-9945-*': [SKIP],
  'regress/regress-1049982-1': [SKIP],
  'regress/regress-1049982-2': [SKIP],
  # Deopts due to different behavior in BytecodeGraphBuilder::GetForInMode.  In
  # default TF, the ForInHint is kAny, in NCI mode kNone (because we currently
  # don't use feedback).
  'regress/regress-3650-3': [SKIP],
  # assertUnoptimized: assumes full turbofan pipeline.
  'allocation-site-info': [SKIP],
  'array-bounds-check-removal': [SKIP],
  'array-constructor-feedback': [SKIP],
  'array-literal-feedback': [SKIP],
  'array-literal-transitions': [SKIP],
  'array-push5': [SKIP],
  'array-store-and-grow': [SKIP],
  'check-bounds-array-index': [SKIP],
  'check-bounds-string-from-char-code-at': [SKIP],
  'compiler/abstract-equal-oddball': [SKIP],
  'compiler/abstract-equal-receiver': [SKIP],
  'compiler/abstract-equal-symbol': [SKIP],
  'compiler/abstract-equal-undetectable': [SKIP],
  'compiler/array-multiple-receiver-maps': [SKIP],
  'compiler/bigint-add-no-deopt-loop': [SKIP],
  'compiler/bound-functions-serialize': [SKIP],
  'compiler/concurrent-invalidate-transition-map': [SKIP],
  'compiler/concurrent-proto-change': [SKIP],
  'compiler/constant-fold-cow-array': [SKIP],
  'compiler/dataview-deopt': [SKIP],
  'compiler/dataview-detached': [SKIP],
  'compiler/dataview-get': [SKIP],
  'compiler/dataview-set': [SKIP],
  'compiler/deopt-inlined-from-call': [SKIP],
  'compiler/field-representation-tracking': [SKIP],
  'compiler/manual-concurrent-recompile': [SKIP],
  'compiler/native-context-specialization-hole-check': [SKIP],
  'compiler/number-divide': [SKIP],
  'compiler/opt-higher-order-functions': [SKIP],
  'compiler/promise-resolve-stable-maps': [SKIP],
  'compiler/regress-905555-2': [SKIP],
  'compiler/regress-905555': [SKIP],
  'compiler/regress-9945-1': [SKIP],
  'compiler/regress-9945-2': [SKIP],
  'compiler/stress-deopt-count-2': [SKIP],
  'compiler/strict-equal-receiver': [SKIP],
  'compiler/string-from-code-point': [SKIP],
  'concurrent-initial-prototype-change': [SKIP],
  'const-field-tracking-2': [SKIP],
  'const-field-tracking': [SKIP],
  'deopt-recursive-eager-once': [SKIP],
  'deopt-recursive-lazy-once': [SKIP],
  'deopt-recursive-soft-once': [SKIP],
  'deopt-unlinked': [SKIP],
  'deopt-with-fp-regs': [SKIP],
  'ensure-growing-store-learns': [SKIP],
  'es6/array-iterator-turbo': [SKIP],
  'es6/iterator-eager-deopt': [SKIP],
  'es6/iterator-lazy-deopt': [SKIP],
  'field-type-tracking': [SKIP],
  'frozen-array-reduce': [SKIP],
  'getters-on-elements': [SKIP],
  'harmony/regexp-overriden-exec': [SKIP],
  'keyed-load-hole-to-undefined': [SKIP],
  'keyed-load-with-symbol-key': [SKIP],
  'mjsunit_numfuzz': [SKIP],
  'mjsunit': [SKIP],
  'never-optimize': [SKIP],
  'non-extensible-array-reduce': [SKIP],
  'noopt': [SKIP],
  'object-seal': [SKIP],
  'optimized-array-every': [SKIP],
  'optimized-array-findindex': [SKIP],
  'optimized-array-find': [SKIP],
  'optimized-array-some': [SKIP],
  'optimized-filter': [SKIP],
  'optimized-map': [SKIP],
  'parallel-optimize-disabled': [SKIP],
  'regress/regress-1016450': [SKIP],
  'regress/regress-1034449': [SKIP],
  'regress/regress-1073440': [SKIP],
  'regress/regress-347914': [SKIP],
  'regress/regress-3709': [SKIP],
  'regress/regress-385565': [SKIP],
  'regress/regress-410912': [SKIP],
  'regress/regress-618608': [SKIP],
  'regress/regress-9002': [SKIP],
  'regress/regress-9441': [SKIP],
  'regress/regress-961709-classes-opt': [SKIP],
  'regress/regress-bind-deoptimize': [SKIP],
  'regress/regress-crbug-500497': [SKIP],
  'regress/regress-crbug-594183': [SKIP],
  'regress/regress-embedded-cons-string': [SKIP],
  'regress/regress-unlink-closures-on-deopt': [SKIP],
  'regress/wasm/regress-02256b': [SKIP],
  'regress/wasm/regress-02256': [SKIP],
  'sealed-array-reduce': [SKIP],
  'setters-on-elements': [SKIP],
  'smi-mul-const': [SKIP],
  'smi-mul': [SKIP],
  'unary-minus-deopt': [SKIP],
  # TurbofanStaticAssert: assumes full turbofan pipeline.
  'compiler/catch-block-load': [SKIP],
  'compiler/concurrent-inlining-1': [SKIP],
  'compiler/concurrent-inlining-2': [SKIP],
  'compiler/constant-fold-add-static': [SKIP],
  'compiler/construct-bound-function': [SKIP],
  'compiler/construct-object': [SKIP],
  'compiler/construct-receiver': [SKIP],
  'compiler/diamond-followedby-branch': [SKIP],
  'compiler/inlined-call-polymorphic': [SKIP],
  'compiler/js-create-arguments': [SKIP],
  'compiler/js-create': [SKIP],
  'compiler/load-elimination-const-field': [SKIP],
  'compiler/serializer-accessors': [SKIP],
  'compiler/serializer-apply': [SKIP],
  'compiler/serializer-call': [SKIP],
  'compiler/serializer-dead-after-jump': [SKIP],
  'compiler/serializer-dead-after-return': [SKIP],
  'compiler/serializer-feedback-propagation-1': [SKIP],
  'compiler/serializer-feedback-propagation-2': [SKIP],
  'compiler/serializer-transition-propagation': [SKIP],
}],  # variant == nci

]
