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

  # BUG(v8:9506): times out.
  'wasm/shared-memory-worker-explicit-gc-stress': [PASS, SLOW],
  'wasm/shared-memory-worker-gc-stress': [PASS, SLOW],

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

  # 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],
  '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],
  'regress/regress-992389': [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],

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

  # Tier down/up Wasm functions is non-deterministic with
  # multiple isolates, as dynamic tiering relies on a array shared
  # in the module, that can be modified by all instances.
  'wasm/wasm-dynamic-tiering': [SKIP],

  # waitAsync tests modify the global state (across Isolates)
  'harmony/atomics-waitasync': [SKIP],
  'harmony/atomics-waitasync-1thread-2timeout': [SKIP],
  'harmony/atomics-waitasync-1thread-promise-out-of-scope': [SKIP],
  'harmony/atomics-waitasync-1thread-timeout': [SKIP],
  'harmony/atomics-waitasync-1thread-wake-up-fifo': [SKIP],
  'harmony/atomics-waitasync-1thread-wake-up-simple': [SKIP],
  'harmony/atomics-waitasync-worker-shutdown-before-wait-finished-timeout': [SKIP],
  'harmony/atomics-waitasync-worker-shutdown-before-wait-finished-no-timeout': [SKIP],
}],  # 'isolates'

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

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

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

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

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

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

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

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

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

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

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

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

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

}],  # '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],
  'wasm/wasm-dynamic-tiering': [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],

  # Dynamic map checks doesn't use information from maps so we don't inline
  # array builtins or track field representation.
  'compiler/deopt-inlined-from-call': [SKIP],
  'compiler/field-representation-tracking': [SKIP],
  'field-type-tracking': [SKIP],

  # We don't migrate deprecated maps with dynamic map checks. This will be
  # fixed in a later cl.
  # TODO(mythria): Reenable this when the cl that migrates deprecated maps
  # lands
  'regress/regress-932953': [FAIL],
}],  # 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],
  # 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],
  # 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 or variant == nci_as_highest_tier', {
  # Deopts differently than TurboFan.
  # Deoptimization support is still incomplete in general, since deopts can
  # only happen when explicitly requested by tests. NCI code objects are then
  # set as marked_for_deoptimization *and never unset*, which means functions
  # with attached NCI code objects will never again count as optimized.
  # TODO(jgruber): Fix this once deopts can occur outside tests.
  '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],
  'compiler/test-dynamic-map-*': [SKIP],
  'es6/collections-constructor-iterator-side-effect': [SKIP],
  'es6/collections-constructor-with-modified-protoype': [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 or variant == nci_as_highest_tier

]
