# Copyright 2016 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

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

  # Issue 3660: Replacing activated TurboFan frames by unoptimized code does
  # not work, but we expect it to not crash.
  'debug/debug-step-turbofan': [PASS, FAIL],

  # Issue 3641: The new 'then' semantics suppress some exceptions.
  # These tests may be changed or removed when 'chain' is deprecated.
  'debug/es6/debug-promises/reject-with-throw-in-reject': [FAIL],
  'debug/es6/debug-promises/reject-with-undefined-reject': [FAIL],
  'debug/es6/debug-promises/reject-with-invalid-reject': [FAIL],

  # Issue 5651: Context mismatch in ScopeIterator::Type() for eval default
  # parameter value (the test causes indexing a FixedArray out of bounds ->
  # CRASH is also a reasonable outcome).
  'debug/es6/debug-scope-default-param-with-eval': [FAIL, CRASH],

  # Slow tests
  'debug/debug-scopes': [PASS, SLOW],
  'debug/debug-stepout-scope-part*': [PASS, SLOW],
  'debug/ignition/debug-step-prefix-bytecodes': [PASS, SLOW, ['mode == debug', SKIP]],

  # Too slow in debug mode and on slow platforms.
  'regress/regress-2318': [PASS, SLOW, ['mode == debug or (arch != ia32 and arch != x64) or asan == True or msan == True', SKIP]],

  # forcing weak callback in asan build change break order
  'debug/debug-stepin-builtin-callback': [['asan == True or msan == True', SKIP]],
}],  # ALWAYS

##############################################################################
['variant == stress', {
  # TODO(turbofan): Functions with eval or debugger now get optimized
  # with Turbofan, which has issues with the debugger issues.
  'debug/debug-evaluate-locals': [FAIL],

  # Very slow in stress mode.
  'regress/regress-2318': [SKIP],

  # Currently fails because breakpoint information is inconsistent after
  # disabling and re-enabling the debugger (https://crbug.com/v8/10403).
  'debug/wasm/debug-step-into-wasm': [SKIP],
}],  # variant == stress

##############################################################################
['variant == stress and (arch == arm or arch == arm64) and simulator_run', {
  # Slow tests: https://crbug.com/v8/7783
  'debug/debug-stepout-scope-part*': [SKIP],
}],  # variant == stress and (arch == arm or arch == arm64) and simulator_run

##############################################################################
['gc_stress == True', {
  # Skip tests not suitable for GC stress.
  # Tests taking too long
  'debug/debug-stepout-scope-part*': [SKIP],

  # Async function tests taking too long
  # https://bugs.chromium.org/p/v8/issues/detail?id=5411
  'debug/es8/async-debug-caught-exception-cases0': [SKIP],
  'debug/es8/async-debug-caught-exception-cases1': [SKIP],
  'debug/es8/async-debug-caught-exception-cases2': [SKIP],
  'debug/es8/async-debug-caught-exception-cases3': [SKIP],
  'debug/es8/async-function-debug-scopes': [SKIP],

  # https://crbug.com/v8/8141
  'debug/debug-liveedit-1': [SKIP],
  'debug/debug-liveedit-double-call': [SKIP],
  'debug/es6/debug-liveedit-new-target-3': [SKIP],
  'debug/side-effect/debug-evaluate-no-side-effect-control': [SKIP],
}],  # 'gc_stress == True'

##############################################################################
['gc_fuzzer', {
  # Slow tests.
  'regress/regress-2318': [SKIP],
}],  # 'gc_fuzzer'

##############################################################################
['predictable == True', {
  # https://crbug.com/v8/8147
  'debug/debug-liveedit-*': [SKIP],
  'debug/debug-set-variable-value': [SKIP],

  # Rely on (blocking) concurrent compilation.
  'debug/regress/regress-opt-after-debug-deopt': [SKIP],
  'debug/regress/regress-prepare-break-while-recompile': [SKIP],
  'regress/regress-7421': [SKIP],
}],  # 'predictable == True'

##############################################################################
['variant == no_wasm_traps', {
  '*': [SKIP],
}],  # variant == no_wasm_traps

##############################################################################
['arch == arm and not simulator_run', {
  # Too slow on chromebooks.
  'debug/ignition/debug-step-prefix-bytecodes': [SKIP],
}],  # 'arch == arm and not simulator_run'

##############################################################################
['arch == arm and mode == debug', {
  # Tests taking too long
  'debug/debug-stepout-scope-part1': [SKIP],
  'debug/debug-stepout-scope-part2': [SKIP],
  'debug/debug-stepout-scope-part3': [SKIP],
  'debug/debug-stepout-scope-part4': [SKIP],
  'debug/debug-stepout-scope-part5': [SKIP],
  'debug/debug-stepout-scope-part6': [SKIP],
  'debug/debug-stepout-scope-part7': [SKIP],
  'debug/debug-stepout-scope-part8': [SKIP],
}],  # 'arch == arm and mode == debug'

['mode != debug', {
  # Test uses a flag only available in debug mode
  'debug/wasm/debug-enabled-tier-down-wasm-unsupported-liftoff': [SKIP],
}],
##############################################################################
['arch == s390 or arch == s390x', {

  # Stack manipulations in LiveEdit is not implemented for this arch.
  'debug/debug-liveedit-check-stack': [SKIP],
  'debug/debug-liveedit-double-call': [SKIP],
  'debug/debug-liveedit-restart-frame': [SKIP],
}],  # 'arch == s390 or arch == s390x'

##############################################################################
# TODO(v8:7777): Change this once wasm is supported in jitless mode.
['not has_webassembly or variant == jitless', {
  'debug/wasm/*': [SKIP],
  'regress/regress-crbug-840288': [SKIP],
  'regress/regress-crbug-1032042': [SKIP],
}],  # not has_webassembly or variant == jitless

##############################################################################
['variant == turboprop or variant == turboprop_as_toptier', {
  # Deopts differently than TurboFan.
  'debug/debug-optimize': [SKIP],
  'debug/debug-compile-optimized': [SKIP],
}],  # variant == turboprop or variant == turboprop_as_toptier

##############################################################################
# Liftoff needs to be enabled before running these tests.
['arch in (s390, s390x, ppc, ppc64)', {
  'regress/regress-crbug-1032042': [SKIP],
  'regress/regress-crbug-840288': [SKIP],
  'debug/wasm/*': [SKIP],
}],

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

]