# 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
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

[ $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
