# 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/IsolateReload_PendingUnqualifiedCall_InstanceToStatic: Fail, Crash
cc/IsolateReload_PendingUnqualifiedCall_StaticToInstance: Fail, Crash
cc/IsolateReload_PendingConstructorCall_AbstractToConcrete: Fail, Crash
cc/IsolateReload_PendingConstructorCall_ConcreteToAbstract: Fail, Crash
cc/IsolateReload_PendingStaticCall_DefinedToNSM: Fail, Crash
cc/IsolateReload_PendingStaticCall_NSMToDefined: Fail, Crash

# These tests are expected to crash on all platforms.
cc/ArrayNew_Overflow_Crash: Crash, Timeout
cc/AllocGeneric_Overflow: Crash, Timeout
cc/CodeImmutability: Crash
cc/Fail0: Fail
cc/Fail1: Fail
cc/Fail2: Fail

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
cc/VerifyExplicit_Crash: Crash
# 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 || $compiler == precompiler ]
dart/byte_array_test: Skip # Incompatible flag --disable_alloc_stubs_after_gc

[ $noopt || $compiler == precompiler || $mode == product ]
dart/redirection_type_shuffling_test: SkipByDesign # Imports dart:mirrors
cc/CreateMirrorSystem: SkipByDesign # Imports dart:mirrors
cc/CoreSnapshotSize: SkipByDesign # Imports dart:mirrors
cc/StandaloneSnapshotSize: SkipByDesign # 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_app || $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/StackTraceFormat: Fail,OK  # Expects exact type name.
cc/String_ScrubName: Fail,OK  # Expects exact type name.
cc/GetFunctionNames: 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_AllFunctions_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) 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

[ $hot_reload ]
dart/spawn_shutdown_test: Skip # We can shutdown an isolate before it reloads.
dart/spawn_infinite_loop_test: Skip # We can shutdown an isolate before it reloads.
