# 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.

# packages issue 6340
compute_this_script_browser_test: Fail, OK


[ $compiler == dart2js ]
serialization_test: Fail # Tries to access class TestingOnly declared in isolate_patch.dart

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