# 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.
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
timer_not_available_test: Fail, OK # only meant to test when there is no way to
                                   # implement timer (currently only in d8)
timer_isolate_test: Skip # See Issue 4997

[ $compiler == none && $runtime == drt ]
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
spawn_uri_vm_test: Skip # not implemented in dartium yet.
spawn_uri_vm_negative_test: Skip
timer_isolate_test: Pass, Fail # See Issue 4997
timer_not_available_test: Fail, OK # only meant to test when there is no way to
                                   # implement timer (currently only in d8)

[ $compiler == dartc ]
serialization_test: Skip  # tests dart2js-specific serialization code
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 == dart2js ]
serialization_test: Fail # Tries to access class TestingOnly declared in isolate_patch.dart
port_test: Fail # Issue 6608
illegal_msg_test: Fail # Issue 6750

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

[ $runtime == ff ]
# FF setTimeout can fire early: https://bugzilla.mozilla.org/show_bug.cgi?id=291386
multiple_timer_test: Pass, Fail
timer_isolate_test: Pass, Fail
timer_test: Pass, Fail

# 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 ]
multiple_timer_test: Pass, Fail
isolate2_negative_test: Skip # Timeout.
unresolved_ports_negative_test: Skip # Timeout.

[ $runtime == opera && $system == windows]
# TODO(efortuna): Investigate.
timer_test: Fail, Pass

[ $arch == simarm ]
*: Skip

[ $arch == arm ]
*: Skip

[ $compiler == dart2js && $browser ]
spawn_uri_test: Skip # dart2js does not support spawnUri yet
spawn_uri_negative_test: Skip # ditto
spawn_uri_vm_test: Skip # test uses a ".dart" suffix that only works in vm.
spawn_uri_vm_negative_test: Skip # ditto above.
timer_not_available_test: Fail, OK # only meant to test when there is no way to
                                   # implement timer (currently only in d8)

[ $compiler == dart2js && $jscl ]
multiple_timer_test: Fail,OK # Needs Timer to run.
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.
timer_cancel_test: Fail,OK # Needs Timer to run.
timer_cancel1_test: Fail,OK # Needs Timer to run.
timer_cancel2_test: Fail,OK # Needs Timer to run.
timer_isolate_test: Fail, OK # Needs Timer to run.
timer_repeat_test: Fail,OK # Needs Timer to run.
timer_test: Fail,OK # Needs Timer to run.

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

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