# Copyright (c) 2017, 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.
# Sections in this file should contain "$compiler == dartk" or
# "$compiler == dartkp".

isolate/ping_pause_test: Skip # Issue https://dartbug.com/37787

[ $compiler == fasta ]
html/*: Skip # TODO(ahe): Make dart:html available.
js/*: Skip # TODO(ahe): Make dart:js available.

[ $arch == ia32 && $mode == debug ]
*: Pass, Slow # The CFE is not run from AppJit snapshot, JIT warmup in debug mode very slow

[ $arch == x64 && $compiler == dartk && $mode == debug && $runtime == vm ]
mirrors/invocation_fuzz_test: Skip # Because it times out, issue 29439.

[ $arch == x64 && ($hot_reload || $hot_reload_rollback) ]
convert/base64_test/01: Crash # http://dartbug.com/35948

[ $builder_tag == optimization_counter_threshold && $compiler == dartk ]
mirrors/invocation_fuzz_test/emptyarray: Crash # Flaky on vm-kernel-optcounter-threshold-linux-release-x64, bug #31838
mirrors/invocation_fuzz_test/false: Crash # Flaky on vm-kernel-optcounter-threshold-linux-release-x64, bug #31838
mirrors/invocation_fuzz_test/none: Crash # Flaky on vm-kernel-optcounter-threshold-linux-release-x64, bug #31838
mirrors/invocation_fuzz_test/smi: Crash # Crashes on opt counter builder (#31838)
mirrors/invocation_fuzz_test/string: Crash # Flaky on vm-kernel-optcounter-threshold-linux-release-x64, bug #31838

[ $compiler == app_jitk && ($mode == product || $mode == release) ]
isolate/spawn_uri_nested_vm_test: Skip # Timeout, Issue 33385

[ $compiler == dartk && $mode == debug && $runtime == vm ]
mirrors/other_declarations_location_test: Crash # Issue 33325 (assertion error, TypeParameter not having position).

[ $compiler == dartk && $mode == debug && $hot_reload_rollback ]
isolate/message3_test/constList_identical: Skip # Timeout

# ===== dartk + vm status lines =====
[ $compiler == dartk && $runtime == vm ]
html/*: SkipByDesign # dart:html not supported on VM.
isolate/deferred_in_isolate2_test: Skip # Times out. Deferred loading kernel issue 28335.
isolate/deferred_in_isolate_test: Skip # Times out. Deferred loading kernel issue 28335.
isolate/issue_21398_parent_isolate2_test/01: Skip # Times out. Deferred loading kernel issue 28335.
isolate/static_function_test: Skip # Times out. Issue 31855. CompileTimeError. Issue 31402
mirrors/invocation_fuzz_test/smi: Crash
mirrors/metadata_allowed_values_test/16: Skip # Flaky, crashes.

[ $compiler == dartk && $hot_reload_rollback ]
isolate/pause_test: Skip # Timeout

[ $compiler == dartk && ($hot_reload || $hot_reload_rollback) ]
isolate/message4_test: Crash # Timeout and sporadic crash (issue 33824)
mirrors/dynamic_load_test: Skip # Reload has an effect similar to deleting the dynamically loaded library
mirrors/immutable_collections_test: Pass, Slow
mirrors/mirrors_reader_test: Pass, Slow

[ $compiler == dartkp && $mode == debug && $runtime == dart_precompiled ]
isolate/static_function_test: Skip # Flaky (https://github.com/dart-lang/sdk/issues/30063).

# ===== dartkp + dart_precompiled status lines =====
[ $compiler == dartkp && $runtime == dart_precompiled ]
html/*: SkipByDesign # dart:html not supported on VM.
isolate/deferred_in_isolate2_test: Skip # Times out. Deferred loading kernel issue 28335.
isolate/deferred_in_isolate_test: Skip # Times out. Deferred loading kernel issue 28335.
isolate/issue_21398_parent_isolate2_test/01: Skip # Times out. Deferred loading kernel issue 28335.
mirrors/*: SkipByDesign # Mirrors are not supported in AOT mode.

[ $compiler == app_jitk || $compiler == dartk || $compiler == dartkp ]
html/*: SkipByDesign
js/*: SkipByDesign

[ $hot_reload || $hot_reload_rollback ]
isolate/issue_6610_test: Skip # Sources are looked up on every reload request.
