# 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_negative_test: Fail
spawn_function_negative_test: Fail
spawn_uri_vm_negative_test: Fail
unresolved_ports_negative_test: Fail

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

[ $compiler == dart2js && $browser ]
illegal_msg_stream_test: Fail, Pass # Issue 6750

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

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

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

[ $compiler == dart2js && ($runtime == drt || $runtime == ff || $runtime == chrome || $runtime == chromeOnAndroid || $runtime == ie9 || $runtime == ie10 || $runtime == safari) ]
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
stream_mangling_test: Pass # 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_stream_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
mandel_isolate_stream_test: Pass, Fail, Timeout # Issue 7952

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

[ $compiler == none && $runtime == drt ]
isolate_stress_test: Skip # Issue 12537
spawn_uri_multi_test/01: Fail # Issue 13615
nested_spawn_stream2_test: Fail # Issue 13433
cross_isolate_message_stream_test: Fail # Issue 13433

[ $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.
