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

cc/New: Crash # Issue 6958.
cc/TypeVariableReflection: Crash # Issue 6958.
cc/LibraryGetClassNames: Fail # Issue 6958.
cc/ImportLibrary5: Fail # Issue 6958.

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

cc/SNPrint_BadArgs: 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

[ $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/isolate_unhandled*: Skip

[ $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

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

[ $arch == arm ]
dart/*: Skip

[ $arch == simarm ]
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
