# 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.

# No longer supported in dart 2
scenarios/package_relative_root: Fail

[ $compiler == dart2analyzer ]
browser/typed_data_message_test: StaticWarning

[ $compiler == dart2js ]
*: SkipByDesign

[ $compiler == fasta ]
browser/compute_this_script_browser_test: CompileTimeError # TODO(ahe): Support dart:html in Fasta.
browser/package_resolve_browser_hook2_test: CompileTimeError # TODO(ahe): Support dart:html in Fasta.
browser/package_resolve_browser_hook_test: CompileTimeError # TODO(ahe): Support dart:html in Fasta.
browser/package_resolve_browser_test: CompileTimeError # TODO(ahe): Support dart:html in Fasta.
isolate_stress_test: CompileTimeError # TODO(ahe): Support dart:html in Fasta.

[ $mode == product ]
issue_24243_parent_isolate_test: Skip # Requires checked mode

[ $runtime == flutter ]
isolate_import_test/01: Skip # Flutter Issue 9114
issue_21398_parent_isolate2_test/01: Skip # Flutter Issue 9114
simple_message_test/01: Skip # Flutter Issue 9114

[ $csp ]
browser/package_resolve_browser_hook_test: SkipByDesign # Test written in a way that violates CSP.
deferred_in_isolate2_test: Skip # Issue 16898. Deferred loading does not work from an isolate in CSP-mode

[ $fasta ]
compile_time_error_test/01: MissingCompileTimeError

[ $jscl ]
spawn_uri_multi_test/none: RuntimeError # Issue 13544

# The isolate tests were moved to lib_2/isolate, and there they should be
# made strong mode compliant. There's no sense in running the old versions
# here.
[ $strong ]
*: SkipByDesign

[ $compiler == dart2analyzer && $strong ]
*: Skip # Issue 28649

[ $compiler == none && $runtime == vm && $system == fuchsia ]
*: Skip # Not yet triaged.

[ $compiler == none && ($runtime == flutter || $runtime == vm) ]
scenarios/short_package/short_package_test: Fail, OK # We do not plan to support the tested behavior anyway.

[ $compiler == app_jit || $compiler == none || $compiler == precompiler ]
compile_time_error_test/01: Skip # Issue 12587
kill3_test: Pass, Fail # Bad test: expects total message order
ping_pause_test: Skip # Resolve test issues
ping_test: Skip # Resolve test issues

[ $compiler == app_jit || $mode == product || $runtime != vm ]
checked_test: Skip # Unsupported.

[ $compiler == dartk || $compiler == dartkp ]
*: Skip # This directory has only Dart1 tests (Dart2 tests are in lib_2/isolate).

[ $compiler != none || $runtime != vm ]
package_config_test: SkipByDesign # Uses Isolate.packageConfig
package_resolve_test: SkipByDesign # Uses Isolate.resolvePackageUri
package_root_test: SkipByDesign # Uses Isolate.packageRoot
scenarios/*: SkipByDesign # Use automatic package resolution, spawnFunction and .dart URIs.
spawn_uri_fail_test: SkipByDesign # Uses dart:io.

[ $compiler == precompiler || $runtime == flutter ]
count_test: SkipByDesign # Imports dart:mirrors
cross_isolate_message_test: SkipByDesign
illegal_msg_function_test: SkipByDesign
illegal_msg_mirror_test: SkipByDesign
isolate_complex_messages_test: SkipByDesign
mandel_isolate_test: SkipByDesign
message2_test: SkipByDesign
message_test: SkipByDesign
mint_maker_test: SkipByDesign
nested_spawn2_test: SkipByDesign
nested_spawn_test: SkipByDesign
raw_port_test: SkipByDesign
request_reply_test: SkipByDesign
spawn_function_custom_class_test: SkipByDesign
spawn_function_test: SkipByDesign
stacktrace_message_test: SkipByDesign
static_function_test: SkipByDesign
unresolved_ports_test: SkipByDesign

[ $runtime == dart_precompiled || $runtime == flutter ]
count_test: Skip # Isolate.spawnUri
cross_isolate_message_test: Skip # Isolate.spawnUri
deferred_in_isolate2_test: Skip # Isolate.spawnUri
deferred_in_isolate_test: Skip # Isolate.spawnUri
error_at_spawnuri_test: Skip # Isolate.spawnUri
error_exit_at_spawnuri_test: Skip # Isolate.spawnUri
exit_at_spawnuri_test: Skip # Isolate.spawnUri
illegal_msg_function_test: Skip # Isolate.spawnUri
illegal_msg_mirror_test: Skip # Isolate.spawnUri
isolate_complex_messages_test: Skip # Isolate.spawnUri
issue_21398_parent_isolate1_test: Skip # Isolate.spawnUri
issue_21398_parent_isolate_test: Skip # Isolate.spawnUri
issue_24243_parent_isolate_test: Skip # Isolate.spawnUri
mandel_isolate_test: Skip # Isolate.spawnUri
message2_test: Skip # Isolate.spawnUri
message_test: Skip # Isolate.spawnUri
mint_maker_test: Skip # Isolate.spawnUri
nested_spawn2_test: Skip # Isolate.spawnUri
nested_spawn_test: Skip # Isolate.spawnUri
raw_port_test: Skip # Isolate.spawnUri
request_reply_test: Skip # Isolate.spawnUri
spawn_function_custom_class_test: Skip # Isolate.spawnUri
spawn_function_test: Skip # Isolate.spawnUri
spawn_uri_exported_main_test: Skip # Isolate.spawnUri
spawn_uri_missing_from_isolate_test: Skip # Isolate.spawnUri
spawn_uri_missing_test: Skip # Isolate.spawnUri
spawn_uri_multi_test: Skip # Isolate.spawnUri
spawn_uri_nested_vm_test: Skip # Isolate.spawnUri
spawn_uri_test: Skip # Isolate.spawnUri
spawn_uri_vm_test: Skip # Isolate.spawnUri
stacktrace_message_test: Skip # Isolate.spawnUri
static_function_test: Skip # Isolate.spawnUri
unresolved_ports_test: Skip # Isolate.spawnUri

[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
browser/*: SkipByDesign # Browser specific tests
isolate_stress_test: Skip # Issue 12588: Uses dart:html. This should be able to pass when we have wrapper-less tests.
stacktrace_message_test: RuntimeError # Fails to send stacktrace object.

[ $hot_reload || $hot_reload_rollback ]
deferred_in_isolate2_test: Crash # Requires deferred libraries
deferred_in_isolate_test: Crash # Requires deferred libraries
function_send_test: Pass, Fail # Closure identity
issue_21398_parent_isolate2_test: Crash # Requires deferred libraries
message3_test/fun: Pass, Fail # Closure identity
spawn_uri_nested_vm_test: Pass, Crash # Issue 28192
