# 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 ]
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.
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
async/run_async6_test: Fail # global error handling is not supported. http://dartbug.com/5958

# SIMD is unsupported on dart2js.
typed_data/float32x4_test: Fail, OK
typed_data/float32x4_list_test: Fail, OK
typed_data/float32x4_unbox_phi_test: Fail, OK
typed_data/float32x4_unbox_regress_test: Fail, OK

[ $compiler == dart2js && ($runtime == d8 || $runtime == ie9) ]
typed_data/byte_data_test: Fail, OK # d8/ie9 doesn't support DataView

[ $compiler == dart2js && $minified ]
mirrors/mirrors_resolve_fields_test: Fail # Issue 6490

[ $csp ]
mirrors/library_uri_package_test: Fail, Pass # Issue 6490

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

[ $compiler == dart2js && $unchecked && ($runtime == d8 || $runtime == chrome || $runtime == drt) ]
crypto/sha1_test: Fail # V8 bug: https://code.google.com/p/v8/issues/detail?id=2692

[ $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 ]
mirrors/mirrors_test: Fail              # Issue 10957
mirrors/library_uri_package_test: Fail  # Issue 10957
async/run_async6_test: Fail             # Issue 10957 - may be related to issue 10910

[ $compiler == dart2dart && $minified ]
json/json_test: Fail                           # Issue 10961
typed_data/float32x4_test: Fail                # Issue 10961
typed_data/float32x4_list_test: Fail           # Issue 10961
typed_data/float32x4_unbox_phi_test: Fail      # Issue 10961
typed_data/float32x4_unbox_regress_test: Fail  # Issue 10961

[ $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.
mirrors/metadata_test: Fail # http://dartbug.com/10906

[ $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.
async/run_async6_test: Fail # Issue 10910

[ $compiler == none && $runtime == drt && $system == windows ]
async/multiple_timer_test: Fail # See Issue 10982
async/timer_test: Fail # See Issue 10982

[ $arch == arm ]
*: Skip

[ $arch == simarm ]
*: Skip

[ $arch == mips ]
*: Skip

[ $arch == simmips ]
*: Skip
