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

async/stream_periodic4_test: Fail, Pass # floitsch: Marking as flaky while collection debug information. http://dartbug.com/9619

# The typeddata library is not supported by dart2js or dart2dart yet.
[ $compiler == dart2js  || $compiler == dart2dart ]
typeddata/*: Fail


# The typeddata library is not supported by dart2js or dart2dart yet.
[ $compiler == dart2js  || $compiler == dart2dart ]
typeddata/*: Skip


[ $compiler == dart2js ]
math/*: Skip
mirrors/*: Skip
async/run_async3_test: Fail # _enqueueImmediate runs after Timer. http://dartbug.com/9002
async/run_async4_test: Pass, Fail # no global exception handler in isolates. http://dartbug.com/9012

[ $compiler == dart2js && ( $runtime == chrome || $runtime == drt ) && ($system == macos || $system == windows)]
crypto/hmac_sha1_test: Fail # Issue 9471

[ $compiler == dart2js && $checked ]
async/stream_event_transform_test: Fail # Issue 7733.

[ $compiler == dart2js && $jscl ]
async/future_test: Fail # Timer interface not supported; dartbug.com/7728.
async/slow_consumer2_test: Fail # Timer interface not supported; dartbug.com/7728.
async/slow_consumer3_test: Fail # Timer interface not supported; dartbug.com/7728.
async/slow_consumer_test: Fail # Timer interface not supported; dartbug.com/7728.
async/stream_from_iterable_test: Fail # Timer interface not supported; dartbug.com/7728.
async/stream_state_nonzero_timer_test: Fail # Timer interface not supported; dartbug.com/7728.
async/multiple_timer_test: Fail,OK # Needs Timer to run.
async/timer_cancel_test: Fail,OK # Needs Timer to run.
async/timer_cancel1_test: Fail,OK # Needs Timer to run.
async/timer_cancel2_test: Fail,OK # Needs Timer to run.
async/timer_isolate_test: Fail, OK # Needs Timer to run.
async/timer_repeat_test: Fail,OK # Needs Timer to run.
async/timer_test: Fail,OK # Needs Timer to run.

[ $compiler == dart2js && ($jscl || $runtime == d8) ]
async/stream_periodic_test: Fail # Timer interface not supported; dartbug.com/7728.
async/stream_periodic2_test: Fail # Timer interface not supported; dartbug.com/7728.
async/stream_periodic3_test: Fail # Timer interface not supported; dartbug.com/7728.
async/stream_periodic4_test: Fail # Timer interface not supported; dartbug.com/7728.
async/stream_periodic5_test: Fail # Timer interface not supported; dartbug.com/7728.

[ $compiler == dart2js && $browser ]
crypto/sha256_test: Slow, Pass
crypto/sha1_test: Slow, Pass
async/timer_not_available_test: Fail, OK # only meant to test when there is no way to
                                         # implement timer (currently only in d8)

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

[ $compiler == dartc ]
# lib issue 6322
crypto/hmac_sha1_test: Fail
crypto/hmac_sha256_test: Fail

[ $runtime == safari]
 # Bug in JSC: the test only passes when being debugged.
crypto/hmac_md5_test: Fail, Pass

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

[ $runtime == opera ]
async/multiple_timer_test: Pass, Fail

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

[ $runtime == vm ]
async/timer_not_available_test: Fail, OK # only meant to test when there is no way to
                                         # implement timer (currently only in d8)
async/timer_isolate_test: Skip # See Issue 4997

[ $runtime == vm || ($compiler == none && $runtime == drt) ]
async/run_async3_test: Fail # _enqueueImmediate runs after Timer. http://dartbug.com/9001.
async/run_async4_test: Pass, Fail # http://dartbug.com/9013

[ $compiler == none && $runtime == drt ]
async/timer_isolate_test: Skip # See Issue 4997
async/timer_not_available_test: Skip # only meant to test when there is no way to
                                     # implement timer (currently only in d8)

[ $arch == arm ]
*: Skip

[ $arch == simarm ]
*: Skip

[ $arch == mips ]
*: Skip

[ $arch == simmips ]
*: Skip
