# 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, Timeout
cc/AllocGeneric_Overflow: Crash, Timeout
cc/CodeImmutability: Crash

cc/SNPrint_BadArgs: Skip

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

dart/data_uri_import_test/none: SkipByDesign

[ $mode == debug ]
# This is a benchmark that is not informative in debug mode.
cc/CorelibIsolateStartup: Skip
# Negative tests of VerifiedMemory should crash iff in DEBUG mode.
# TODO(koda): Improve support for negative tests.
cc/VerifyImplicit_Crash: Crash, Timeout  # Timeout: Issue #24596
cc/VerifyExplicit_Crash: Crash, Timeout  # Timeout: Issue #24596
# It can take some time for all the isolates to shutdown in a Debug build.
dart/spawn_shutdown_test: Pass, Slow  # VM Shutdown test

# 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/Service_Profile: Skip
cc/Dart2JSCompilerStats: Skip
cc/CorelibCompilerStats: Skip

[ $arch == simarm || $arch == simarmv6 || $arch == simarmv5te || $arch == simarm64 || $arch == simmips ]
cc/Service_Profile: Skip

[ $compiler == dart2js ]
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

# 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, Pass # Issue 7953

[ $compiler == dart2js && $cps_ir && $checked ]
dart/inline_stack_frame_test: Crash # Unable to compile ArgumentError.message

[ $compiler == dart2js || $compiler == dart2analyzer ]
# Data uri's not supported by dart2js or the analyzer.
dart/data_uri*test: Skip

[ $arch == mips ]
cc/Int8ListLengthMaxElements: Skip # Issue 23536, uses 1 GB memory.

[ $arch == mips && $mode == debug ]
cc/FindCodeObject: SkipSlow # Takes more than 8 minutes. Issue 17440

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

[ $runtime != vm ]
dart/snapshot_version_test: SkipByDesign  # Spawns processes
dart/spawn_infinite_loop_test: Skip  # VM shutdown test
dart/spawn_shutdown_test: Skip  # VM Shutdown test

[ ($runtime == vm || $runtime == dart_precompiled) && $mode == debug && $builder_tag == asan ]
cc/Dart2JSCompileAll: SkipSlow  # Timeout.

[ $builder_tag == asan ]
cc/CodeImmutability: Fail,OK # Address Sanitizer turns a crash into a failure.

[ $noopt ]
dart/byte_array_test: Crash # Incompatible flag --disable_alloc_stubs_after_gc

[ $noopt || $compiler == precompiler || $mode == product ]
dart/redirection_type_shuffling_test: CompileTimeError # Imports dart:mirrors

[ $noopt || $runtime == dart_precompiled ]
# Stacktraces in precompilation omit inlined frames.
dart/inline_stack_frame_test: Pass, RuntimeError
dart/optimized_stacktrace_test: Pass, RuntimeError

[ $runtime == dart_product || $runtime == dart_precompiled ]
dart/data_uri_spawn_test: SkipByDesign # Isolate.spawnUri

[ $runtime == vm && $mode == product ]
cc/IsolateSetCheckedMode: Fail,OK  # Expects exact type name.
cc/LibraryGetClassNames: Fail,OK  # Expects exact type name.
cc/StackTraceFormat: Fail,OK  # Expects exact type name.
