# 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 || $arch == simdbc  || $arch == simdbc64 ]
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/*: Skip # checked mode + cpsir not supported yet. Issue 25761

[ $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
dart/optimized_stacktrace_test: SkipByDesign # Requires line numbers

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

[ $arch == simdbc || $arch == simdbc64 ]
# TODO(vegorov) Profiler is completely disabled in SIMDBC builds.
cc/Profiler_AllocationSampleTest: Skip
cc/Profiler_ArrayAllocation: Skip
cc/Profiler_BasicSourcePosition: Skip
cc/Profiler_BasicSourcePositionOptimized: Skip
cc/Profiler_BinaryOperatorSourcePosition: Skip
cc/Profiler_BinaryOperatorSourcePositionOptimized: Skip
cc/Profiler_ChainedSamples: Skip
cc/Profiler_ClosureAllocation: Skip
cc/Profiler_CodeTicks: Skip
cc/Profiler_ContextAllocation: Skip
cc/Profiler_FunctionInline: Skip
cc/Profiler_FunctionTicks: Skip
cc/Profiler_InliningIntervalBoundry: Skip
cc/Profiler_IntrinsicAllocation: Skip
cc/Profiler_SampleBufferIterateTest: Skip
cc/Profiler_SampleBufferWrapTest: Skip
cc/Profiler_SourcePosition: Skip
cc/Profiler_SourcePositionOptimized: Skip
cc/Profiler_StringAllocation: Skip
cc/Profiler_StringInterpolation: Skip
cc/Profiler_ToggleRecordAllocation: Skip
cc/Profiler_TrivialRecordAllocation: Skip
cc/Profiler_TypedArrayAllocation: Skip
cc/Profiler_GetSourceReport: Skip

# TODO(vegorov) These tests are crashing because ICData objects can't be found
cc/SourceReport_CallSites_PolymorphicCall: Skip
cc/SourceReport_CallSites_SimpleCall: Skip
cc/SourceReport_Coverage_AllFunctions: Skip
cc/SourceReport_Coverage_ForceCompile: Skip
cc/SourceReport_Coverage_NestedFunctions: Skip
cc/SourceReport_Coverage_SimpleCall: Skip
cc/SourceReport_Coverage_UnusedClass_NoForceCompile: Skip
cc/SourceReport_Coverage_UnusedClass_ForceCompile: Skip
cc/SourceReport_Coverage_UnusedClass_ForceCompileError: Skip
cc/SourceReport_MultipleReports: Skip
cc/Coverage_Empty: Skip
cc/Coverage_FilterFunction: Skip
cc/Coverage_MainWithClass: Skip

# TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp
# is switched on by default because they attempt to call regexp functions
# directly instead of going through JSSyntaxRegExp_ExecuteMatch.
cc/RegExp_ExternalOneByteString: Skip
cc/RegExp_ExternalTwoByteString: Skip
cc/RegExp_OneByteString: Skip
cc/RegExp_TwoByteString: Skip

# TODO(vegorov) Optimizing compiler is disabled for the SIMDBC
cc/CompileFunctionOnHelperThread: Skip

# TODO(vegorov) Field guards are disabled for SIMDBC
cc/GuardFieldConstructor2Test: Skip
cc/GuardFieldConstructorTest: Skip
cc/GuardFieldFinalListTest: Skip
cc/GuardFieldFinalVariableLengthListTest: Skip
cc/GuardFieldSimpleTest: Skip

# TODO(vegorov) Not all bytecodes have appropriate debug breaks.
cc/Debug_BreakpointStubPatching: Skip
cc/Debug_ExprClosureBreakpoint: Skip
cc/Debug_StackTraceDump1: Skip
cc/Debug_StepInto: Skip

# TODO(vegorov) These parser tests rely on debugger.
cc/Parser_AllocateVariables_CapturedVar: Skip
cc/Parser_AllocateVariables_MiddleChain: Skip

# This test is meaningless for DBC as allocation stubs are not used.
cc/RegenerateAllocStubs: Skip

# TODO(vegorov) Enable when DBC supports optimizing compiler.
cc/Debug_InspectStack_Optimized: Skip
cc/Debug_InspectStackWithClosure_Optimized: Skip

