# Copyright 2011 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, {
  # All tests prefixed with 'Bug' are expected to fail.
  'test-api/Bug*': [FAIL],

  ##############################################################################

  # These tests always fail.  They are here to test test.py.  If
  # they don't fail then test.py has failed.
  'test-serialize/TestThatAlwaysFails': [FAIL],
  'test-api/SealHandleScope': [FAIL],

  # These tests are expected to hit a CHECK (i.e. a FAIL result actually means
  # the test passed).
  'test-verifiers/Fail*': [FAIL, CRASH],

  # This test always fails.  It tests that LiveEdit causes abort when turned off.
  'test-debug/LiveEditDisabled': [FAIL],

  # This test always fails.  It tests that DisallowJavascriptExecutionScope
  # works as intended.
  'test-api/DisallowJavascriptExecutionScope': [FAIL],

  # We do not yet shrink weak maps after they have been emptied by the GC
  'test-weakmaps/Shrinking': [FAIL],
  'test-weaksets/WeakSet_Shrinking': [FAIL],

  # Boot up memory use is bloated in debug mode.
  'test-mark-compact/BootUpMemoryUse': [PASS, ['mode == debug', FAIL]],

  # This tests only that the preparser and parser agree, so there is no point in
  # running several variants. Note that this still takes ages, because there
  # are actually 13 * 38 * 5 * 128 = 316160 individual tests hidden here.
  'test-parsing/ParserSync': [PASS, NO_VARIANTS],

  # This tests only the type system, no point in running several variants.
  'test-types/*': [PASS, NO_VARIANTS],

  # This tests API threading, no point in running several variants.
  'test-api/Threading*': [PASS, SLOW, NO_VARIANTS],

  # BUG(5193). The cpu profiler tests are notoriously flaky.
  'test-cpu-profiler/CollectCpuProfile': [SKIP],
  'test-cpu-profiler/JsNative1JsNative2JsSample': [SKIP],
  'test-cpu-profiler/JsNativeJsRuntimeJsSample': [SKIP],
  'test-cpu-profiler/JsNativeJsRuntimeJsSampleMultiple': [SKIP],
  'test-cpu-profiler/JsNativeJsSample': [SKIP],
  'test-cpu-profiler/HotDeoptNoFrameEntry': [SKIP],
  'test-cpu-profiler/SampleWhenFrameIsNotSetup': [SKIP],
  'test-sampler/LibSamplerCollectSample': [SKIP],

  # BUG(7202). The test is flaky.
  'test-cpu-profiler/NativeFrameStackTrace': [SKIP],

  # BUG(7054)
  'test-cpu-profiler/StaticCollectSampleAPI': [SKIP],

  # BUG(2340). Preprocessing stack traces is disabled at the moment.
  'test-heap/PreprocessStackTrace': [FAIL],

  # BUG(4333). Function name inferrer does not work for ES6 clases.
  'test-func-name-inference/UpperCaseClass': [FAIL],
  'test-func-name-inference/LowerCaseClass': [FAIL],

  # Test that serialization with unknown external reference fails.
  'test-serialize/SnapshotCreatorUnknownExternalReferences': [FAIL],
  'test-serialize/SnapshotCreatorUnknownHandles': [FAIL],
  'test-serialize/SnapshotCreatorNoExternalReferencesCustomFail1': [FAIL],
  'test-serialize/SnapshotCreatorNoExternalReferencesCustomFail2': [FAIL],

  # BUG(v8:8739). Wasm interpreter does not create proper stack traces.
  'test-wasm-stack/RunWasmInterpreter_CollectDetailedWasmStack_WasmError': [SKIP],

  # https://crbug.com/v8/8919
  'test-platform/StackAlignment': [PASS, ['not is_clang', SKIP]],

  # Test that misuse of PopAndReturn does not compile.
  'test-code-stub-assembler/PopAndReturnFromJSBuiltinWithStackParameters' : [FAIL],
  'test-code-stub-assembler/PopAndReturnFromTFCBuiltinWithStackParameters' : [FAIL],

  # These tests are supposed to fail in a slow DCHECK, skip them otherwise.
  'test-local-handles/DereferenceLocalHandleFailsWhenDisallowed': [SKIP, ['mode == debug', FAIL]],
  'test-persistent-handles/DereferencePersistentHandleFailsWhenDisallowed': [SKIP, ['mode == debug', FAIL]],

  # Slow tests.
  'test-debug/CallFunctionInDebugger': [PASS, ['mode == debug', SLOW]],
  'test-heap-profiler/ManyLocalsInSharedContext': [PASS, SLOW],
  'test-jump-table-assembler/JumpTablePatchingStress': [PASS, SLOW],
  'test-strings/StringOOM*': [PASS, ['mode == debug', SKIP]],
  'test-serialize/CustomSnapshotDataBlobImmortalImmovableRoots': [PASS, ['mode == debug', SKIP]],
  'test-parsing/ObjectRestNegativeTestSlow': [PASS, ['mode == debug', SKIP]],

  # Tests that need to run sequentially (e.g. due to memory consumption).
  'test-accessors/HandleScopePop': [PASS, HEAVY],
  'test-api/FastApiCalls': [PASS, HEAVY],
  'test-api/NewStringRangeError': [PASS, HEAVY],
  'test-api/Threading8': [PASS, HEAVY],
  'test-lockers/LockTwiceAndUnlock': [PASS, HEAVY],
  'test-run-machops/RunInt32AddWithOverflowImm': [PASS, HEAVY],
  'test-run-machops/RunInt32MulAndInt32AddP': [PASS, HEAVY],
  'test-run-machops/RunInt64SubWithOverflowImm': [PASS, HEAVY],
  'test-serialize/ContextSerializerContext': [PASS, HEAVY],
  'test-serialize/ContextSerializerCustomContext': [PASS, HEAVY],
  'test-serialize/SnapshotCompression': [PASS, HEAVY],
  'test-serialize/StartupSerializerOnceRunScript': [PASS, HEAVY],
  'test-serialize/StartupSerializerTwiceRunScript': [PASS, HEAVY],
  'test-strings/StringOOMNewStringFromOneByte': [PASS, HEAVY],
  'test-strings/StringOOMNewStringFromUtf8': [PASS, HEAVY],
  'test-strings/Traverse': [PASS, HEAVY],
  'test-swiss-name-dictionary-csa/DeleteAtBoundaries': [PASS, HEAVY],
  'test-swiss-name-dictionary-csa/SameH2': [PASS, HEAVY],
}],  # ALWAYS

##############################################################################
['mode == debug', {
  'test-persistent-handles/NewPersistentHandleFailsWhenParked': [FAIL],
  'test-persistent-handles/NewPersistentHandleFailsWhenParkedExplicit': [FAIL],

  # BUG(v8:10996): Flaky on Linux64 - debug
  'test-cpu-profiler/StartProfilingAfterOsr': [SKIP],
}],

##############################################################################
['tsan == True', {
  # BUG(v8:9869) TSAN considers SIGPROF an asynchronous signal, and will call
  # into the handler after the stack has drifted from the context on the
  # signal.
  'test-cpu-profiler/*': [SKIP],
}],

##############################################################################
['arch == arm64', {
  # BUG(v8:3385).
  'test-serialize/StartupSerializerOnceRunScript': [PASS, FAIL],
  'test-serialize/StartupSerializerTwiceRunScript': [PASS, FAIL],

  # BUG(v8:3154).
  'test-heap/ReleaseOverReservedPages': [PASS, FAIL],

  # BUG(v8:3155).
  'test-strings/OneByteArrayJoin': [PASS, ['mode == debug', FAIL]],

  # BUG(v8:3247).
  'test-mark-compact/NoPromotion': [SKIP],

  # BUG(v8:3446).
  'test-mark-compact/Promotion': [PASS, FAIL],

  # BUG(v8:3434).
  'test-api/LoadICFastApi_DirectCall_GCMoveStubWithProfiler': [SKIP],

  # TODO(11856): Port nondeterminism detection.
  'test-liftoff-for-fuzzing/*': [SKIP],
}],  # 'arch == arm64'

['arch == arm64 and simulator_run', {

  # Pass but take too long with the simulator.
  'test-api/ExternalArrays': [PASS, SLOW],
  'test-api/Threading*': [SKIP],
  'test-cpu-profiler/MultipleIsolates': [PASS, ['not pointer_compression', SLOW]],
}],  # 'arch == arm64 and simulator_run'

['arch == arm64 and system == macos and not simulator_run', {
  # printf, being a variadic function, has a different, stack-based ABI on
  # Apple silicon. See:
  # https://developer.apple.com/library/archive/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html
  'test-assembler-arm64/printf_no_preserve': [SKIP],
}],  # arch == arm64 and system == macos and not simulator_run

##############################################################################
['variant == nooptimization and (arch == arm or arch == arm64) and simulator_run', {
  # Slow tests: https://crbug.com/v8/7783
  'test-cpu-profiler/MultipleIsolates': [SKIP],
}],  # variant == nooptimization and (arch == arm or arch == arm64) and simulator_run

##############################################################################
['variant == nooptimization', {
  # Wasm serialization relies on TurboFan to be available, hence does not work
  # in the 'nooptimization' variant.
  'test-wasm-serialization/*': [SKIP],
  'test-streaming-compilation/SingleThreadedTestDeserializationBypassesCompilation': [SKIP],
  'test-streaming-compilation/SingleThreadedTestDeserializationFails': [SKIP],
  'test-streaming-compilation/AsyncTestDeserializationFails': [SKIP],
  'test-streaming-compilation/AsyncTestDeserializationBypassesCompilation': [SKIP],

  # %ObserveNode tests rely on TurboFan.
  'test-calls-with-arraylike-or-spread/*': [SKIP],
  'test-sloppy-equality/*' : [SKIP],
  'test-js-to-wasm/*': [SKIP],
  'test-verify-type/*': [SKIP],
}],  # variant == nooptimization

##############################################################################
['asan == True', {
  # Skip tests not suitable for ASAN.
  'test-assembler-x64/AssemblerX64XchglOperations': [SKIP],

  # BUG(v8:7587): Strange breakage on Mac.
  'test-log-stack-tracer/PureJSStackTrace': [SKIP],
}],  # 'asan == True'

##############################################################################
['asan or tsan', {
  # Tests that need to run sequentially (e.g. due to memory consumption).
  'regress/regress-crbug-9161': [PASS, HEAVY],
  'test-run-wasm/RunWasmInterpreter_I32Binop_Add': [PASS, HEAVY],
  'test-run-wasm/RunWasmInterpreter_I32Binop_DivS': [PASS, HEAVY],
  'test-run-wasm/RunWasmInterpreter_I32Binop_DivU': [PASS, HEAVY],
  'test-run-wasm/RunWasmInterpreter_I32Binop_Eq': [PASS, HEAVY],
  'test-run-wasm/RunWasmInterpreter_I32Binop_GeS': [PASS, HEAVY],
  'test-run-wasm/RunWasmInterpreter_I32Binop_GeU': [PASS, HEAVY],
  'test-run-wasm/RunWasmInterpreter_I32Binop_GtS': [PASS, HEAVY],
  'test-run-wasm/RunWasmInterpreter_I32Binop_Ior': [PASS, HEAVY],
  'test-run-wasm/RunWasmInterpreter_I32Binop_LeU': [PASS, HEAVY],
  'test-run-wasm/RunWasmInterpreter_I32Binop_LtU': [PASS, HEAVY],
  'test-run-wasm/RunWasmLiftoff_I32Binop_Add': [PASS, HEAVY],
  'test-run-wasm/RunWasmLiftoff_I32Binop_DivS': [PASS, HEAVY],
  'test-run-wasm/RunWasmLiftoff_I32Binop_DivU': [PASS, HEAVY],
  'test-run-wasm/RunWasmLiftoff_I32Binop_Eq': [PASS, HEAVY],
  'test-run-wasm/RunWasmLiftoff_I32Binop_GeS': [PASS, HEAVY],
  'test-run-wasm/RunWasmLiftoff_I32Binop_GeU': [PASS, HEAVY],
  'test-run-wasm/RunWasmLiftoff_I32Binop_GtS': [PASS, HEAVY],
  'test-run-wasm/RunWasmLiftoff_I32Binop_Ior': [PASS, HEAVY],
  'test-run-wasm/RunWasmLiftoff_I32Binop_LeU': [PASS, HEAVY],
  'test-run-wasm/RunWasmLiftoff_I32Binop_LtU': [PASS, HEAVY],
}],  # 'asan or tsan'

##############################################################################
['msan == True', {
  # ICU upstream issues.
  'test-strings/CountBreakIterator': [SKIP],

  # BUG(v8:10244): MSAN finding uninitialized bytes during memcmp
  'test-code-stub-assembler/SmallOrderedHashSetAllocate': [SKIP],
  'test-code-stub-assembler/SmallOrderedHashMapAllocate': [SKIP],
}],  # 'msan == True'

##############################################################################
['tsan == True', {
  # BUG(v8:6924). The test allocates a lot of memory.
  'test-api/NewStringRangeError': [PASS, NO_VARIANTS],
  # BUG(v8:8296). The tests allocate a lot of objects and timeout in
  # the --stress-concurrent-allocation variant.
  'test-heap/OutOfMemorySmallObjects': [PASS, NO_VARIANTS],
  'test-heap/OutOfMemory': [PASS, NO_VARIANTS],
}],  # 'tsan == True'

##############################################################################
['is_full_debug', {
  # Tests too slow in non-optimized debug mode.
  'test-api/InternalFieldsSubclassing': [SKIP],
  'test-concurrent-allocation/ConcurrentAllocationInLargeSpace': [SKIP],
  'test-heap/TestInternalWeakLists': [SKIP],
}],  # 'is_full_debug'

##############################################################################
['byteorder == big', {
  # Skip Wasm atomic tests on big-endian machines.
  # There is no support to emulate atomic Wasm operations on big-endian
  # platforms, since this would require bit swapping as a part of atomic
  # operations.
  'test-run-wasm-atomics/*': [SKIP],
  'test-run-wasm-atomics64/*': [SKIP],
  'test-regexp/Peephole*': [SKIP],
}],  # 'byteorder == big'

##############################################################################
['system == windows', {
  # BUG(v8:4642).
  'test-lockers/LockAndUnlockDifferentIsolates': [PASS, NO_VARIANTS],

  # BUG(v8:8744).
  'test-cpu-profiler/FunctionCallSample': [SKIP],

  # BUG(10107): Failing flakily
  'test-cpu-profiler/Inlining2': ['arch == ia32 and mode == debug', SKIP],
  'test-cpu-profiler/CrossScriptInliningCallerLineNumbers': ['arch == ia32 and mode == debug', SKIP],
  'test-cpu-profiler/CrossScriptInliningCallerLineNumbers2': ['arch == ia32 and mode == debug', SKIP],

  # BUG(v8:10996): Flaky on Win32
  'test-cpu-profiler/StartProfilingAfterOsr': ['arch == ia32', SKIP],
}],  # 'system == windows'

##############################################################################
['system == windows and arch == x64 and mode == debug', {
  # BUG(v8:6328).
  'test-serialize/ContextSerializerCustomContext': [SKIP],
  'test-serialize/ContextSerializerObject': [SKIP],
  'test-serialize/StartupSerializerOnce': [SKIP],
  'test-serialize/StartupSerializerOnceRunScript': [SKIP],
  'test-serialize/StartupSerializerTwiceRunScript': [SKIP],
  'test-serialize/StartupSerializerTwice': [SKIP],
}],  # 'system == windows and arch == x64 and mode == debug'

##############################################################################
['arch == arm and simulator_run', {
  # Pass but take too long with the simulator.
  'test-api/Threading*': [SKIP],
}],  # 'arch == arm and simulator_run'

##############################################################################
['arch == arm', {
  # BUG(355): Test crashes on ARM.
  'test-log/ProfLazyMode': [SKIP],

  # BUG(1075): Unresolved crashes.
  'test-serialize/StartupSerializerOnce': [SKIP],
  'test-serialize/StartupSerializerTwice': [SKIP],
  'test-serialize/StartupSerializerOnceRunScript': [SKIP],
  'test-serialize/StartupSerializerTwiceRunScript': [SKIP],

  # TODO(11856): Port nondeterminism detection.
  'test-liftoff-for-fuzzing/*': [SKIP],
}],  # 'arch == arm'

##############################################################################
['arch == arm and not simulator_run', {
  # crbug.com/v8/11134
  'test-cpu-profiler/MultipleThreadsSingleIsolate': [PASS, ['system != android', SKIP]],
}],  # 'arch == arm and not simulator_run'

##############################################################################
['arch == mipsel or arch == mips', {
  # TODO(mips-team): Improve code-size on large RegExp's.
  'test-heap/TestSizeOfRegExpCode':  [SKIP],

  # BUG(1075): Unresolved crashes on MIPS also.
  'test-serialize/StartupSerializerOnce': [SKIP],
  'test-serialize/StartupSerializerTwice': [SKIP],
  'test-serialize/StartupSerializerOnceRunScript': [SKIP],
  'test-serialize/StartupSerializerTwiceRunScript': [SKIP],
}],  # 'arch == mipsel or arch == mips'

##############################################################################
['arch == mips', {
  # Too slow with TF.
  'test-api/ExternalArrays': [PASS, NO_VARIANTS],

  # TODO(mips-team): Currently fails on mips board.
  'test-parsing/TooManyArguments': [SKIP],
  'test-api/Threading5': [SKIP],
  'test-api/Threading6': [SKIP],
}],  # 'arch == mips'

##############################################################################
['arch == mips64', {
  # TODO(mips-team): Currently fails on mips64 board.
  'test-run-wasm/RunWasmLiftoff_I32Binop*': [SKIP],
}],  # 'arch == mips64'
##############################################################################
['arch == mips64el or arch == mips64', {
  # BUG(v8:3154).
  'test-heap/ReleaseOverReservedPages': [PASS, FAIL],

  # TODO(mips-team): Improve code-size on large RegExp's.
  'test-heap/TestSizeOfRegExpCode':  [SKIP],

  # BUG(1075): Unresolved crashes on MIPS also.
  'test-serialize/StartupSerializerOnce': [SKIP],
  'test-serialize/StartupSerializerTwice': [SKIP],
  'test-serialize/StartupSerializerOnceRunScript': [SKIP],
  'test-serialize/StartupSerializerTwiceRunScript': [SKIP],
}],  # 'arch == mips64el or arch == mips64'

##############################################################################
['(arch == mipsel or arch == mips64el or arch == mips or arch == mips64) and not simd_mips', {
  # Skip tests that fail on MIPS architectures which don't support SIMD,
  # because lowering mechanism doesn't work properly
  'test-run-wasm-simd/RunWasm_ReductionTest4_compiled': [SKIP],
  'test-run-wasm-simd/RunWasm_ReductionTest8_compiled': [SKIP],
  'test-run-wasm-simd/RunWasm_ReductionTest16_compiled': [SKIP],
  'test-run-wasm-simd-liftoff/*': [SKIP],
}],  # '(arch == mipsel or arch == mips64el or arch == mips or arch == mips64) and not simd_mips'

['(arch == mipsel or arch == mips64el or arch == mips or arch == mips64) and not simd_mips', {
  'test-gc/RunWasmLiftoff_RefTrivialCasts': [SKIP],
  'test-gc/RunWasmTurbofan_RefTrivialCasts': [SKIP],
  'test-run-wasm/RunWasmLiftoff_Select_s128_parameters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_Select_s128_parameters': [SKIP],
}],  # '(arch == mipsel or arch == mips64el or arch == mips or arch == mips64) and not simd_mips'

##############################################################################
['arch == mips or arch == mips64', {
  # TODO(mips-team): Implement I64Atomic operations on MIPS
  'test-run-wasm-atomics64/*': [SKIP],
}],  # 'arch == mipsel or arch == mips64el or arch == mips or arch == mips64'

##############################################################################
['mips_arch_variant == r6', {
  # For MIPS[64] architecture release 6, fusion multiply-accumulate instructions
  # will cause failures on several tests that expect exact floating-point
  # results.
  'test-run-machops/RunFloat64MulAndFloat64Add1': [SKIP],
  'test-run-machops/RunFloat64MulAndFloat64Add2': [SKIP],
  'test-run-machops/RunFloat64MulAndFloat64Sub1': [SKIP],
  'test-run-machops/RunFloat64MulAndFloat64Sub2': [SKIP],
}],  # 'mips_arch_variant == r6'

##############################################################################
['arch == riscv64', {
  # this test is unstable, sometimes fail when running w/ other tests.
  'test-cpu-profiler/CrossScriptInliningCallerLineNumbers2': [SKIP],

  # SIMD not fully implemented yet.
  'test-run-wasm-simd/RunWasm_F64x2ExtractLaneWithI64x2_liftoff': [SKIP],
  'test-run-wasm-simd/RunWasm_I64x2ExtractWithF64x2_liftoff': [SKIP],
  'test-run-wasm-simd-liftoff/*': [SKIP],
  'test-run-wasm-simd/*':[SKIP],
  'test-gc/RunWasmLiftoff_RefTrivialCasts': [SKIP],
  'test-gc/RunWasmTurbofan_RefTrivialCasts': [SKIP],

  # Some wasm functionality is not implemented yet.
  'test-run-wasm-atomics64/*': [SKIP],
  'test-run-wasm-atomics/*': [SKIP],
  'test-run-wasm-64/*': [SKIP],
  'test-run-wasm/RunWasmTurbofan_Select_s128_parameters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_Select_s128_parameters': [SKIP],
  'test-liftoff-for-fuzzing/NondeterminismUnopF64x2': [SKIP],
  'test-liftoff-for-fuzzing/NondeterminismUnopF32x2': [SKIP],
  'test-liftoff-for-fuzzing/NondeterminismUnopF32x4': [SKIP],
}],  # 'arch == riscv64'

##############################################################################
['arch == riscv64 and simulator_run', {

  # Pass but take too long with the simulator.
  'test-api/Threading*': [PASS, SLOW],
  'test-api/ExternalArrays': [PASS, SLOW],
  'test-heap-profiler/ManyLocalsInSharedContext': [PASS, SLOW],

}],  # 'arch == riscv64 and simulator_run'

##############################################################################
['system == android', {
  # Uses too much memory.
  'test-api/NewStringRangeError': [SKIP],
}],  # 'system == android'

##############################################################################
['system != android and arch in [arm, arm64] and not simulator_run', {
  # Consumes too much memory on ODROIDs in debug mode and optimize_for_size.
  'test-code-generator/FuzzAssemble*': [PASS, ['(mode == debug) and optimize_for_size', SKIP]],
}],  # 'system != android and arch in [arm, arm64] and not simulator_run'

##############################################################################
['system == aix or (arch == ppc64 and byteorder == big)', {

  # TODO(ppc): Fix for platforms with function desciptors.
  'test-run-machops/RunComputedCodeObject' : [SKIP],
  'test-run-wasm-module/Run_WasmModule_Return114' : [SKIP],
  'test-run-wasm-module/Run_WasmModule_CallAdd' : [SKIP],
  'test-run-wasm-module/Run_WasmModule_CallMain_recursive' : [SKIP],
  # TODO(ppc): Implement load/store reverse byte instructions
  'test-run-wasm-simd/RunWasm_SimdLoadStoreLoad': [SKIP],
  'test-run-wasm-simd/RunWasm_SimdLoadStoreLoad_turbofan': [SKIP],
  # slow in PASE emulator
  'test-cpu-profiler/Inlining2': [PASS, SLOW],
  'test-cpu-profiler/CollectCpuProfileCallerLineNumbers': [PASS, SLOW],
}],  # 'system == aix or (arch == ppc64 and byteorder == big)'

##############################################################################
['arch == ppc and simulator_run or arch == ppc64 and simulator_run', {

  # Pass but take too long with the simulator.
  'test-api/Threading*': [PASS, SLOW],
  'test-api/ExternalArrays': [PASS, SLOW],

}],  # 'arch == ppc64 and simulator_run'

##############################################################################
['arch == ppc or arch == ppc64 or arch == s390 or arch == s390x', {

  # TODO(ppc/s390): support concurrent patching of jump table
  'test-jump-table-assembler/*': [SKIP],

  'test-wasm-breakpoints/*' : [SKIP],

  # SIMD not fully implemented yet
  'test-run-wasm-simd-liftoff/*': [SKIP],
  'test-gc/RunWasmLiftoff_RefTrivialCasts': [SKIP],

  # TODO(11856): Port nondeterminism detection.
  'test-liftoff-for-fuzzing/*': [SKIP],

}],  # 'arch == ppc or arch == ppc64 or arch == s390 or arch == s390x'

['arch == ppc64', {
  # https://crbug.com/v8/8766
  'test-bytecode-generator/WideRegisters': [SKIP],
  # Liftoff is not currently supported on ppc
  'test-liftoff-*': [SKIP],
  'test-gc/RunWasmLiftoff*': [SKIP],
  'test-run-wasm-module/Run_WasmModule_CompilationHintsNoTiering': [SKIP],
  'test-wasm-serialization/TierDownAfterDeserialization': [SKIP],
}],

##############################################################################
['arch == ppc64 and not simulator_run', {
  # crbug.com/v8/11134
  'test-cpu-profiler/MultipleThreadsSingleIsolate': [SKIP],
}],  # 'arch == ppc64 and not simulator_run'

##############################################################################
['variant == stress_incremental_marking', {
  'test-heap-profiler/SamplingHeapProfiler': [SKIP],
}],  # variant == stress_incremental_marking

##############################################################################
['variant == stress_js_bg_compile_wasm_code_gc', {
  # The test relies on deterministic compilation.
  'test-compiler/DecideToPretenureDuringCompilation': [SKIP],

  # The test relies on deterministic allocation during compilation.
  'test-compiler/DeepEagerCompilationPeakMemory': [SKIP],
}],  # variant == stress_js_bg_compile_wasm_code_gc

##############################################################################
['variant == no_wasm_traps', {
  'test-accessors/*': [SKIP],
  'test-api-interceptors/*': [SKIP],
  'test-api-stack-traces/*': [SKIP],
  'test-api/*': [SKIP],
  'test-bignum-dtoa/*': [SKIP],
  'test-cpu-profiler/*': [SKIP],
  'test-debug/*': [SKIP],
  'test-global-handles/*': [SKIP],
  'test-heap-profiler/*': [SKIP],
  'test-heap/*': [SKIP],
  'test-inobject-slack-tracking/*': [SKIP],
  'test-lockers/*': [SKIP],
  'test-run-machops/*': [SKIP],
  'test-serialize/*': [SKIP],
  'test-strings/*': [SKIP],
  'test-field-type-tracking/*': [SKIP],
  'test-parsing/*': [SKIP],
  'test-page-promotion/*': [SKIP],
  'test-decls/*': [SKIP],
  'test-log/*': [SKIP],
  'test-gap-resolver/*': [SKIP],
  'test-dtoa/*': [SKIP],
}],  # variant == no_wasm_traps

##############################################################################
# The stack unwinder API is only supported on x64, arm64 and arm.
['arch != x64 and arch != arm64 and arch != arm', {
  'test-unwinder-code-pages/*': [SKIP]
}],

##############################################################################
# TODO(v8:7777): Change this once wasm is supported in jitless mode.
['not has_webassembly or variant == jitless', {
  'test-api/TurboAsmDisablesDetach': [SKIP],
  'test-api/WasmI32AtomicWaitCallback': [SKIP],
  'test-api/WasmI64AtomicWaitCallback': [SKIP],
  'test-api-wasm/WasmStreaming*': [SKIP],
  'test-backing-store/Run_WasmModule_Buffer_Externalized_Regression_UseAfterFree': [SKIP],
  'test-c-wasm-entry/*': [SKIP],
  'test-compilation-cache/*': [SKIP],
  'test-jump-table-assembler/*': [SKIP],
  'test-gc/*': [SKIP],
  'test-grow-memory/*': [SKIP],
  'test-js-to-wasm/*': [SKIP],
  'test-liftoff-for-fuzzing/*': [SKIP],
  'test-liftoff-inspection/*': [SKIP],
  'test-run-wasm*': [SKIP],
  'test-streaming-compilation/*': [SKIP],
  'test-wasm-breakpoints/*': [SKIP],
  'test-wasm-codegen/*': [SKIP],
  'test-wasm-import-wrapper-cache/*': [SKIP],
  'test-wasm-metrics/*': [SKIP],
  'test-wasm-serialization/*': [SKIP],
  'test-wasm-shared-engine/*': [SKIP],
  'test-wasm-stack/*': [SKIP],
  'test-wasm-trap-position/*': [SKIP],
  'wasm-run-utils/*': [SKIP],
}],  # not has_webassembly or variant == jitless

##############################################################################
['lite_mode or variant == jitless', {

  # Slow tests
  'test-heap/IncrementalMarkingStepMakesBigProgressWithLargeObjects': [SKIP],

  # Tests that generate code at runtime.
  'codegen-tester/*': [SKIP],
  'test-accessor-assembler/*': [SKIP],
  'test-assembler-*': [SKIP],
  'test-basic-block-profiler/*': [SKIP],
  'test-branch-combine/*': [SKIP],
  'test-calls-with-arraylike-or-spread/*': [SKIP],
  'test-code-assembler/*': [SKIP],
  'test-code-generator/*': [SKIP],
  'test-code-pages/*': [SKIP],
  'test-code-stub-assembler/*': [SKIP],
  'test-debug-helper/GetObjectProperties': [SKIP],
  'test-disasm-x64/DisasmX64': [SKIP],
  'test-js-context-specialization/*': [SKIP],
  'test-macro-assembler-x64/EmbeddedObj': [SKIP],
  'test-multiple-return/*': [SKIP],
  'test-regexp/MacroAssemblernativeAtStart': [SKIP],
  'test-regexp/MacroAssemblerNativeBackReferenceLATIN1': [SKIP],
  'test-regexp/MacroAssemblerNativeBackReferenceUC16': [SKIP],
  'test-regexp/MacroAssemblerNativeBackRefNoCase': [SKIP],
  'test-regexp/MacroAssemblerNativeBacktrack': [SKIP],
  'test-regexp/MacroAssemblerNativeLotsOfRegisters': [SKIP],
  'test-regexp/MacroAssemblerNativeRegisters': [SKIP],
  'test-regexp/MacroAssemblerNativeSimple': [SKIP],
  'test-regexp/MacroAssemblerNativeSimpleUC16': [SKIP],
  'test-regexp/MacroAssemblerNativeSuccess': [SKIP],
  'test-regexp/MacroAssemblerStackOverflow': [SKIP],
  'test-regexp/Graph': [SKIP],
  'test-run-bytecode-graph-builder/*': [SKIP],
  'test-run-calls-to-external-references/*': [SKIP],
  'test-run-deopt/*': [SKIP],
  'test-run-intrinsics/*': [SKIP],
  'test-run-jsbranches/*': [SKIP],
  'test-run-jscalls/*': [SKIP],
  'test-run-jsexceptions/*': [SKIP],
  'test-run-jsobjects/*': [SKIP],
  'test-run-jsops/*': [SKIP],
  'test-run-load-store/*': [SKIP],
  'test-run-machops/*': [SKIP],
  'test-run-native-calls/*': [SKIP],
  'test-run-retpoline/*': [SKIP],
  'test-run-stackcheck/*': [SKIP],
  'test-run-tail-calls/*': [SKIP],
  'test-run-unwinding-info/*': [SKIP],
  'test-run-variables/*': [SKIP],
  'test-serialize/*': [SKIP],
  'test-sloppy-equality/*' : [SKIP],
  'test-swiss-name-dictionary-csa/*': [SKIP],
  'test-torque/*': [SKIP],
  'test-unwinder-code-pages/PCIsInV8_LargeCodeObject_CodePagesAPI': [SKIP],
  'test-verify-type/*': [SKIP],

  # Field representation tracking is disabled in jitless mode.
  'test-field-type-tracking/*': [SKIP],

  # Instruction cache flushing is disabled in jitless mode.
  'test-icache/*': [SKIP],
}], # lite_mode or variant == jitless

##############################################################################
['lite_mode', {
  # TODO(v8:8510): Tests that currently fail with lazy source positions.
  'test-cpu-profiler/Inlining2': [SKIP],

  # TODO(mythria): Code logging tests that currently fail with lazy feedback
  # allocation. Fix logging to work without feedback vectors and enable these
  # tests in lite_mode.
  'test-log/ExternalCodeEventListenerWithInterpretedFramesNativeStack': [SKIP],
  'test-log/LogInterpretedFramesNativeStack': [SKIP],
  'test-log/LogInterpretedFramesNativeStackWithSerialization': [SKIP],
  'test-serialize/CodeSerializerOnePlusOneWithInterpretedFramesNativeStack': [SKIP]
}], # lite_mode

##############################################################################
['variant == jitless', {
  # https://crbug.com/v8/7777
  'test-cpu-profiler/TickLinesOptimized': [SKIP],
  'test-heap/TestOptimizeAfterBytecodeFlushingCandidate': [SKIP],
  'test-js-to-wasm/*': [SKIP],
  'test-run-wasm-exceptions/RunWasmInterpreter_TryCatchCallDirect': [SKIP],
  'test-run-wasm-exceptions/RunWasmInterpreter_TryCatchCallExternal': [SKIP],
  'test-run-wasm-exceptions/RunWasmInterpreter_TryCatchCallIndirect': [SKIP],
  'test-run-wasm-exceptions/RunWasmInterpreter_TryCatchThrow': [SKIP],
  'test-run-wasm-exceptions/RunWasmInterpreter_TryCatchTrapTypeError': [SKIP],
  'test-run-wasm-exceptions/RunWasmLiftoff_TryCatchCallDirect': [SKIP],
  'test-run-wasm-exceptions/RunWasmLiftoff_TryCatchCallExternal': [SKIP],
  'test-run-wasm-exceptions/RunWasmLiftoff_TryCatchCallIndirect': [SKIP],
  'test-run-wasm-exceptions/RunWasmLiftoff_TryCatchThrow': [SKIP],
  'test-run-wasm-exceptions/RunWasmLiftoff_TryCatchTrapTypeError': [SKIP],
  'test-run-wasm-exceptions/RunWasmTurbofan_TryCatchCallDirect': [SKIP],
  'test-run-wasm-exceptions/RunWasmTurbofan_TryCatchCallExternal': [SKIP],
  'test-run-wasm-exceptions/RunWasmTurbofan_TryCatchCallIndirect': [SKIP],
  'test-run-wasm-exceptions/RunWasmTurbofan_TryCatchThrow': [SKIP],
  'test-run-wasm-exceptions/RunWasmTurbofan_TryCatchTrapTypeError': [SKIP],
  'test-verify-type/*': [SKIP],

  # --interpreted-frames-native-stack tests
  'test-log/ExternalCodeEventListenerWithInterpretedFramesNativeStack': [SKIP],
  'test-log/LogInterpretedFramesNativeStack': [SKIP],
  'test-log/LogInterpretedFramesNativeStackWithSerialization': [SKIP],
  'test-serialize/CodeSerializerOnePlusOneWithInterpretedFramesNativeStack': [SKIP],
  'test-interpreter/InterpreterWithNativeStack': [SKIP],

  # Crashes on native arm.
  'test-macro-assembler-arm/ExtractLane': [PASS, ['arch == arm and not simulator_run', SKIP]],
  'test-macro-assembler-arm/LoadAndStoreWithRepresentation': [PASS, ['arch == arm and not simulator_run', SKIP]],
  'test-macro-assembler-arm/ReplaceLane': [PASS, ['arch == arm and not simulator_run', SKIP]],

  # Too slow on arm64 simulator on Mac.
  'test-cpu-profiler/MultipleIsolates': [PASS, ['arch == arm64 and system == macos and simulator_run', SKIP]],
}], # variant == jitless

##############################################################################
['variant == turboprop or variant == turboprop_as_toptier', {
  # Require inlining.
  'test-cpu-profiler/DeoptAtFirstLevelInlinedSource': [SKIP],
  'test-cpu-profiler/DeoptAtSecondLevelInlinedSource': [SKIP],
  'test-cpu-profiler/DeoptUntrackedFunction': [SKIP],
  # Turboprop doesn't use call feedback and hence doesn't inline even if
  # the inlining flag is explicitly set.
  'test-cpu-profiler/DetailedSourcePositionAPI_Inlining': [SKIP],
  'test-calls-with-arraylike-or-spread/*': [SKIP],
  'test-js-to-wasm/*': [SKIP],
}],  # variant == turboprop or variant == turboprop_as_toptier

##############################################################################
['no_i18n == True', {
  'test-regexp/UnicodePropertyEscapeCodeSize': [SKIP],
}],  # no_i18n == True

################################################################################
['variant == stress_snapshot', {
  '*': [SKIP],  # only relevant for mjsunit tests.
}],

##############################################################################
['no_simd_hardware == True', {
  'test-run-wasm-simd/*': [SKIP],
  'test-run-wasm-simd-liftoff/*': [SKIP],
  'test-gc/RunWasmLiftoff_RefTrivialCasts': [SKIP],
  'test-gc/RunWasmTurbofan_RefTrivialCasts': [SKIP],
  'test-run-wasm/RunWasmLiftoff_Select_s128_parameters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_Select_s128_parameters': [SKIP],
  'test-liftoff-for-fuzzing/NondeterminismUnopF32x4': [SKIP],
  'test-liftoff-for-fuzzing/NondeterminismUnopF64x2': [SKIP],
}],  # no_simd_hardware == True

################################################################################
['variant == stress_concurrent_inlining', {
  # crbug.com/v8/11649: Improper access to BreakInfo and friends.
  'test-debug/BreakPointInlinedBuiltin': [PASS, FAIL],
  'test-debug/BreakPointInlining': [PASS, FAIL],
  # BUG(11524): Crashing flakily.
  'test-cpu-profiler/TracingCpuProfiler': [PASS, FAIL],
  # crbug.com/v8/11513: Flakily failing due to the additional compile task.
  'test-heap/CellsInOptimizedCodeAreWeak': [PASS, FAIL],
  'test-heap/EnsureAllocationSiteDependentCodesProcessed': [PASS, FAIL],
  'test-heap/LeakNativeContextVia*': [PASS, FAIL],
  'test-heap/NewSpaceObjectsInOptimizedCode': [PASS, FAIL],
  'test-heap/ObjectsInEagerlyDeoptimizedCodeAreWeak': [PASS, FAIL],
  'test-heap/ObjectsInOptimizedCodeAreWeak': [PASS, FAIL],
}], # variant == stress_concurrent_inlining

################################################################################
['third_party_heap', {
  # v8::Unwinder::PCIsInV8 is not supported
  'test-unwinder-code-pages/PCIsInV8_LargeCodeObject_CodePagesAPI': [SKIP],
  'test-unwinder-code-pages/Unwind_CodeObjectPCInMiddle_Success_CodePagesAPI': [SKIP],
  # Calls Space::FirstPageAddress
  'test-debug-helper/GetObjectProperties': [SKIP],
  # Calls Heap::SizeOfObjects
  'test-heap/TestSizeOfObjectsVsHeapObjectIteratorPrecision': [SKIP],
  # Test on heap profiler
  'test-heap-profiler/SamplingHeapProfilerApiSamples': [SKIP],
  'test-heap-profiler/SamplingHeapProfiler': [SKIP],
  'test-heap-profiler/SamplingHeapProfilerRateAgnosticEstimates': [SKIP],
  'test-heap-profiler/SamplingHeapProfilerApiAllocation': [SKIP],
  'test-heap-profiler/SamplingHeapProfilerLargeInterval': [SKIP],
  # Test old/new space backing store allocation
  'test-external-string-tracker/ExternalString_ExternalBackingStoreSizeIncreases': [SKIP],
  # Read data from read_only_space->pages()
  'test-serialize/CodeSerializerExternalScriptName': [SKIP],
  'test-serialize/CodeSerializerThreeBigStrings': [SKIP],
  # Access chunk metadata
  'test-roots/TestHeapRootsNotReadOnly': [SKIP],
  'test-roots/TestReadOnlyRoots': [SKIP],
  # Requires heap::SimulateFullSpace
  'test-invalidated-slots/InvalidatedSlotsAfterTrimming': [SKIP],
  'test-invalidated-slots/InvalidatedSlotsAllInvalidatedRanges': [SKIP],
  'test-invalidated-slots/InvalidatedSlotsCleanupEachObject': [SKIP],
  'test-invalidated-slots/InvalidatedSlotsCleanupFull': [SKIP],
  'test-invalidated-slots/InvalidatedSlotsCleanupRightTrim': [SKIP],
  'test-invalidated-slots/InvalidatedSlotsEvacuationCandidate': [SKIP],
  'test-invalidated-slots/InvalidatedSlotsNoInvalidatedRanges': [SKIP],
  'test-invalidated-slots/InvalidatedSlotsResetObjectRegression': [SKIP],
  'test-invalidated-slots/InvalidatedSlotsSomeInvalidatedRanges': [SKIP],
  # Requires --finalize_streaming_on_background:
  'test-concurrent-allocation/ConcurrentAllocationWhileMainThreadIsParked': [SKIP],
  'test-concurrent-allocation/ConcurrentAllocationWhileMainThreadParksAndUnparks': [SKIP],
  'test-concurrent-allocation/ConcurrentAllocationWhileMainThreadRunsWithSafepoints': [SKIP],
  # Tests on V8 stock GC
  'test-spaces/*': [SKIP],
  'test-compaction/*': [SKIP],
  'test-mark-compact/*': [SKIP],
  'test-lab/*': [SKIP],
  'test-heap/TestAlignedOverAllocation': [SKIP],
  'test-heap/RememberedSetRemoveRange': [SKIP],
  'test-heap/CodeObjectRegistry': [SKIP],
  'test-heap/DeepEagerCompilationPeakMemory': [SKIP],
  'test-api/GetHeapStatistics': [SKIP],
  'test-api/GetHeapSpaceStatistics': [SKIP],
  # Requires --concurrent_recompilation
  'test-debug/BreakPointBuiltinConcurrentOpt': [SKIP],
  # Requires a second isolate
  'test-api-array-buffer/BackingStore_HoldAllocatorAlive_AfterIsolateShutdown': [SKIP],
  'test-api-array-buffer/BackingStore_HoldAllocatorAlive_UntilIsolateShutdown': [SKIP],
  'test-api-array-buffer/BackingStore_ReleaseAllocator_NullptrBackingStore': [SKIP],
  'test-api/CodeCache': [SKIP],
  'test-api/CodeCacheModuleScriptMismatch': [SKIP],
  'test-api/CodeCacheScriptModuleMismatch': [SKIP],
  'test-api/ExternalInternalizedStringCollectedAtTearDown': [SKIP],
  'test-api/ExternalStringCollectedAtTearDown': [SKIP],
  'test-api/InitializeDefaultIsolateOnSecondaryThread_AddHistogramSampleFunction': [SKIP],
  'test-api/InitializeDefaultIsolateOnSecondaryThread_CounterFunction': [SKIP],
  'test-api/InitializeDefaultIsolateOnSecondaryThread_CreateHistogramFunction': [SKIP],
  'test-api/InitializeDefaultIsolateOnSecondaryThread_FatalHandler': [SKIP],
  'test-api/IsolateDifferentContexts': [SKIP],
  'test-api/IsolateNewDispose': [SKIP],
  'test-api/ModuleCodeCache': [SKIP],
  'test-api/MultipleIsolatesOnIndividualThreads': [SKIP],
  'test-api/NestedIsolates': [SKIP],
  'test-api/RunTwoIsolatesOnSingleThread': [SKIP],
  'test-api/VerifyArrayPrototypeGuarantees': [SKIP],
  'test-compiler/DecideToPretenureDuringCompilation': [SKIP],
  'test-cpu-profiler/MultipleIsolates': [SKIP],
  'test-heap/Regress538257': [SKIP],
  'test-heap/ReinitializeStringHashSeed': [SKIP],
  'test-lockers/*': [SKIP],
  'test-log/ExternalCodeEventListenerInnerFunctions': [SKIP],
  'test-log/LogInterpretedFramesNativeStackWithSerialization': [SKIP],
  'test-managed/*': [SKIP],
  'test-mark-compact/RegressJoinThreadsOnIsolateDeinit': [SKIP],
  'test-memory-measurement/RandomizedTimeout': [SKIP],
  'test-random-number-generator/*': [SKIP],
  'test-serialize/CodeSerializerAfterExecute': [SKIP],
  'test-serialize/CodeSerializerBitFlip': [SKIP],
  'test-serialize/CodeSerializerFlagChange': [SKIP],
  'test-serialize/CodeSerializerIsolates': [SKIP],
  'test-serialize/CodeSerializerIsolatesEager': [SKIP],
  'test-serialize/CodeSerializerWithHarmonyScoping': [SKIP],
  'test-serialize/ContextSerializerContext': [SKIP],
  'test-serialize/ContextSerializerCustomContext': [SKIP],
  'test-serialize/CustomSnapshotDataBlob1': [SKIP],
  'test-serialize/CustomSnapshotDataBlob2': [SKIP],
  'test-serialize/CustomSnapshotDataBlobArrayBufferWithOffset': [SKIP],
  'test-serialize/CustomSnapshotDataBlobDataView': [SKIP],
  'test-serialize/CustomSnapshotDataBlobDetachedArrayBuffer': [SKIP],
  'test-serialize/CustomSnapshotDataBlobOnOrOffHeapTypedArray': [SKIP],
  'test-serialize/CustomSnapshotDataBlobOutdatedContextWithOverflow': [SKIP],
  'test-serialize/CustomSnapshotDataBlobOverwriteGlobal': [SKIP],
  'test-serialize/CustomSnapshotDataBlobSharedArrayBuffer': [SKIP],
  'test-serialize/CustomSnapshotDataBlobStringNotInternalized': [SKIP],
  'test-serialize/CustomSnapshotDataBlobTypedArrayNoEmbedderFieldCallback': [SKIP],
  'test-serialize/CustomSnapshotDataBlobWithIrregexpCodeClearCode': [SKIP],
  'test-serialize/CustomSnapshotDataBlobWithIrregexpCodeKeepCode': [SKIP],
  'test-serialize/CustomSnapshotDataBlobWithKeep': [SKIP],
  'test-serialize/CustomSnapshotDataBlobWithLocker': [SKIP],
  'test-serialize/CustomSnapshotDataBlobWithOffHeapTypedArray': [SKIP],
  'test-serialize/CustomSnapshotDataBlobWithWarmup': [SKIP],
  'test-serialize/ReinitializeHashSeedJSCollectionRehashable': [SKIP],
  'test-serialize/ReinitializeHashSeedRehashable': [SKIP],
  'test-serialize/SnapshotCreatorAddData': [SKIP],
  'test-serialize/SnapshotCreatorArrayJoinWithKeep': [SKIP],
  'test-serialize/SnapshotCreatorDuplicateFunctions': [SKIP],
  'test-serialize/SnapshotCreatorExternalReferences': [SKIP],
  'test-serialize/SnapshotCreatorIncludeGlobalProxy': [SKIP],
  'test-serialize/SnapshotCreatorMultipleContexts': [SKIP],
  'test-serialize/SnapshotCreatorNoExternalReferencesDefault': [SKIP],
  'test-serialize/SnapshotCreatorPreparseDataAndNoOuterScope': [SKIP],
  'test-serialize/SnapshotCreatorShortExternalReferences': [SKIP],
  'test-serialize/SnapshotCreatorTemplates': [SKIP],
  'test-serialize/SnapshotDataBlobWithWarmup': [SKIP],
  'test-serialize/StartupSerializerOnce': [SKIP],
  'test-serialize/StartupSerializerOnceRunScript': [SKIP],
  'test-serialize/StartupSerializerTwice': [SKIP],
  'test-serialize/StartupSerializerTwiceRunScript': [SKIP],
  'test-serialize/WeakArraySerializationInSnapshot': [SKIP],
  'test-typedarrays/SpeciesConstructor': [SKIP],
  'test-typedarrays/SpeciesConstructorAccessor': [SKIP],
  'test-typedarrays/SpeciesModified': [SKIP],
  'test-typedarrays/SpeciesParentConstructor': [SKIP],
  'test-typedarrays/SpeciesProto': [SKIP],
  'test-wasm-serialization/*': [SKIP],
  'test-wasm-shared-engine/*': [SKIP],
  'test-shared-heap/*': [SKIP],
  # Performs GC or expects OOM
  'test-alloc/StressHandles': [SKIP],
  'test-alloc/StressJS': [SKIP],
  'test-api-wasm/WasmStreamingCallback': [SKIP],
  'test-api/DontLeakGlobalObjects': [SKIP],
  'test-api/ExternalInternalizedStringCollectedAtGC': [SKIP],
  'test-api/ExternalStringWithDisposeHandling': [SKIP],
  'test-api/ExternalizeOldSpaceOneByteCons': [SKIP],
  'test-api/ExternalizeOldSpaceTwoByteCons': [SKIP],
  'test-api/GCFromWeakCallbacks': [SKIP],
  'test-api/GlobalValueMap': [SKIP],
  'test-api/IndependentWeakHandle': [SKIP],
  'test-api/InternalFieldCallback': [SKIP],
  'test-api/MemoryPressure': [SKIP],
  'test-api/NumberOfDetachedContexts': [SKIP],
  'test-api/NumberOfNativeContexts': [SKIP],
  'test-api/Recorder_GetContext': [SKIP],
  'test-api/Regress1516': [SKIP],
  'test-api/Regress528': [SKIP],
  'test-api/ResetWeakHandle': [SKIP],
  'test-api/ScavengeExternalOneByteString': [SKIP],
  'test-api/ScavengeExternalString': [SKIP],
  'test-api/ScriptMakingExternalOneByteString': [SKIP],
  'test-api/ScriptMakingExternalString': [SKIP],
  'test-api/ScriptUsingOneByteStringResource': [SKIP],
  'test-api/ScriptUsingStringResource': [SKIP],
  'test-api/SetJitCodeEventHandler': [SKIP],
  'test-api/Threading1': [SKIP],
  'test-api/Threading3': [SKIP],
  'test-api/Threading5': [SKIP],
  'test-api/TriggerDelayedMainThreadMetricsEvent': [SKIP],
  'test-api/TriggerMainThreadMetricsEvent': [SKIP],
  'test-api/TwoPassPhantomCallbacks': [SKIP],
  'test-api/TwoPassPhantomCallbacksNestedGc': [SKIP],
  'test-api/TwoPassPhantomCallbacksTriggeredByStringAlloc': [SKIP],
  'test-api/WeakCallbackApi': [SKIP],
  'test-array-buffer-tracker/ArrayBuffer_Compaction': [SKIP],
  'test-array-buffer-tracker/ArrayBuffer_ExternalBackingStoreSizeIncreasesMarkCompact': [SKIP],
  'test-array-buffer-tracker/ArrayBuffer_OnlyMC': [SKIP],
  'test-concurrent-allocation/ConcurrentAllocationInLargeSpace': [SKIP],
  'test-concurrent-allocation/ConcurrentAllocationInOldSpace': [SKIP],
  'test-concurrent-allocation/ConcurrentAllocationInOldSpaceFromMainThread': [SKIP],
  'test-cpu-profiler/BytecodeFlushEventsEagerLogging': [SKIP],
  'test-cpu-profiler/ClearUnusedWithEagerLogging': [SKIP],
  'test-debug/AfterCompileEventWhenEventListenerIsReset': [SKIP],
  'test-debug/BreakEventWhenEventListenerIsReset': [SKIP],
  'test-debug/BreakPointApiAccessor': [SKIP],
  'test-debug/BreakPointApiConstructor': [SKIP],
  'test-debug/BreakPointApiFunction': [SKIP],
  'test-debug/BreakPointApiGetter': [SKIP],
  'test-debug/BreakPointApiIntrinsics': [SKIP],
  'test-debug/BreakPointApiSetter': [SKIP],
  'test-debug/BreakPointBoundBuiltin': [SKIP],
  'test-debug/BreakPointBuiltin': [SKIP],
  'test-debug/BreakPointBuiltinNewContext': [SKIP],
  'test-debug/BreakPointBuiltinTFOperator': [SKIP],
  'test-debug/BreakPointCondition': [SKIP],
  'test-debug/BreakPointConditionBuiltin': [SKIP],
  'test-debug/BreakPointConstructCallWithGC': [SKIP],
  'test-debug/BreakPointConstructorBuiltin': [SKIP],
  'test-debug/BreakPointICCall': [SKIP],
  'test-debug/BreakPointICCallWithGC': [SKIP],
  'test-debug/BreakPointICLoad': [SKIP],
  'test-debug/BreakPointICStore': [SKIP],
  'test-debug/BreakPointInlineApiFunction': [SKIP],
  'test-debug/BreakPointInlineBoundBuiltin': [SKIP],
  'test-debug/BreakPointInlinedBuiltin': [SKIP],
  'test-debug/BreakPointInlinedConstructorBuiltin': [SKIP],
  'test-debug/BreakPointInlining': [SKIP],
  'test-debug/BreakPointJSBuiltin': [SKIP],
  'test-debug/BreakPointSurviveGC': [SKIP],
  'test-debug/ConditionalBreakpointWithCodeGenerationDisallowed': [SKIP],
  'test-debug/ContextData': [SKIP],
  'test-debug/DebugBreak': [SKIP],
  'test-debug/DebugBreakInDoWhileCondition1': [SKIP],
  'test-debug/DebugBreakInDoWhileCondition2': [SKIP],
  'test-debug/DebugBreakInDoWhileTrue1': [SKIP],
  'test-debug/DebugBreakInDoWhileTrue2': [SKIP],
  'test-debug/DebugBreakInFor1': [SKIP],
  'test-debug/DebugBreakInFor2': [SKIP],
  'test-debug/DebugBreakInForCondition1': [SKIP],
  'test-debug/DebugBreakInForCondition2': [SKIP],
  'test-debug/DebugBreakInWhileCondition1': [SKIP],
  'test-debug/DebugBreakInWhileCondition2': [SKIP],
  'test-debug/DebugBreakInWhileTrue1': [SKIP],
  'test-debug/DebugBreakInWhileTrue2': [SKIP],
  'test-debug/DebugBreakInWrappedScript': [SKIP],
  'test-debug/DebugBreakWithoutJS': [SKIP],
  'test-debug/DebugConditional': [SKIP],
  'test-debug/DebugSetOutOfMemoryListener': [SKIP],
  'test-debug/DebugStepDeclarations': [SKIP],
  'test-debug/DebugStepDoWhile': [SKIP],
  'test-debug/DebugStepFor': [SKIP],
  'test-debug/DebugStepForBreak': [SKIP],
  'test-debug/DebugStepForContinue': [SKIP],
  'test-debug/DebugStepForIn': [SKIP],
  'test-debug/DebugStepFunctionApply': [SKIP],
  'test-debug/DebugStepFunctionCall': [SKIP],
  'test-debug/DebugStepFunctionCallApply': [SKIP],
  'test-debug/DebugStepIf': [SKIP],
  'test-debug/DebugStepKeyedLoadLoop': [SKIP],
  'test-debug/DebugStepKeyedStoreLoop': [SKIP],
  'test-debug/DebugStepLinear': [SKIP],
  'test-debug/DebugStepLinearMixedICs': [SKIP],
  'test-debug/DebugStepLocals': [SKIP],
  'test-debug/DebugStepNamedLoadLoop': [SKIP],
  'test-debug/DebugStepNamedStoreLoop': [SKIP],
  'test-debug/DebugStepNatives': [SKIP],
  'test-debug/DebugStepSwitch': [SKIP],
  'test-debug/DebugStepWhile': [SKIP],
  'test-debug/DebugStepWith': [SKIP],
  'test-debug/DebuggerStatement': [SKIP],
  'test-debug/DebuggerStatementBreakpoint': [SKIP],
  'test-debug/DebuggerUnload': [SKIP],
  'test-debug/DisableBreak': [SKIP],
  'test-debug/EvalContextData': [SKIP],
  'test-debug/GCDuringBreakPointProcessing': [SKIP],
  'test-debug/NoBreakWhenBootstrapping': [SKIP],
  'test-debug/NoDebugBreakInAfterCompileEventListener': [SKIP],
  'test-debug/PauseInScript': [SKIP],
  'test-debug/Regress1163547': [SKIP],
  'test-debug/RepeatDebugBreak': [SKIP],
  'test-debug/TerminateOnResumeAtBreakOnEntry': [SKIP],
  'test-debug/TerminateOnResumeAtBreakOnEntryUserDefinedFunction': [SKIP],
  'test-debug/TerminateOnResumeAtBreakpoint': [SKIP],
  'test-debug/TerminateOnResumeAtException': [SKIP],
  'test-debug/TerminateOnResumeAtInterruptFromOtherThread': [SKIP],
  'test-debug/TerminateOnResumeAtUnhandledRejection': [SKIP],
  'test-debug/TerminateOnResumeAtUnhandledRejectionCppImpl': [SKIP],
  'test-debug/TerminateOnResumeFromMicrotask': [SKIP],
  'test-debug/TerminateOnResumeFromOtherThread': [SKIP],
  'test-debug/TerminateOnResumeRunJavaScriptAtBreakpoint': [SKIP],
  'test-debug/TerminateOnResumeRunMicrotaskAtBreakpoint': [SKIP],
  'test-embedder-tracing/GarbageCollectionForTesting': [SKIP],
  'test-embedder-tracing/NotifyEmptyStack': [SKIP],
  'test-embedder-tracing/TracedGlobalCopy': [SKIP],
  'test-embedder-tracing/TracedGlobalCopyNoDestructor': [SKIP],
  'test-embedder-tracing/TracedGlobalCopyWithDestructor': [SKIP],
  'test-embedder-tracing/TracedGlobalDestructor': [SKIP],
  'test-embedder-tracing/TracedGlobalInStdUnorderedMap': [SKIP],
  'test-embedder-tracing/TracedGlobalInStdVector': [SKIP],
  'test-embedder-tracing/TracedGlobalMove': [SKIP],
  'test-embedder-tracing/TracedGlobalNoDestructor': [SKIP],
  'test-embedder-tracing/TracedGlobalSetFinalizationCallbackMarkSweep': [SKIP],
  'test-embedder-tracing/TracedGlobalToUnmodifiedJSObjectDiesOnMarkSweep': [SKIP],
  'test-embedder-tracing/TracedReferenceCopy': [SKIP],
  'test-embedder-tracing/TracedReferenceHandlesDoNotLeak': [SKIP],
  'test-embedder-tracing/TracedReferenceHandlesMarking': [SKIP],
  'test-embedder-tracing/TracedReferenceMove': [SKIP],
  'test-embedder-tracing/TracingInEphemerons': [SKIP],
  'test-embedder-tracing/TracingInRevivedSubgraph': [SKIP],
  'test-embedder-tracing/V8RegisteringEmbedderReference': [SKIP],
  'test-external-string-tracker/ExternalString_ExternalBackingStoreSizeIncreasesAfterExternalization': [SKIP],
  'test-external-string-tracker/ExternalString_ExternalBackingStoreSizeIncreasesMarkCompact': [SKIP],
  'test-factory/Factory_CodeBuilder_BuildOOM': [SKIP],
  'test-factory/Factory_CodeBuilder_TryBuildOOM': [SKIP],
  'test-global-handles/FinalizerDiesAndKeepsPhantomAliveOnMarkCompact': [SKIP],
  'test-global-handles/FinalizerWeakness': [SKIP],
  'test-global-handles/GCFromWeakCallbacks': [SKIP],
  'test-global-handles/PhatomHandlesWithoutCallbacks': [SKIP],
  'test-global-handles/SecondPassPhantomCallbacks': [SKIP],
  'test-global-handles/WeakHandleToUnmodifiedJSApiObjectDiesOnMarkCompact': [SKIP],
  'test-global-handles/WeakHandleToUnmodifiedJSObjectDiesOnMarkCompact': [SKIP],
  'test-heap-profiler/HeapSnapshotDeleteDuringTakeSnapshot': [SKIP],
  'test-heap-profiler/HeapSnapshotObjectsStats': [SKIP],
  'test-heap-profiler/SamplingHeapProfilerPretenuredInlineAllocations': [SKIP],
  'test-heap-profiler/TrackBumpPointerAllocations': [SKIP],
  'test-heap/AllocateExternalBackingStore': [SKIP],
  'test-heap/BytecodeArray': [SKIP],
  'test-heap/CellsInOptimizedCodeAreWeak': [SKIP],
  'test-heap/CompilationCacheCachingBehavior': [SKIP],
  'test-heap/DeleteWeakGlobalHandle': [SKIP],
  'test-heap/EnsureAllocationSiteDependentCodesProcessed': [SKIP],
  'test-heap/LeakNativeContextViaFunction': [SKIP],
  'test-heap/LeakNativeContextViaMap': [SKIP],
  'test-heap/LeakNativeContextViaMapKeyed': [SKIP],
  'test-heap/LeakNativeContextViaMapProto': [SKIP],
  'test-heap/LiveBytes': [SKIP],
  'test-heap/MonomorphicStaysMonomorphicAfterGC': [SKIP],
  'test-heap/NextCodeLinkInCodeDataContainerIsCleared': [SKIP],
  'test-heap/NextCodeLinkIsWeak': [SKIP],
  'test-heap/NextCodeLinkIsWeak2': [SKIP],
  'test-heap/ObjectsInEagerlyDeoptimizedCodeAreWeak': [SKIP],
  'test-heap/ObjectsInOptimizedCodeAreWeak': [SKIP],
  'test-heap/OldSpaceAllocationCounter': [SKIP],
  'test-heap/OutOfMemoryIneffectiveGCRunningJS': [SKIP],
  'test-heap/Regress10843': [SKIP],
  'test-heap/Regress3877': [SKIP],
  'test-heap/Regress609761': [SKIP],
  'test-heap/ReleaseOverReservedPages': [SKIP],
  'test-heap/ReleaseStackTraceData': [SKIP],
  'test-heap/RememberedSet_OldToOld': [SKIP],
  'test-heap/TestBytecodeFlushing': [SKIP],
  'test-heap/TestInternalWeakLists': [SKIP],
  'test-heap/TestSizeOfObjects': [SKIP],
  'test-heap/TransitionArrayShrinksDuringAllocToOne': [SKIP],
  'test-heap/TransitionArrayShrinksDuringAllocToOnePropertyFound': [SKIP],
  'test-heap/TransitionArrayShrinksDuringAllocToZero': [SKIP],
  'test-heap/UncommitUnusedLargeObjectMemory': [SKIP],
  'test-heap/WeakFunctionInConstructor': [SKIP],
  'test-heap/WeakGlobalHandlesMark': [SKIP],
  'test-heap/WeakGlobalUnmodifiedApiHandlesScavenge': [SKIP],
  'test-heap/WeakMapInMonomorphicCompareNilIC': [SKIP],
  'test-heap/WeakMapInMonomorphicKeyedLoadIC': [SKIP],
  'test-heap/WeakMapInMonomorphicKeyedStoreIC': [SKIP],
  'test-heap/WeakMapInMonomorphicLoadIC': [SKIP],
  'test-heap/WeakMapInMonomorphicStoreIC': [SKIP],
  'test-heap/WeakMapInPolymorphicKeyedLoadIC': [SKIP],
  'test-heap/WeakMapInPolymorphicKeyedStoreIC': [SKIP],
  'test-heap/WeakMapInPolymorphicLoadIC': [SKIP],
  'test-heap/WeakMapInPolymorphicStoreIC': [SKIP],
  'test-js-weak-refs/TestJSWeakRef': [SKIP],
  'test-js-weak-refs/TestJSWeakRefKeepDuringJob': [SKIP],
  'test-managed/GCCausesDestruction': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I32AddOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I32DivSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I32DivUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I32MulOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I32RemSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I32RemUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I32ShlOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I32ShrSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I32ShrUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I32SubOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I64AddOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I64DivSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I64DivUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I64MulOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I64RemSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I64RemUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I64ShlOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I64ShrSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I64ShrUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_I64SubOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmInterpreter_LoadMemI32_const_oob_misaligned': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I32AddOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I32DivSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I32DivUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I32MulOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I32RemSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I32RemUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I32ShlOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I32ShrSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I32ShrUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I32SubOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I64AddOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I64DivSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I64DivUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I64MulOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I64RemSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I64RemUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I64ShlOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I64ShrSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I64ShrUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_I64SubOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmLiftoff_LoadMemI32_const_oob_misaligned': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I32AddOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I32DivSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I32DivUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I32MulOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I32RemSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I32RemUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I32ShlOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I32ShrSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I32ShrUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I32SubOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I64AddOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I64DivSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I64DivUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I64MulOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I64RemSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I64RemUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I64ShlOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I64ShrSOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I64ShrUOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_I64SubOnDifferentRegisters': [SKIP],
  'test-run-wasm/RunWasmTurbofan_LoadMemI32_const_oob_misaligned': [SKIP],
  'test-serialize/CustomSnapshotDataBlobStackOverflow': [SKIP],
  'test-serialize/CustomSnapshotManyArrayBuffers': [SKIP],
  'test-weak-references/PrototypeUsersCompacted': [SKIP],
  'test-weak-references/WeakArrayListBasic': [SKIP],
  'test-weak-references/WeakArraysBasic': [SKIP],
  'test-weak-references/WeakReferencesBasic': [SKIP],
  'test-weakmaps/WeakMapsWithChainedEntries': [SKIP],
  'test-weakmaps/Weakness': [SKIP],
  'test-weaksets/WeakSet_Weakness': [SKIP],
  'test-web-snapshots/SFIDeduplicationAfterBytecodeFlushing': [SKIP],
  # CodeRange tests
  'test-code-pages/LargeCodeObjectWithSignalHandler': [SKIP],
  'test-code-pages/LargeCodeObject': [SKIP],
  'test-code-pages/OptimizedCodeWithCodeRange': [SKIP],
  'test-code-pages/Sorted': [SKIP],
  'test-code-pages/CodeRangeCorrectContents': [SKIP],
  # Timeout (too many GCs)
  'test-heap/Regress8014': [SKIP],
  'test-accessors/HandleScopePop': [SKIP],
}], # third_party_heap

################################################################################
['variant == always_sparkplug', {
  # SFI deduplication tests check compilation state, which always_sparkplug
  # can break.
  'test-web-snapshots/SFIDeduplication*': [SKIP],

  # %ObserveNode tests rely on TurboFan.
  'test-calls-with-arraylike-or-spread/*': [SKIP],
}],

################################################################################
['variant == no_lfa', {
  'test-calls-with-arraylike-or-spread/*': [SKIP],
}],

]