# 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/metadata_test: Fail
mirrors/mirrors_resolve_fields_test: Fail # Issue 6490
mirrors/reflectively_instantiate_uninstantiated_class_test: Fail # Issue 6490
mirrors/disable_tree_shaking_test: Fail # Issue 6490
mirrors/reflect_model_test: Fail # Issue 6490

[ $csp ]
mirrors/library_metadata_test: Fail # Issue 10906
mirrors/metadata_test: Fail # Issue 10906
mirrors/reflect_runtime_type_test: Fail # Issue 6490
mirrors/reflect_uninstantiated_class_test: Fail # Issue 6490
mirrors/superclass_test: Fail # Issue 6490
mirrors/reflect_model_test: Fail # Issue 6490

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

[ $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
mirrors/reflect_runtime_type_test: Fail
mirrors/reflect_uninstantiated_class_test: Fail


[ $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 == ie9 ]
typed_data/typed_list_iterable_test: Fail # Issue 11036

[ $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/library_metadata_test: Fail # http://dartbug.com/10906
mirrors/superclass_test: Fail # http://dartbug.com/11142
mirrors/reflectively_instantiate_uninstantiated_class_test: Fail # http://dartbug.com/11187
mirrors/reflect_model_test: Fail # http://dartbug.com/11219

[ $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, Pass # See Issue 10982
async/timer_test: Fail, Pass # See Issue 10982


[ $arch == arm || $arch == simarm ]
*: Skip

[ $arch == mips ]
*: Skip

[ $arch == simmips ]
*: Skip
