# Copyright (c) 2016, 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.

# Skip entire suite if not running in strong mode.
[ ! $strong ]
*: SkipByDesign

# Skip tests that are not yet strong-mode clean.
[ $strong ]

# Temporalily disable the following tests until we figure out why they started failing.
html/client_rect_test: Skip
html/css_test/supportsPointConversions: Skip
html/css_test/functional: Skip

async/future_microtask_test: Skip
async/future_or_bad_type_test/00: Skip
async/future_or_bad_type_test/01: Skip
async/future_or_bad_type_test/implements: Skip
async/future_or_only_in_async_test/00: Skip
async/future_test/none: Skip
async/future_test/01: Skip
async/future_test/none: Skip
async/future_value_chain4_test: Skip
async/print_test/01: Skip
async/print_test/none: Skip
html/cross_frame_test: Skip
html/element_dimensions_test: Skip
html/element_test: Skip
html/events_test: Skip
html/fileapi_test: Skip
html/filereader_test: Skip
html/fontface_loaded_test: Skip
html/js_function_getter_trust_types_test: Skip
html/js_typed_interop_side_cast_exp_test: Skip
html/js_typed_interop_side_cast_test: Skip
html/keyboard_event_test: Skip
html/mutationobserver_test: Skip
html/postmessage_structured_test: Skip
html/resource_http_test: Skip
html/transferables_test: Skip
html/webgl_1_test: Skip
html/wrapping_collections_test: Skip
mirrors/circular_factory_redirection_test: Skip
mirrors/class_declarations_test: Skip
mirrors/closures_test: Skip
mirrors/fake_function_without_call_test: Skip
mirrors/generic_bounded_by_type_parameter_test: Skip
mirrors/generic_bounded_test: Skip
mirrors/generic_class_declaration_test: Skip
mirrors/generic_f_bounded_mixin_application_test: Skip
mirrors/generic_interface_test: Skip
mirrors/generics_test: Skip
mirrors/intercepted_class_test: Skip
mirrors/intercepted_object_test: Skip
mirrors/invoke_call_through_getter_previously_accessed_test: Skip
mirrors/invoke_call_through_getter_test: Skip
mirrors/invoke_call_through_implicit_getter_previously_accessed_test: Skip
mirrors/invoke_call_through_implicit_getter_test: Skip
mirrors/lazy_static_test: Skip
mirrors/mirrors_test: Skip
mirrors/redirecting_factory_different_type_test: Skip
mirrors/redirecting_factory_test: Skip
mirrors/reflect_class_test: Skip
mirrors/reflect_model_test: Skip
mirrors/reflected_type_classes_test: Skip
mirrors/reflected_type_test: Skip
mirrors/regress_16321_test: Skip
mirrors/regress_19731_test: Skip
html/custom/created_callback_test: CompileTimeError # Issue 28969
html/custom/document_register_basic_test: CompileTimeError # Issue 28969
html/js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue 28969

[ $compiler == dart2analyzer && $strong ]
html/debugger_test: CompileTimeError # Issue 28969

# TODO(29919): HTML tests are not supported on dartdevc in test.dart yet.
[ $compiler == dartdevc ]
html/deferred_multi_app_htmltest: Skip # Issue 29919
html/no_linked_scripts_htmltest: Skip # Issue 29919
html/scripts_htmltest: Skip # Issue 29919
html/two_scripts_htmltest: Skip # Issue 29919
html/custom/attribute_changed_callback_test: Crash # Issue 29922
html/custom/constructor_calls_created_synchronously_test: Crash # Issue 29922
html/custom/created_callback_test: CompileTimeError # Issue 29922
html/custom/document_register_basic_test: CompileTimeError # Issue 29922

[ $compiler == dartdevc && $runtime != none ]
async/future_or_bad_type_test/none: RuntimeError # Issue 29922
async/future_or_non_strong_test: RuntimeError # Issue 29922
async/futures_test: RuntimeError # Issue 29922
html/async_spawnuri_test: RuntimeError # Issue 29922
html/async_test: RuntimeError # Issue 29922
html/element_classes_svg_test: RuntimeError # Issue 29922
html/element_classes_test: RuntimeError # Issue 29922
html/indexeddb_1_test/functional: RuntimeError # Issue 29922, strong mode cast failure
html/indexeddb_2_test: RuntimeError, Skip # Times out. Issue 29922, strong mode cast failure
html/input_element_test: RuntimeError # Issue 29922
html/interactive_test: Skip # requests interactive permissions (camera, geolocation)
html/isolates_test: RuntimeError # Issue 29922
html/js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue 29922
html/js_util_test: RuntimeError # Issue 29922
html/media_stream_test: RuntimeError # Issue 29922
html/mediasource_test: RuntimeError # Issue 29922
html/transition_event_test: Pass, RuntimeError, Timeout # Issue 29922, this test seems flaky
html/typing_test: RuntimeError # Issue 29922
html/websql_test/functional: RuntimeError # Issue 29922
html/worker_api_test: RuntimeError # Issue 29922
html/xhr_cross_origin_test/functional: RuntimeError # Issue 29922
html/xhr_test/xhr: RuntimeError # Issue 29922, strong mode cast failure
mirrors/basic_types_in_dart_core_test: RuntimeError # Issue 29922
mirrors/class_mirror_location_test: RuntimeError # Issue 29922
mirrors/class_mirror_type_variables_test: RuntimeError # Issue 29922
mirrors/closurization_equivalence_test: RuntimeError # Issue 29922
mirrors/constructor_kinds_test/01: RuntimeError # Issue 29922
mirrors/fake_function_with_call_test: RuntimeError # Issue 29922
mirrors/field_metadata2_test: RuntimeError # Issue 29922
mirrors/field_type_test: RuntimeError # Issue 29922
mirrors/function_type_mirror_test: RuntimeError # Issue 29922
mirrors/generic_f_bounded_test/01: RuntimeError # Issue 29922
mirrors/generic_f_bounded_test/none: RuntimeError # Issue 29922
mirrors/generic_function_typedef_test: RuntimeError # Issue 29922
mirrors/generics_double_substitution_test/01: RuntimeError # Issue 29922
mirrors/generics_double_substitution_test/none: RuntimeError # Issue 29922
mirrors/generics_dynamic_test: RuntimeError # Issue 29922
mirrors/generics_special_types_test: RuntimeError # Issue 29922
mirrors/generics_substitution_test: RuntimeError # Issue 29922
mirrors/instantiate_abstract_class_test: RuntimeError # Issue 29922
mirrors/invocation_fuzz_test/emptyarray: RuntimeError # Issue 29922
mirrors/invocation_fuzz_test/false: RuntimeError # Issue 29922
mirrors/invocation_fuzz_test/none: RuntimeError # Issue 29922
mirrors/invocation_fuzz_test/smi: RuntimeError # Issue 29922
mirrors/invocation_fuzz_test/string: RuntimeError # Issue 29922
mirrors/invoke_call_on_closure_test: RuntimeError # Issue 29922
mirrors/libraries_test: RuntimeError # Issue 29922
mirrors/library_enumeration_deferred_loading_test: RuntimeError # Issue 29922
mirrors/library_metadata_test: RuntimeError # Issue 29922
mirrors/library_uri_io_test: RuntimeError # Issue 29922
mirrors/library_uri_package_test: RuntimeError # Issue 29922
mirrors/local_function_is_static_test: RuntimeError # Issue 29922
mirrors/metadata_test: RuntimeError # Issue 29922
mirrors/private_types_test: RuntimeError # Issue 29922
mirrors/reflect_runtime_type_test: RuntimeError # Issue 29922
mirrors/reflect_uninstantiated_class_test: RuntimeError # Issue 29922
mirrors/reflected_type_function_type_test: RuntimeError # Issue 29922
mirrors/reflected_type_special_types_test: RuntimeError # Issue 29922
mirrors/reflected_type_typedefs_test: RuntimeError # Issue 29922
mirrors/reflected_type_typevars_test: RuntimeError # Issue 29922
mirrors/regress_14304_test: RuntimeError # Issue 29922

[ $compiler == dartdevc && $runtime == chrome ]
html/css_test: RuntimeError # Issue 29922
html/element_animate_test/timing_dict: RuntimeError # Issue 29922
html/element_types_test: RuntimeError # Issue 29922
html/touchevent_test: RuntimeError # Issue 29922

[ $compiler == dartdevc && $runtime == drt ]
html/svg_test: RuntimeError # Issue 29922

[ $compiler == dartdevc && $system == windows ]
html/xhr_test/xhr: Skip # Times out. Issue 21527
