# 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 typed_data library is not supported by dart2js or dart2dart yet.
[ $compiler == dart2js  || $compiler == dart2dart ]
typed_data/*: Fail


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


[ $compiler == dart2js ]
math/*: Skip
mirrors/mirrors_test: Fail # TODO(ahe): I'm working on fixing this.
mirrors/library_uri_io_test: Skip # Not intended for dart2js as it uses dart:io.
mirrors/library_uri_package_test: Fail # dart:mirrors not fully implemented.
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 && $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)
mirrors/library_uri_io_test: Skip # Not intended for drt as it uses dart:io.

[ $arch == arm ]
*: Skip

[ $arch == simarm ]
*: Skip

[ $arch == mips ]
*: Skip

[ $arch == simmips ]
*: Skip
