# 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_test: Pass
mandel_isolate_test: StaticWarning  # test issue 14782; unittestConfiguration.timeout has only getter in Configuration

[ $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_function_test: Pass # Issue 12628
illegal_msg_mirror_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_function_test: Fail
illegal_msg_mirror_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
isolate3_negative_test: CompileTimeError
isolate_import_negative_test: CompileTimeError
mint_maker_test: StaticWarning
serialization_test: StaticWarning
isolate/unresolved_ports_test: StaticWarning
mandel_isolate_stream_test: StaticWarning

