# Copyright 2015 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.

# --------------------------------------------------------------------
# If you add a test case to this file, please try to provide
# an explanation of why the test fails; this may ease future
# debugging.
# --------------------------------------------------------------------

[
[ALWAYS, {
  # TODO(bbudge): Drop when test is fixed upstream.
  'benchmarks/aobench': SKIP,
  'benchmarks/averageFloat64x2': SKIP,
  'benchmarks/averageFloat64x2Load': SKIP,
  'benchmarks/mandelbrot': SKIP,
  'benchmarks/sinx4': SKIP,

  # TODO(bbudge): Drop this when simd implementation is faster.
  'benchmarks/memcpy': SKIP,

  # Slow tests.
  'benchmarks/kernel-template': [PASS, SLOW],
  'benchmarks/memset': [PASS, SLOW],
}],

######################################################################
['byteorder == big', {
  # shell_test_runner requires little-endian, skip it on big-endian.
  'shell_test_runner': [SKIP],
}],  # 'byteorder == big'

]
