# 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 ]
isolate2_negative_test: Skip  # Need to resolve correct behaviour.
isolate3_negative_test: Skip  # test depends on isolate error exiting process.
serialization_test: Skip  # tests dart2js-specific serialization code
spawn_uri_test: Fail, OK # test uses a ".js" suffix that is bogus on vm.
compute_this_script_browser_test: Skip # browser specific test
compute_this_script_browser_stream_test: Skip # browser specific test
ports_compilation_browser_test: Skip # browser specific test
unresolved_ports_negative_test: Skip # See Issue 6839
global_error_handler_test: Fail, Pass # See Issue 9013.
global_error_handler_stream_test: Fail # See Issue 9013.
isolate_stress_test: Fail # TODO(ahe): This should be able to pass when we have wrapper-less tests.


[ $runtime == vm && $system == windows ]
timer_test: Pass, Fail # See Issue 5133

[ $compiler == none && $runtime == drt ]
isolate2_negative_test: Skip  # Inherited from VM.
isolate3_negative_test: Skip  # Inherited from VM.
serialization_test: Skip  # tests dart2js-specific serialization code
spawn_uri_test: Skip # uses a .js extension (not for dartium)
spawn_uri_negative_test: Skip # ditto

[ $compiler == dartc ]
isolate_negative_test: Fail    # status change with --check-only
isolate2_negative_test: Fail   # status change with --check-only
spawn_function_negative_test: Fail, OK # Fails at runtime.
spawn_uri_negative_test: Fail, OK # Fails at runtime.
spawn_uri_vm_negative_test: Fail, OK # Fails at runtime.
unresolved_ports_negative_test: Fail, OK # Fails at runtime.

# test issue 6512
isolate2_negative_test: Pass
compute_this_script_browser_test: Pass

[ $compiler == dartanalyzer ]
isolate2_negative_test: fail
isolate3_negative_test: fail
isolate_import_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 && ($runtime == d8 || $jscl) ]
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 # 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 # http://dartbug.com/9012 and http://dartbug.com/9024
global_error_handler_stream_test: Pass, Fail # http://dartbug.com/9012 and http://dartbug.com/9024
global_error_handler2_test: Pass, Fail # http://dartbug.com/9012 and http://dartbug.com/9024
global_error_handler_stream2_test: Pass, Fail # http://dartbug.com/9012 and http://dartbug.com/9024

[ $compiler == dart2js && ($runtime == drt || $runtime == ff || $runtime == chrome || $runtime == ie9 || $runtime == ie10 || $runtime == safari) ]
typed_data_message_test: Fail

[ $runtime == safari ]
cross_isolate_message_test: Skip      # Depends on 32/64 bit Safari. See Issue 1120
mixed_test: Pass,Fail               # Depends on 32/64 bit Safari. See Issue 1120
mixed2_test: Pass,Fail              # Depends on 32/64 bit Safari. See Issue 1120
message_test: Skip

# TODO(ager): Update these.
[ $runtime == ie9 && $system == windows ]
v2*: Skip

[ $runtime == safari && $system == macos ]
v2*: Skip

[ $runtime == ie9 && ($system == linux || $system == macos) ]
*: Skip

[ $runtime == safari && ($system == linux || $system == windows) ]
*: Skip

[ $runtime == opera ]
isolate2_negative_test: Skip # Timeout.
unresolved_ports_negative_test: Skip # See Issue 6839

[ $compiler == dart2js && $browser ]
spawn_uri_vm_test: Skip # test uses a ".dart" suffix that only works in vm.
spawn_uri_nested_vm_test: Skip # test uses a ".dart" suffix that only works in vm.
spawn_uri_vm_negative_test: Skip # ditto above.
isolate2_negative_test: Fail, Pass # Issue 7769

[ $compiler == dart2js && $jscl ]
spawn_uri_negative_test: Pass # for the wrong reasons (not supported in d8)
spawn_uri_test: Fail, OK # loading another file is not supported in d8
spawn_uri_vm_negative_test: Skip # ditto above.
spawn_uri_vm_test: Skip # test uses a ".dart" suffix that only works in vm.
spawn_uri_nested_vm_test: Skip # test uses a ".dart" suffix that only works in vm.

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

[ $compiler == dart2js && $runtime == none ]
*: Fail, Pass # TODO(ahe): Triage these tests.

[ $compiler == dart2dart ]
# Skip until we stabilize language tests.
*: Skip

# TODO(ajohnsen): Fix this as part of library changes.
[ $compiler == none ]
isolate_negative_test: Skip # Bug 6890

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

[ $arch == arm ]
*: Skip

[ $arch == simarm ]
*: Skip

[ $arch == mips ]
*: Skip

[ $arch == simmips ]
*: Skip
