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

[ $compiler == dart2js && $csp && $runtime == drt && $unchecked ]
mandel_isolate_stream_test: Pass, Fail, Crash # Bug in v8, http://dartbug.com/9407
nested_spawn_stream2_test: Pass, Fail, Crash # Bug in v8, http://dartbug.com/9407
count_test: Pass, Fail, Crash # Bug in v8, http://dartbug.com/9407
count_stream_test: Pass, Fail, Crash # Bug in v8, http://dartbug.com/9407
mandel_isolate_test: Pass, Fail, Crash # Bug in v8, http://dartbug.com/9407
message_test: Pass, Fail, Crash # Bug in v8, http://dartbug.com/9407
mint_maker_test: Pass, Fail, Crash # Bug in v8, http://dartbug.com/9407
unresolved_ports_negative_test: Fail, Pass, Crash # Bug in v8, http://dartbug.com/9407
unresolved_ports_test: Fail, Pass, Crash # Bug in v8, http://dartbug.com/9407

[ $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 # See Issue 9013.
global_error_handler_stream_test: Fail # See Issue 9013.

[ $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
spawn_uri_vm_test: Skip # not implemented in dartium yet.
spawn_uri_nested_vm_test: Skip # not implemented in dartium yet.
spawn_uri_vm_negative_test: Skip

[ $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 == dart2js && ($runtime == d8 || $jscl) ]
illegal_msg_stream_test: Fail # Issue 6750

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

[ $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
typed_data_message_test: Fail # dart:typeddata not supported in dart2js yet.

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