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

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

  # This test is so detailed in it's look at the literals array, I can't
  # maintain it until the CL is done.
  'test-heap-profiler/AllocationSitesAreVisible': [FAIL, ['lite_mode == True', SKIP]],

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

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

  # TODO(ulan): Renable after fixing the test's brittleness.
  'test-heap/OutOfMemory': [SKIP],

  # BUG(5193). The cpu profiler tests are notoriously flaky.
  'test-profile-generator/RecordStackTraceAtStartProfiling': [SKIP],
  'test-cpu-profiler/CollectDeoptEvents': [SKIP],
  '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],

  # BUG(3742).
  'test-mark-compact/MarkCompactCollector': [PASS, ['arch==arm', NO_VARIANTS]],

  # 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:8296). Flaky OOM test.
  'test-heap/OutOfMemorySmallObjects': [SKIP],

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

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

##############################################################################
['arch == arm64', {
  'test-api/Bug618': [PASS],

  # 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],
}],  # 'arch == arm64'

['arch == arm64 and simulator_run', {

  # Pass but take too long with the simulator.
  'test-api/ExternalArrays': [PASS, SLOW],
  'test-api/Threading*': [SKIP],
}],  # 'arch == arm64 and 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

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

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

##############################################################################
['tsan == True', {
  # BUG(v8:6924). The test allocates a lot of memory.
  'test-api/NewStringRangeError': [PASS, NO_VARIANTS],
}],  # 'tsan == True'

##############################################################################
['no_snap == True', {
  # Slow tests.
  'test-api/ExternalWrap': [PASS, SLOW],
  'test-api/FastReturnValues*': [PASS, SLOW],
  'test-decls/CrossScriptReferences_Simple2': [PASS, SLOW],
  # "WithWarmup" means starting from a snapshot, for which nosnap builds lack
  # support.
  'test-serialize/CustomSnapshotDataBlobWithWarmup': [SKIP],
  'test-serialize/SnapshotDataBlobWithWarmup': [SKIP],
  # Fails the embedded blob <-> Isolate verification step.
  'test-serialize/CustomSnapshotDataBlobWithLocker': [SKIP],

  # https://crbug.com/v8/7763
  'test-lockers/ExtensionsRegistration': [SKIP],
}],  # 'no_snap == True'

##############################################################################
['no_snap == True and system != windows and mode == debug', {
  # BUG(v8:9400).
  'test-heap/Regress615489': [SKIP],
}], # 'no_snap == True and system != windows and mode == debug'

##############################################################################
# TODO(machenbach): Fix application of '*'. Nosnap windows needs a separate
# section to not overwrite the expectations for TestThatAlwaysFails.
['no_snap == True and system == windows', {
  # Windows doesn't support nosnap mode.
  'test-serialize/*': [SKIP],
}],  # 'no_snap == True and system == windows'

##############################################################################
['is_full_debug', {
  # Tests too slow in non-optimized debug mode.
  'test-api/InternalFieldsSubclassing': [SKIP],
  'test-cpu-profiler/Inlining2': [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],
}],  # 'byteorder == big'

##############################################################################
['system == windows', {
  # BUG(v8:4573).
  'test-api/MultipleIsolatesOnIndividualThreads': [PASS, NO_VARIANTS],

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

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

  # BUG(5920): Flaky crash.
  'test-serialize/PartialSerializerContext': [PASS, ['arch == x64 and mode == debug', SKIP]],
}],  # 'system == windows'

##############################################################################
['system == windows and arch == x64 and mode == debug', {
  # BUG(v8:6328).
  'test-serialize/PartialSerializerCustomContext': [SKIP],
  'test-serialize/PartialSerializerObject': [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],
}],  # 'arch == arm'

##############################################################################
['arch == arm and not simulator_run', {
  # crbug.com/v8/7605
  'test-heap/OutOfMemorySmallObjects': [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],
}],  # '(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'

##############################################################################
['arch == mips64el or arch == mipsel', {
  # TODO(mips-team): support concurrent patching of jump table.
  'test-jump-table-assembler/*': [SKIP],
}],  # 'arch == mips64el or arch == mipsel'

##############################################################################
['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 == android_arm or arch == android_ia32', {

  # Tests crash as there is no /tmp directory in Android.
  'test-log/LogAccessorCallbacks': [SKIP],
  'test-log/LogCallbacks': [SKIP],
  'test-log/ProfLazyMode': [SKIP],
}],  # 'arch == android_arm or arch == android_ia32'

##############################################################################
['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/RunWasmCompiled_SimdLoadStoreLoad': [SKIP],
  'test-run-wasm-simd/RunWasm_SimdLoadStoreLoad': [SKIP],
  'test-run-wasm-simd/RunWasm_SimdLoadStoreLoad_turbofan': [SKIP],

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

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

['arch == ppc64', {
  # https://crbug.com/v8/8766
  'test-bytecode-generator/WideRegisters': [SKIP],
}],

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

##############################################################################
# The test relies on deterministic compilation.
['variant == stress_js_bg_compile_wasm_code_gc', {
  'test-compiler/DecideToPretenureDuringCompilation': [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.
['arch != x64', {
  'test-unwinder/*': [SKIP]
}],

##############################################################################
# Windows stack unwinding is only supported on x64.
['arch != x64 or system != windows', {
  'test-stack-unwinding-x64/*': [SKIP]
}],

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

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

  # TODO(v8:7777): Re-enable once wasm is supported in jitless mode.
  'test-api/WasmI32AtomicWaitCallback': [SKIP],
  'test-api/WasmI64AtomicWaitCallback': [SKIP],
  'test-api/WasmStreaming*': [SKIP],
  'test-c-wasm-entry/*': [SKIP],
  'test-jump-table-assembler/*': [SKIP],
  'test-run-wasm-64/*': [SKIP],
  'test-run-wasm-asmjs/*': [SKIP],
  'test-run-wasm-atomics64/*': [SKIP],
  'test-run-wasm-atomics/*': [SKIP],
  'test-run-wasm-bulk-memory/*': [SKIP],
  'test-run-wasm/*': [SKIP],
  'test-run-wasm-exceptions/*': [SKIP],
  'test-run-wasm-interpreter/*': [SKIP],
  'test-run-wasm-js/*': [SKIP],
  'test-run-wasm-module/*': [SKIP],
  'test-run-wasm-sign-extension/*': [SKIP],
  'test-run-wasm-simd/*': [SKIP],
  'test-streaming-compilation/*': [SKIP],
  'test-wasm-breakpoints/*': [SKIP],
  'test-wasm-codegen/*': [SKIP],
  'test-wasm-import-wrapper-cache/*': [SKIP],
  'test-wasm-interpreter-entry/*': [SKIP],
  'test-wasm-serialization/*': [SKIP],
  'test-wasm-shared-engine/*': [SKIP],
  'test-wasm-stack/*': [SKIP],
  'test-wasm-trap-position/*': [SKIP],
  'wasm-run-utils/*': [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-code-assembler/*': [SKIP],
  'test-code-generator/*': [SKIP],
  'test-code-stub-assembler/*': [SKIP],
  'test-js-context-specialization/*': [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-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-torque/*': [SKIP],
  'test-macro-assembler-x64/EmbeddedObj': [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
  'serializer-tester/SerializeCallAnyReceiver': [SKIP],
  'serializer-tester/SerializeCallArguments': [SKIP],
  'serializer-tester/SerializeCallProperty': [SKIP],
  'serializer-tester/SerializeCallProperty2': [SKIP],
  'serializer-tester/SerializeCallUndefinedReceiver': [SKIP],
  'serializer-tester/SerializeCallUndefinedReceiver2': [SKIP],
  'serializer-tester/SerializeCallWithSpread': [SKIP],
  'serializer-tester/SerializeConstruct': [SKIP],
  'serializer-tester/SerializeConstructWithSpread': [SKIP],
  'serializer-tester/SerializeInlinedClosure': [SKIP],
  'serializer-tester/SerializeInlinedFunction': [SKIP],
  'test-api/TurboAsmDisablesDetach': [SKIP],
  'test-cpu-profiler/TickLinesOptimized': [SKIP],
  'test-heap/TestOptimizeAfterBytecodeFlushingCandidate': [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],

  # --interpreted-frames-native-stack tests
  'test-log/ExternalCodeEventListenerWithInterpretedFramesNativeStack': [SKIP],
  'test-log/LogInterpretedFramesNativeStack': [SKIP],
  'test-log/LogInterpretedFramesNativeStackWithSerialization': [SKIP],
  'test-serialize/CodeSerializerOnePlusOneWithInterpretedFramesNativeStack': [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]],
}], # variant == jitless

##############################################################################
['variant == jitless and not embedded_builtins', {
  '*': [SKIP],
}], # variant == jitless and not embedded_builtins

]
