# 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/Fail0: Fail # These tests are expected to crash on all platforms.
cc/Fail1: Fail # These tests are expected to crash on all platforms.
cc/Fail2: Fail # These tests are expected to crash on all platforms.
cc/IsolateReload_PendingConstructorCall_AbstractToConcrete: Fail, Crash # Issue 32981. Fails on non-Windows, crashes on Windows (because of test.py special handline).
cc/IsolateReload_PendingConstructorCall_ConcreteToAbstract: Fail, Crash # Issue 32981. Fails on non-Windows, crashes on Windows (because of test.py special handline).
cc/IsolateReload_PendingStaticCall_DefinedToNSM: Fail # Issue 32981
cc/IsolateReload_PendingStaticCall_NSMToDefined: Fail, Crash # Issue 32981. Fails on non-Windows, crashes on Windows (because of test.py special handline)
cc/IsolateReload_PendingUnqualifiedCall_InstanceToStatic: Fail # Issue 32981
cc/IsolateReload_PendingUnqualifiedCall_StaticToInstance: Fail # Issue 32981
dart/data_uri_import_test/none: SkipByDesign
dart/emit_aot_size_info_flag_test: Pass, Slow # Spawns several subprocesses
dart/slow_path_shared_stub_test: Pass, Slow # Uses --shared-slow-path-triggers-gc flag.
dart/snapshot_version_test: Skip # This test is a Dart1 test (script snapshot)
dart/stack_overflow_shared_test: Pass, Slow # Uses --shared-slow-path-triggers-gc flag.
dart/use_bare_instructions_flag_test: Pass, Slow # Spawns several subprocesses

[ $builder_tag == asan ]
dart/transferable_throws_oom_test: SkipByDesign # This test tries to allocate too much memory on purpose. Still dartbug.com/37188

[ $builder_tag == crossword || $builder_tag == crossword_ast ]
dart/emit_aot_size_info_flag_test: SkipByDesign # The test itself cannot determine the location of gen_snapshot (only tools/test.py knows where it is).
dart/bytecode_with_ast_in_aot_test: SkipByDesign # The test doesn't know location of cross-platform gen_snapshot

[ $builder_tag == obfuscated ]
dart/causal_stacks/*: SkipByDesign # Asserts exact stacktrace output.

[ $builder_tag == optimization_counter_threshold ]
cc/*: Skip # Many tests want see unoptimized code running
dart/appjit*: SkipByDesign # Test needs to a particular opt-counter value
dart/kernel_determinism_test: SkipSlow

[ $compiler == app_jitk ]
dart/redirection_type_shuffling_test/none: RuntimeError
dart/snapshot_version_test: RuntimeError

[ $compiler == dartkp ]
dart/v8_snapshot_profile_writer_test: Pass, Slow # Can be slow due to re-invoking the precompiler.

[ $compiler != dartkp ]
dart/base_il_serialization: SkipByDesign # Serialization currently supported only when compiling with --aot.
dart/entrypoints/aot/*: SkipByDesign # These tests should only run on AOT.

[ $compiler == fasta ]
dart/data_uri_import_test/badencodeddate: CompileTimeError

[ $mode == debug ]
cc/CorelibIsolateStartup: SkipByDesign # This is a benchmark that is not informative in debug mode.
cc/IRTest_TypedDataAOT_FunctionalGetSet: Skip # run_vm_tests contains JIT/AOT but FLAG_precompiled_mode is not always correct. This causes this test to fail in debug mode, hitting an assertion. See http://dartbug.com/36521
cc/VerifyExplicit_Crash: Crash # Negative tests of VerifiedMemory should crash iff in DEBUG mode. TODO(koda): Improve support for negative tests.
cc/VerifyImplicit_Crash: Crash # Negative tests of VerifiedMemory should crash iff in DEBUG mode. TODO(koda): Improve support for negative tests.
dart/appjit_cha_deopt_test: Pass, Slow # Quite slow in debug mode, uses --optimization-counter-threshold=100
dart/spawn_shutdown_test: Pass, Slow # VM Shutdown test, It can take some time for all the isolates to shutdown in a Debug build.

[ $mode == product ]
cc/CoreSnapshotSize: SkipByDesign # Imports dart:mirrors
cc/CreateMirrorSystem: SkipByDesign # Imports dart:mirrors
cc/StandaloneSnapshotSize: SkipByDesign # Imports dart:mirrors
dart/redirection_type_shuffling_test: SkipByDesign # Imports dart:mirrors

[ $system == fuchsia ]
cc/CorelibIsolateStartup: Skip # OOM crash can bring down the OS.
cc/Read: Fail # TODO(zra): Investigate, ../../dart/runtime/bin/file_test.cc: 34: error: expected: !file->WriteByte(1)
dart/data_uri_spawn_test: Skip # TODO(zra): package:unittest is not in the image.
dart/spawn_shutdown_test: Skip # OOM crash can bring down the OS.

[ $system == macos ]
dart/transferable_throws_oom_test: SkipByDesign # Allocating too much memory to cause OOM doesn't work on mac

[ $system == windows ]
cc/CorelibCompilerStats: Skip
cc/GenKernelKernelCombined: Skip # Issue 34393.
cc/GenKernelKernelLoadKernel: Skip # Issue 34542.
cc/GenKernelKernelMaxRSS: Skip # Issue 34393.
cc/GenKernelKernelReadAllBytecode: Skip # Issue 34393.
dart/appjit_bytecode_simple_test: Skip # Issue 34393.
dart/disassemble_determinism_test: Slow # Times out on slower bots.

[ $arch == ia32 && $mode == debug && $system == windows ]
dart/transferable_test: Skip # This is performance test and somehow debug win ia32 bot's performance is unpredictable

[ $arch != simarm && $arch != simarm64 && $hot_reload && ($compiler == dartk || $compiler == dartkb) ]
dart/data_uri_import_test/base64: Crash
dart/data_uri_import_test/nocharset: Crash
dart/data_uri_import_test/nomime: Crash
dart/data_uri_import_test/percentencoded: Crash
dart/data_uri_import_test/utf16: Crash
dart/data_uri_import_test/wrongmime: Crash

[ $builder_tag == obfuscated && $compiler == dartkp ]
dart/extension_names_test: SkipByDesign # No demangling (obfuscated).
dart/extension_unnamed_names_test: SkipByDesign # No demangling (obfuscated).
dart/optimized_stacktrace_line_and_column_test: SkipByDesign # Looks for filenames in stacktrace output
dart/optimized_stacktrace_line_test: SkipByDesign # Looks for filenames in stacktrace output
dart/regress_37382_test: SkipByDesign # Matches the type arguments names

[ $compiler == dartk && $mode == product && $runtime == vm ]
cc/CorelibIsolateStartup: Timeout, Pass

[ $compiler != dartk && $compiler != dartkb ]
cc/IsolateReload_KernelIncrementalCompile: SkipByDesign
cc/IsolateReload_KernelIncrementalCompileAppAndLib: SkipByDesign
cc/IsolateReload_KernelIncrementalCompileExpression: SkipByDesign
cc/IsolateReload_KernelIncrementalCompileGenerics: SkipByDesign
cc/Mixin_PrivateSuperResolution: Skip
cc/Mixin_PrivateSuperResolutionCrossLibraryShouldFail: Skip
dart/entrypoints/jit/*: SkipByDesign # These tests should only run on JIT.

[ $compiler != dartk && $compiler != dartkb && $compiler != none ]
dart/appjit*: SkipByDesign # Test needs to run from source
dart/bytecode_and_ast_mix_test: SkipByDesign # Test needs to run from source
dart/kernel_determinism_test: SkipByDesign # Test needs to run from source
dart/snapshot_depfile_test: SkipByDesign # Test needs to run from source

[ $compiler == dartkp && ($runtime == dart_precompiled || $runtime == vm) ]
dart/redirection_type_shuffling_test: SkipByDesign # Includes dart:mirrors.
dart/spawn_shutdown_test: SkipSlow

[ $mode == debug && $system == windows ]
dart/spawn_shutdown_test: Skip # Flaky crashes unable to start thread; likely low memory on the bot.

# Enabling of dartk for sim{arm,arm64} revelaed these test failures, which
# are to be triaged.  Isolate tests are skipped on purpose due to the usage of
# batch mode.
[ $mode == debug && ($arch == simarm || $arch == simarm64) && ($compiler == dartk || $compiler == dartkb) ]
cc/StackTraceMallocHookLengthTest: Fail # Please triage.

[ $mode == product && $runtime == vm ]
cc/DartAPI_IsolateSetCheckedMode: Fail, OK # Checked mode disabled in product mode.

[ $mode == release && $runtime == vm && ($compiler == dartk || $compiler == dartkb) ]
cc/CorelibIsolateStartup: Timeout, Pass

[ $runtime == dart_precompiled && $minified ]
dart/inline_stack_frame_test: Skip
dart/optimized_stacktrace_line_test: Skip

[ $runtime != dart_precompiled && $runtime != vm ]
dart/*: SkipByDesign # VM specific tests
dart/catch_entry_state: SkipByDesign

[ $runtime == vm && $system == macos && ($compiler == dartk || $compiler == dartkb) ]
cc/IsolateReload_LibraryLookup: Fail, Crash

[ $runtime == vm && ($compiler == dartk || $compiler == dartkb) ]
cc/DartAPI_LoadLibrary: Fail, Crash # Issue 33048.
cc/DebuggerAPI_BreakpointStubPatching: Fail
cc/DebuggerAPI_GetClosureInfo: Fail
cc/DebuggerAPI_InterruptIsolate: SkipSlow
cc/DebuggerAPI_IsolateID: Fail
cc/DebuggerAPI_ScriptGetTokenInfo_Basic: Fail
cc/DebuggerAPI_ScriptGetTokenInfo_MultiLineInterpolation: Fail
cc/Debugger_PrintBreakpointsToJSONArray: Fail
cc/Debugger_Rewind_Optimized: SkipSlow
cc/Debugger_SetBreakpointInPartOfLibrary: Crash
cc/IsolateReload_NotTypedefToTypedef: Fail
cc/IsolateReload_TypedefToNotTypedef: Fail
dart/spawn_shutdown_test: SkipSlow

[ $system == linux && ($compiler == dartk || $compiler == dartkb) ]
cc/IsolateReload_LibraryLookup: Fail, Crash

[ $system == windows && ($compiler == dartk || $compiler == dartkb) ]
cc/IsolateReload_LibraryLookup: Fail, Crash

[ $checked && ($compiler == dartk || $compiler == dartkb) ]
dart/redirection_type_shuffling_test/00: Pass # Works in --checked mode but not in --strong mode.

[ ($arch == simarm || $arch == simarm64) && ($compiler == dartk || $compiler == dartkb) ]
dart/appjit*: SkipSlow # DFE too slow
dart/data_uri_spawn_test: Skip # Please triage.
dart/snapshot_version_test: RuntimeError # Please triage.

[ $hot_reload || $hot_reload_rollback ]
dart/isolates/spawn_function_test: Skip # This test explicitly enables isolate groups (off-by-default atm). It will be enabled once full IG reloading is implemented.

[ ($compiler == dartk || $compiler == dartkb) && ($hot_reload || $hot_reload_rollback) ]
dart/data_uri_spawn_test: Skip # Timeout
dart/kernel_determinism_test: SkipSlow

[ $arch == arm || $arch == arm64 || $builder_tag == crossword || $builder_tag == crossword_ast || $compiler != dartkp ]
dart/v8_snapshot_profile_writer_test: SkipByDesign # Only relevant for AOT. Doesn't work in cross-compilation (has to run on the host).

[ $arch == arm || $arch == ia32 || $arch == simarm ]
cc/GenKernelKernelCombined: SkipByDesign # No interpreter support.
cc/GenKernelKernelLoadKernel: SkipByDesign # No interpreter support.
cc/GenKernelKernelMaxRSS: SkipByDesign # No interpreter support.
cc/GenKernelKernelReadAllBytecode: SkipByDesign # No interpreter support.

# On the simluator stack traces produced by the Profiler do not match
# up with the real Dart stack trace and hence we don't get correct
# symbol names.
[ $arch == simarm || $arch == simarm64 || $arch == simarmv6 ]
cc/LargeMap: SkipByDesign
cc/Profiler_AllocationSampleTest: SkipByDesign
cc/Profiler_ArrayAllocation: SkipByDesign
cc/Profiler_BasicSourcePosition: SkipByDesign
cc/Profiler_BasicSourcePositionOptimized: SkipByDesign
cc/Profiler_BinaryOperatorSourcePosition: SkipByDesign
cc/Profiler_BinaryOperatorSourcePositionOptimized: SkipByDesign
cc/Profiler_ChainedSamples: SkipByDesign
cc/Profiler_ClosureAllocation: SkipByDesign
cc/Profiler_CodeTicks: SkipByDesign
cc/Profiler_ContextAllocation: SkipByDesign
cc/Profiler_FunctionInline: SkipByDesign
cc/Profiler_FunctionTicks: SkipByDesign
cc/Profiler_GetSourceReport: SkipByDesign
cc/Profiler_InliningIntervalBoundry: SkipByDesign
cc/Profiler_IntrinsicAllocation: SkipByDesign
cc/Profiler_SampleBufferIterateTest: SkipByDesign
cc/Profiler_SampleBufferWrapTest: SkipByDesign
cc/Profiler_SourcePosition: SkipByDesign
cc/Profiler_SourcePositionOptimized: SkipByDesign
cc/Profiler_StringAllocation: SkipByDesign
cc/Profiler_StringInterpolation: SkipByDesign
cc/Profiler_ToggleRecordAllocation: SkipByDesign
cc/Profiler_TrivialRecordAllocation: SkipByDesign
cc/Profiler_TypedArrayAllocation: SkipByDesign
cc/Service_Profile: SkipByDesign

[ $compiler == dartkb ]
dart/generic_field_invocation_test: SkipByDesign # KBC interpreters do not support --no_lazy_dispatchers

[ $builder_tag == bytecode_interpreter || $hot_reload || $hot_reload_rollback || $compiler != dartk && $compiler != dartkp && $compiler != dartkb ]
dart/entrypoints/*: SkipByDesign # These tests are for compiler optimizations and very sensitive to when functions are optimized, so they are disabled on hotreload and optcounter bots.

[ $builder_tag == crossword || $builder_tag == crossword_ast || $compiler != dartkp || $system != linux && $system != macos && $system != windows ]
dart/run_appended_aot_snapshot_test: SkipByDesign # Tests the precompiled runtime.

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

[ $compiler == dartk || $compiler == dartkb ]
cc/DartAPI_New: Fail # Issue #33041
cc/DartGeneratedArrayLiteralMessages: Crash # Issue 32190
cc/FullSnapshot1: Crash # Issue 32190
cc/IsolateReload_LibraryLookup: Fail, Crash # Issue 32190
cc/MismatchedSnapshotKinds: Fail, Crash, OK # Script snapshots not supported in Dart 2
cc/ScriptSnapshot1: Fail, Crash, OK # Script snapshots not supported in Dart 2
cc/ScriptSnapshotsUpdateSubclasses: Fail, Crash, OK # Script snapshots not supported in Dart 2
dart/redirection_type_shuffling_test/00: RuntimeError, Pass
dart/redirection_type_shuffling_test/none: RuntimeError

[ $mode == debug || $runtime != dart_precompiled || $system == android ]
dart/emit_aot_size_info_flag_test: SkipByDesign # This test is for VM AOT only and is quite slow (so we don't run it in debug mode).
dart/use_bare_instructions_flag_test: SkipByDesign # This test is for VM AOT only and is quite slow (so we don't run it in debug mode).
dart/bytecode_with_ast_in_aot_test: SkipByDesign # This test is for VM AOT only and is quite slow (so we don't run it in debug mode).

# It makes no sense to run any test that uses spawnURI under the simulator
# as that would involve running CFE (the front end) in simulator mode
# to compile the URI file specified in spawnURI code.
# These Isolate tests that use spawnURI are hence skipped on purpose.
[ $runtime == dart_precompiled || $runtime == vm && ($arch == simarm || $arch == simarm64) ]
dart/data_uri_spawn_test: SkipByDesign # Isolate.spawnUri
dart/issue32950_test: SkipByDesign # uses spawnUri.

[ $runtime != dart_precompiled || $system == android ]
dart/bare_instructions_trampolines_test: SkipByDesign # This test is for VM AOT only (android fails due to listing interfaces).

[ $hot_reload || $hot_reload_rollback ]
dart/appjit*: SkipByDesign # Cannot reload with URI pointing to app snapshot.
dart/compilation_trace_test: Pass, Slow
dart/disassemble_determinism_test: SkipSlow # Runs expensive fibonacci(32) computation in 2 subprocesses
dart/issue_31959_31960_test: SkipSlow
dart/print_flow_graph_determinism_test: SkipSlow
dart/slow_path_shared_stub_test: SkipSlow # Too slow with --shared-slow-path-triggers-gc flag and not relevant outside precompiled.
dart/spawn_infinite_loop_test: Skip # We can shutdown an isolate before it reloads.
dart/spawn_shutdown_test: Skip # We can shutdown an isolate before it reloads.
dart/stack_overflow_shared_test: SkipSlow # Too slow with --shared-slow-path-triggers-gc flag and not relevant outside precompiled.
dart/type_feedback_test: Pass, Slow

[ $mode != debug || $runtime != dart_precompiled ]
in_memory_elf_test: Skip  # Tests a debug-mode flag to dart_precompiled_runtime.
