# Copyright 2012 the V8 project authors. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
#       notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
#       copyright notice, this list of conditions and the following
#       disclaimer in the documentation and/or other materials provided
#       with the distribution.
#     * Neither the name of Google Inc. nor the names of its
#       contributors may be used to endorse or promote products derived
#       from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

prefix mjsunit

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

##############################################################################
# Fails.
regress/regress-1119: FAIL

# Issue 1719: Slow to collect arrays over several contexts.
regress/regress-524: SKIP
# When that bug is fixed, revert the expectation to:
# Skip long running test in debug and allow it to timeout in release mode.
# regress/regress-524: (PASS || TIMEOUT), SKIP if $mode == debug

# This test non-deterministically runs out of memory on Windows ia32.
regress/regress-crbug-160010: SKIP

##############################################################################
# Too slow in debug mode with --stress-opt mode.
compiler/regress-stacktrace-methods: PASS, SKIP if $mode == debug
compiler/regress-funcaller: PASS, SKIP if $mode == debug
regress/regress-2318: PASS, SKIP if $mode == debug
regress/regress-create-exception: PASS, SKIP if $mode == debug
regress/regress-2612: PASS, SKIP if $mode == debug

##############################################################################
# Too slow in debug mode for GC stress mode.
regress/regress-crbug-217858: PASS, SKIP if $mode == debug

##############################################################################
# These use a built-in that's only present in debug mode. They take
# too long to run in debug mode on ARM and MIPS.
fuzz-natives-part*: PASS, SKIP if ($mode == release || $arch == arm || $arch == android_arm || $arch == mipsel)

big-object-literal: PASS, SKIP if ($arch == arm || $arch == android_arm)

# Issue 488: this test sometimes times out.
array-constructor: PASS || TIMEOUT

# Very slow on ARM and MIPS, contains no architecture dependent code.
unicode-case-overoptimization: PASS, TIMEOUT if ($arch == arm || $arch == android_arm || $arch == mipsel)

##############################################################################
# This test expects to reach a certain recursion depth, which may not work
# for debug mode.
json-recursive: PASS, (PASS || FAIL) if $mode == debug

##############################################################################
# Skip long running tests that time out in debug mode.
generated-transition-stub: PASS, SKIP if $mode == debug

##############################################################################
# This test sets the umask on a per-process basis and hence cannot be
# used in multi-threaded runs.
# On android there is no /tmp directory.
d8-os: PASS, SKIP if ($isolates || $arch == android_arm || $arch == android_ia32)
tools/tickprocessor: PASS, SKIP if ($arch == android_arm || $arch == android_ia32)

##############################################################################
# Long running test that reproduces memory leak and should be run manually.
regress/regress-2073: SKIP

##############################################################################
[ $arch == arm || $arch == android_arm ]

# Slow tests which times out in debug mode.
try: PASS, SKIP if $mode == debug
debug-scripts-request: PASS, SKIP if $mode == debug
array-constructor: PASS, SKIP if $mode == debug
regress/regress-1122: PASS, SKIP if ($mode == debug && $arch == android_arm)

# Flaky test that can hit compilation-time stack overflow in debug mode.
unicode-test: PASS, (PASS || FAIL) if $mode == debug

# Times out often in release mode on ARM.
compiler/regress-stacktrace-methods: PASS, PASS || TIMEOUT if $mode == release
array-splice: PASS || TIMEOUT

# Long running test.
string-indexof-2: PASS || TIMEOUT
mirror-object: PASS || TIMEOUT

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

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

# Stack manipulations in LiveEdit is not implemented for this arch.
debug-liveedit-check-stack: SKIP
debug-liveedit-stack-padding: SKIP
debug-liveedit-restart-frame: SKIP
debug-liveedit-double-call: SKIP

# Currently always deopt on minus zero
math-floor-of-div-minus-zero: SKIP

##############################################################################
[ $arch == mipsel ]

# Slow tests which times out in debug mode.
try: PASS, SKIP if $mode == debug
debug-scripts-request: PASS, SKIP if $mode == debug
array-constructor: PASS, SKIP if $mode == debug

# Times out often in release mode on MIPS.
compiler/regress-stacktrace-methods: PASS, PASS || TIMEOUT if $mode == release
array-splice: PASS || TIMEOUT

# Long running test.
mirror-object: PASS || TIMEOUT
string-indexof-2: PASS || TIMEOUT

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

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

# Stack manipulations in LiveEdit is not implemented for this arch.
debug-liveedit-check-stack: SKIP
debug-liveedit-stack-padding: SKIP
debug-liveedit-restart-frame: SKIP
debug-liveedit-double-call: SKIP

# Currently always deopt on minus zero
math-floor-of-div-minus-zero: SKIP

##############################################################################
# Native Client uses the ARM simulator so will behave similarly to arm
# on mjsunit tests.
# TODO(bradchen): enable more tests for NaCl V8 when it stops using
# the ARM simulator.
##############################################################################
[ $arch == nacl_ia32 || $arch == nacl_x64 ]
# There is no /tmp directory for NaCl runs
d8-os: SKIP

# Stack manipulations in LiveEdit is not implemented for this arch.
debug-liveedit-check-stack: SKIP
debug-liveedit-stack-padding: SKIP
debug-liveedit-restart-frame: SKIP
debug-liveedit-double-call: SKIP

# This test dumps core for arm.debug, so no reason to expect it to work
# for NaCl. The other three fuzz-natives tests seem to run fine.
# As noted above none of them are run in the arm.debug case.
fuzz-natives-part4: SKIP

# NaCl builds have problems with this test since Pepper_28.
# V8 Issue 2786
math-exp-precision: SKIP

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

# Poor performance for NaCl V8 causes an assertion failure for this test.
regress/regress-165637: SKIP

# Skip long running test that times out in debug mode and goes OOM on NaCl.
regress/regress-crbug-160010: SKIP

##############################################################################
[ $deopt_fuzzer == True ]

# Skip tests that are not suitable for deoptimization fuzzing.
assert-opt-and-deopt: SKIP
never-optimize: SKIP
regress/regress-2185-2: SKIP
harmony/object-observe: SKIP
readonly: SKIP
array-feedback: SKIP

# TODO(mstarzinger): Enable once escape analysis is stabilized.
compiler/escape-analysis: SKIP

# Deopt every n garbage collections collides with the deopt every n times flag.
regress/regress-2653: SKIP
