# 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
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/metadata_test: Fail # Issue 6490
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/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

[ $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
mirrors/disable_tree_shaking_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/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 ]
async/future_test: Pass, Crash # Issue: 11207
async/run_async6_test: Pass, Fail # Issue: 11207
async/run_async_test: Pass, Crash # Issue: 11207
async/slow_consumer2_test: Pass, Crash # Issue: 11207
async/slow_consumer3_test: Pass, Crash # Issue: 11207
async/slow_consumer_test: Pass, Crash # Issue: 11207
async/stream_controller_async_test: Pass, Crash # Issue: 11207
async/stream_controller_test: Timeout, Pass, Crash # Issue: 11207
async/stream_from_iterable_test: Pass, Crash # Issue: 11207
async/stream_periodic2_test: Pass, Crash # Issue: 11207
async/stream_periodic3_test: Pass, Crash # Issue: 11207
async/stream_periodic4_test: Pass, Crash # Issue: 11207
async/stream_periodic5_test: Pass, Crash # Issue: 11207
async/stream_single_to_multi_subscriber_test: Pass, Crash # Issue: 11207
async/stream_state_nonzero_timer_test: Pass, Crash # Issue: 11207
async/stream_state_test: Pass, Crash # Issue: 11207
async/stream_subscription_as_future_test: Pass, Crash # Issue: 11207
async/stream_transform_test: Pass, Crash # Issue: 11207
async/timer_cancel1_test: Pass, Crash # Issue: 11207
async/timer_cancel2_test: Pass, Crash # Issue: 11207
math/pi_test: Crash, Fail # Issue: 11207
math/random_test: Fail # Issue: 11207
mirrors/reflect_model_test: Pass, Crash # Issue: 11207
typed_data/float32x4_list_test: Crash # Issue: 11207
typed_data/float32x4_test: Crash # Issue: 11207
typed_data/float32x4_unbox_phi_test: Crash # Issue: 11207
typed_data/float32x4_unbox_regress_test: Crash # Issue: 11207

[ $arch == mips ]
*: Skip

[ $arch == simmips ]
*: Skip
