# 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
unresolved_ports_negative_test: Skip # Issue 6839
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
spawn_uri_test: SkipByDesign # Test uses a ".js" URI.
spawn_uri_negative_test: SkipByDesign # Test uses a ".js" URI.
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_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: Fail # 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: Fail # Issue 1882, tries to access class TestingOnly declared in isolate_patch.dart
illegal_msg_test: Fail # Issue 6750
stream_mangling_test: Fail # Issue 9245

global_error_handler_test: Pass, Fail # Issue 9012, Issue 9024
global_error_handler_stream_test: Pass, Fail # Issue 9012, Issue 9024
global_error_handler2_test: Pass, Fail # Issue 9012, Issue 9024
global_error_handler_stream2_test: Pass, Fail # 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
spawn_uri_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 || $runtime == dartium) ]
isolate_stress_test: Skip # Issue 12537
