# 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 ]
browser/*: SkipByDesign  # Browser specific tests
isolate_stress_test: Fail # Issue 12588: This should be able to pass when we have wrapper-less tests.

[ $compiler == none ]
serialization_test: SkipByDesign # Tests dart2js-specific serialization code
isolate2_negative_test: Skip  # Issue 12587.
isolate3_negative_test: Skip  # Issue 12587.

[ $analyzer ]
isolate2_negative_test: Fail
isolate_import_negative_test: Fail
unresolved_ports_negative_test: Fail
mandel_isolate_test: Fail # issue 14452

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

[ $compiler == dart2js && $runtime == drt ]
unresolved_ports_negative_test: Pass, Crash # Issue 10613
isolate_stress_test: Pass, Crash # Issue 14438

[ $compiler == dart2js ]
serialization_test: RuntimeError # Issue 1882, tries to access class TestingOnly declared in isolate_patch.dart

global_error_handler_test: Pass, RuntimeError # Issue 9012, Issue 9024
global_error_handler2_test: Pass, RuntimeError # Issue 9012, Issue 9024

[ $compiler == dart2js && $runtime == ie9 ]
browser/typed_data_message_test: Fail # Issue 12624

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

[ $compiler == dart2js && $runtime == opera ]
isolate2_negative_test: Skip # Issue 12625
unresolved_ports_negative_test: Skip # Issue 12626

[ $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_vm_negative_test: SkipByDesign # Test uses a ".dart" URI.

[ $compiler == dart2js && $browser ]
isolate2_negative_test: Fail, Pass # Issue 7769

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

[ $compiler == dart2js && $runtime == ie9 ]
spawn_uri_test: Fail # Issue 12630

[ $compiler == dart2js && $runtime == none ]
spawn_function_negative_test: Fail # Issue 12628
unresolved_ports_negative_test: Fail # Issue 12628
isolate_negative_test: Fail # Issue 12628
serialization_test: Pass # Issue 12628
isolate_import_negative_test: Fail # Issue 12628
isolate2_negative_test: Fail # Issue 12628
illegal_msg_test: Pass # Issue 12628

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

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

[ $compiler == dart2dart ]
*: Skip # Issue 12629

[ $compiler == dart2js && $runtime == ff && ($system == windows || $system == linux) ]
mandel_isolate_test: Pass, Fail, Timeout # Issue 7952

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

[ $compiler == none && $runtime == drt ]
isolate_stress_test: Skip # Issue 14463
spawn_uri_nested_vm_test: Skip # Issue 14463

[ $csp ]
spawn_uri_multi_test/none: Fail # http://dartbug.com/13454
spawn_uri_test: Fail # http://dartbug.com/13454

[ $jscl || $runtime == ie9 ]
spawn_uri_multi_test/none: RuntimeError # http://dartbug.com/13544

[ $compiler == none && $runtime == dartium ]
global_error_handler2_test: Fail # Issue 13719: Please triage this failure.
spawn_uri_nested_vm_test: Skip # Issue 14479: This test is timing out.

[ $compiler == none && ($runtime == drt || $runtime == dartium) ]
# Issue 13921: spawnFunction is not allowed on Dartium's DOM thread.
browser/compute_this_script_browser_test: Fail
browser/typed_data_message_test: Skip # 13961
count_test: Fail
cross_isolate_message_test: Fail
global_error_handler2_test: Fail
global_error_handler_test: Fail
illegal_msg_test: Fail
isolate_complex_messages_test: Fail
isolate_stress_test: Fail
mandel_isolate_test: Fail
message2_test: Fail
message_test: Fail
mint_maker_test: Fail
nested_spawn2_test: Fail
nested_spawn_test: Fail
request_reply_test: Fail
spawn_function_custom_class_test: Fail
spawn_function_test: Fail
stacktrace_message_test: Fail
unresolved_ports_test: Fail

[ $compiler == dartanalyzer || $compiler == dart2analyzer ]
browser/typed_data_message_test: StaticWarning
illegal_msg_test: StaticWarning
isolate3_negative_test: CompileTimeError
isolate/illegal_msg_test: StaticWarning
isolate_import_negative_test: CompileTimeError
isolate/mint_maker_test: StaticWarning
isolate/unresolved_ports_test: StaticWarning
mandel_isolate_stream_test: StaticWarning
mandel_isolate_test: StaticWarning
mint_maker_test: StaticWarning
serialization_test: StaticWarning
unresolved_ports_test: StaticWarning

