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

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

[ $runtime == vm || $runtime == flutter || $runtime == dart_precompiled ]
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.

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

[ ($runtime == vm || $runtime == dart_precompiled) && $arch == mips && $mode == debug ]
mandel_isolate_test: Skip # Uses 600 MB Ram on our 1 GB test device.

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

message3_test/int32x4: Crash, Timeout # Issue 21818

[ $compiler == dart2js && $runtime == safarimobilesim ]
compile_time_error_test/none: Pass, Slow

[ $compiler == dart2js && $jscl ]
browser/*: SkipByDesign  # Browser specific tests

[ $compiler == dart2js && $runtime == jsshell ]
pause_test: Fail, OK  # non-zero timer not supported.
timer_isolate_test: Fail, OK # Needs Timer to run.

[ $compiler == dart2js && $runtime == safari ]
cross_isolate_message_test: Skip # Issue 12627
message_test: Skip # Issue 12627

[ $compiler == dart2js ]
spawn_uri_vm_test: SkipByDesign # Test uses a ".dart" URI.
spawn_uri_nested_vm_test: SkipByDesign # Test uses a ".dart" URI.
spawn_uri_exported_main_test: SkipByDesign # Test uses a ".dart" URI.
issue_21398_parent_isolate_test: SkipByDesign # Test uses a ".dart" URI.
issue_21398_parent_isolate1_test: SkipByDesign # Test uses a ".dart" URI.
issue_21398_parent_isolate2_test: SkipByDesign # Test uses a ".dart" URI.
issue_24243_parent_isolate_test: SkipByDesign # Test uses a ".dart" URI.
function_send1_test: SkipByDesign   # Test uses a ".dart" URI.
error_exit_at_spawnuri_test: SkipByDesign  # Test uses a ".dart" URI.
error_at_spawnuri_test: SkipByDesign  # Test uses a ".dart" URI.
exit_at_spawnuri_test: SkipByDesign  # Test uses a ".dart" URI.
message3_test/constList: RuntimeError # Issue 21817
message3_test/constList_identical: RuntimeError # Issue 21817
message3_test/constMap: RuntimeError  # Issue 21817
message3_test/constInstance: RuntimeError # Issue 21817
browser/issue_12474_test: CompileTimeError # Issue 22529
enum_const_test/02: RuntimeError # Issue 21817

[ $compiler == dart2js && $runtime != d8 ]
error_exit_at_spawn_test: Skip # Issue 23876
error_at_spawn_test: Skip # Issue 23876
exit_at_spawn_test: Skip # Issue 23876

[ $compiler == dart2js && $jscl ]
spawn_uri_test: SkipByDesign # Loading another file is not supported in JS shell

[ ($compiler == dart2js && $fast_startup) ]
browser/compute_this_script_browser_test: Fail # mirrors not supported
browser/typed_data_message_test: Fail # mirrors not supported
count_test: Fail # mirrors not supported
cross_isolate_message_test: Fail # mirrors not supported
illegal_msg_function_test: Fail # mirrors not supported
illegal_msg_mirror_test: Fail # mirrors not supported
isolate_complex_messages_test: Fail # mirrors not supported
mandel_isolate_test: Fail # mirrors not supported
message2_test: Fail # mirrors not supported
message_test: Fail # mirrors not supported
mint_maker_test: Fail # mirrors not supported
nested_spawn2_test: Fail # mirrors not supported
nested_spawn_test: Fail # mirrors not supported
raw_port_test: Fail # mirrors not supported
remote_unittest_helper: Fail # mirrors not supported
request_reply_test: Fail # mirrors not supported
spawn_function_custom_class_test: Fail # mirrors not supported
spawn_function_test: Fail # mirrors not supported
stacktrace_message_test: Fail # mirrors not supported
static_function_test: Fail # mirrors not supported
unresolved_ports_test: Fail # mirrors not supported

[ $compiler == dart2js && $fast_startup && $browser == false ]
isolate_current_test: Fail  # please triage

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

[ $compiler == dart2js && $runtime == chromeOnAndroid ]
isolate_stress_test: Pass, Slow # TODO(kasperl): Please triage.

mandel_isolate_test: Pass, Timeout # TODO(kasperl): Please triage.

[ $compiler == dart2js && ( $runtime == ff || $runtime == safari || $runtime == drt || $runtime == chrome || $runtime == chromeOnAndroid) ]
isolate_stress_test: Pass, Slow # Issue 10697

[ $compiler == dart2js && $runtime == chromeOnAndroid ]
unresolved_ports_test: Pass, Timeout # Issue 15610

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

[ ($compiler == none) && $runtime == dartium && $arch == x64 ]
spawn_uri_multi_test/01: Skip # Times out. Issue 24795

[ ($compiler == none) && ( $runtime == dartium || $runtime == drt) ]
spawn_uri_nested_vm_test: Skip # Issue 14479: This test is timing out. Issue 14463
typed_message_test: Skip # Issue 13921, 14400
isolate_stress_test: Skip # Issue 13921 Dom isolates don't support spawnFunction
object_leak_test: Skip # Issue 13921 Dom isolates don't support spawnFunction
send_private_test: Skip # Issue 13921 Dom isolates don't support spawnFunction
spawn_uri_missing_from_isolate_test: Skip # Issue 17649
spawn_uri_missing_test: SkipSlow # Times out.
kill3_test: Fail, OK  # 13921 Dom isolates don't support spawnFunction
timer_isolate_test: Fail, Pass # Issue 15487. Issue 13921: Dom isolates don't support spawnFunction
deferred_in_isolate2_test: Skip  # Issue 16209, 13921 Dom isolates don't support spawnFunction
bool_from_environment_default_value_test: Skip
int_from_environment_default_value_test: Skip
string_from_environment_default_value_test: Skip
error_exit_at_spawn_test: SkipByDesign  # 13921 Dom isolates don't support spawnFunction
error_at_spawn_test: SkipByDesign  # 13921 Dom isolates don't support spawnFunction
exit_at_spawn_test: SkipByDesign  # 13921 Dom isolates don't support spawnFunction
error_exit_at_spawnuri_test: SkipByDesign  # 13921 Dom isolates don't support spawnFunction
error_at_spawnuri_test: SkipByDesign  # 13921 Dom isolates don't support spawnFunction
exit_at_spawnuri_test: SkipByDesign  # 13921 Dom isolates don't support spawnFunction
issue_21398_parent_isolate2_test/01: SkipByDesign  # Uses spawnFunction
compile_time_error_test/none: RuntimeError, OK  # Uses Isolate.spawn.
function_send_test: RuntimeError, OK  # Uses Isolate.spawn.
handle_error2_test: RuntimeError, OK  # Uses Isolate.spawn.
handle_error3_test: RuntimeError, OK  # Uses Isolate.spawn.
handle_error_test: RuntimeError, OK  # Uses Isolate.spawn.
isolate_current_test: RuntimeError, OK  # Uses Isolate.spawn.
isolate_import_test/none: RuntimeError, OK  # Uses Isolate.spawn.
issue_21398_parent_isolate1_test: RuntimeError, OK  # Uses Isolate.spawn.
issue_21398_parent_isolate_test: RuntimeError, OK  # Uses Isolate.spawn.
kill2_test: RuntimeError, OK  # Uses Isolate.spawn.
kill_self_test: RuntimeError, OK  # Uses Isolate.spawn.
kill_test: RuntimeError, OK  # Uses Isolate.spawn.
message3_test/byteBuffer: RuntimeError, OK  # Uses Isolate.spawn.
message3_test/constInstance: RuntimeError, OK  # Uses Isolate.spawn.
message3_test/constList: RuntimeError, OK  # Uses Isolate.spawn.
message3_test/constList_identical: RuntimeError, OK  # Uses Isolate.spawn.
message3_test/constMap: RuntimeError, OK  # Uses Isolate.spawn.
message3_test/fun: RuntimeError, OK  # Uses Isolate.spawn.
message3_test/none: RuntimeError, OK  # Uses Isolate.spawn.
message_enum_test: RuntimeError, OK  # Uses Isolate.spawn.
ondone_test: RuntimeError, OK  # Uses Isolate.spawn.
pause_test: RuntimeError, OK  # Uses Isolate.spawn.
simple_message_test/none: RuntimeError, OK  # Uses Isolate.spawn.
start_paused_test: RuntimeError, OK  # Uses Isolate.spawn.
message3_test/int32x4: RuntimeError, OK  # Uses Isolate.spawn.
browser/package_resolve_browser_hook*: Skip # Tests that use defaultPackagesBase (not supported in Dartium).

[ ($compiler == none) && ( $runtime == dartium || $runtime == drt) ]
browser/package_resolve_browser_test: Fail # Issue 28382

[ ($compiler == none) && ( $runtime == dartium || $runtime == drt) && ($system == windows) ]
browser/package_resolve_browser_test: Skip # Temporarily disabled working on CL to fix under Windows.

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

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

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

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

[ $compiler == precompiler || $mode == product || $runtime == flutter ]
# Imports dart:mirrors
count_test: SkipByDesign
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
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

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

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

[ ($compiler == dartk || $compiler == dartkp) ]
compile_time_error_test/01: MissingCompileTimeError
message3_test/int32x4: Crash
message_test: RuntimeError
ping_pause_test: Timeout
spawn_function_custom_class_test: Timeout
spawn_uri_exported_main_test: RuntimeError
spawn_uri_nested_vm_test: Pass, Timeout

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

# Deferred loading kernel issue 28335.
[ ($compiler == dartk || $compiler == dartkp) ]
deferred_in_isolate2_test: Skip # Deferred loading kernel issue 28335.
deferred_in_isolate_test: Skip # Deferred loading kernel issue 28335.
issue_21398_parent_isolate2_test/none: CompileTimeError # Deferred loading kernel issue 28335.
