# Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

# These tests are expected to crash on all platforms.
cc/ArrayNew_Overflow_Crash: Crash
cc/AllocGeneric_Overflow: Crash

cc/SNPrint_BadArgs: Skip

# These tests are skipped because of the workaround to open issue 8594.
cc/Debug_StackTraceDump1: Skip
cc/Debug_StackTraceDump2: Skip

[ $arch == x64 ]
cc/IsolateInterrupt: Skip

[ $system == windows && $mode == debug ]
cc/Sleep: Pass, Fail  # Flaky on buildbot. Issue 5133.

# The following section refers to the dart vm tests which live under
# runtime/tests/vm/dart.

[ $system == windows ]
cc/Dart2JSCompileAll: Skip
cc/ExternalizeConstantStrings: Skip

[ $runtime == drt ]
dart/isolate_mirror_local_test: Skip

[ $compiler == dart2js || $compiler == dartc ]
dart/isolate_mirror*: Skip # compilers not aware of dart:mirrors
dart/byte_array_test: Skip # compilers not aware of byte arrays
dart/byte_array_optimized_test: Skip # compilers not aware of byte arrays
dart/simd128float32_array_test: Skip # compilers not aware of Simd128
dart/simd128float32_test: Skip # compilers not aware of Simd128
dart/isolate_unhandled*: Skip

[ $compiler == dart2js ]
# The source positions do not match with dart2js.
dart/optimized_stacktrace_test: Fail

[ $compiler == dart2js && $minified ]
# Methods in stack traces are renamed.
dart/inline_stack_frame_test: Fail # Issue 7953.

[ $runtime == ff || $runtime == ie9 ]
dart/inline_stack_frame_test: Skip

[ $runtime == safari ]
dart/inline_stack_frame_test: Fail # Issue: 7414

[ $compiler == dart2dart ]
# Skip until we stabilize language tests.
*: Skip

[ $arch == arm ]
*: Skip

[ $arch == simarm ]
# Tests missing code generation support.
cc/Dart2JSCompileAll: Skip
cc/FrameLookup: Skip
cc/UseDartApi: Skip
# Tests needing Dart execution.
dart/*: Skip

[ $arch == simarm && $checked]
# Tests needing type check support.
cc/DartStaticResolve: Crash
cc/DartDynamicResolve: Crash
cc/FindCodeObject: Crash

[ $arch == mips ]
*: Skip

[ $arch == simmips ]
# Tests needing an assembler.
cc/Call: Skip
cc/CallLeafRuntimeStubCode: Skip
cc/CallRuntimeStubCode: Skip
cc/Dart2JSCompileAll: Skip
cc/FrameLookup: Skip
cc/IcDataAccess: Skip
cc/Jump: Skip
cc/PatchStaticCall: Skip
cc/Simple: Skip
cc/UseDartApi: Skip
# Tests needing Dart execution.
dart/*: Skip

# TODO(ajohnsen): Fix this as part of library changes.
[ $compiler == none ]
cc/CustomIsolates: Skip # Bug 6890
cc/NewNativePort: Skip # Bug 6890
cc/RunLoop_ExceptionParent: Skip # Bug 6890
