# 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/CodeImmutability: 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

# Flaky on buildbot. Issue 5133 and 10409.
cc/Sleep: Pass, Fail

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

[ $mode == debug ]
# This is a benchmark that is not informative in debug mode.
cc/CorelibIsolateStartup: Skip

# The following section refers to the dart vm tests which live under
# runtime/tests/vm/dart.
[ $system == windows ]
cc/Dart2JSCompileAll: Skip
cc/ExternalizeConstantStrings: Skip
cc/ThreadInterrupterHigh: Skip
cc/ThreadInterrupterMedium: Skip
cc/ThreadInterrupterLow: Skip
cc/Service_Profile: Skip

[ $system == linux ]
cc/ThreadInterrupterHigh: Skip
cc/ThreadInterrupterMedium: Skip
cc/ThreadInterrupterLow: Skip

[ $system == macos ]
cc/ThreadInterrupterHigh: Skip
cc/ThreadInterrupterMedium: Skip
cc/ThreadInterrupterLow: Skip

[ $arch == simarm || $arch == simmips ]
cc/ThreadInterrupterHigh: Skip
cc/ThreadInterrupterMedium: Skip
cc/ThreadInterrupterLow: Skip
cc/Service_Profile: Skip

[ $arch == simmips || $arch == mips ]
cc/Coverage_MainWithClass: Skip # Dart bug 16250
cc/Service_ClassesCoverage: Skip # Dart bug 16250

[ $compiler == dart2js ]
dart/mirrored_compilation_error_test: Skip # VM-specific flag
dart/redirection_type_shuffling_test: Skip # Depends on lazy enforcement of type bounds
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

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

[ $compiler == dart2js ]
# Methods can be missing in dart2js stack traces due to inlining.  Also when
# minifying they can be renamed, which is issue 7953.
dart/inline_stack_frame_test: RuntimeError

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

[ $arch == mips ]
cc/StaticNonNullSumCallCodegen: Crash, Pass # dartbug.com/17440

[ $arch == mips && $mode == debug ]
cc/JSON_JSONStream_Options: Crash # Issue 19328
cc/FindCodeObject: Skip # Takes more than 8 minutes. dartbug.com/17440.

[ $compiler == none && ($runtime == drt || $runtime == dartium || $runtime == ContentShellOnAndroid) ]
dart/mirrored_compilation_error_test: Skip # Can't pass needed VM flag

[ $compiler == dartanalyzer || $compiler == dart2analyzer ]
dart/optimized_stacktrace_test: StaticWarning

dart/mirrored_compilation_error_test: CompileTimeError, OK # This test intentionally includes invalid method bodies.

[ $compiler == none && $runtime == ContentShellOnAndroid ]
dart/byte_array_test: RuntimeError # Issue 17612
