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

compile_with_empty_libraries_test: Fail # Issue 24223

boolified_operator_test: Fail # Issue 8001

# Don't mark these tests as failing. Instead, fix the errors/warnings that they
# report or update the whitelist in the test-files to temporarily allow
# digression.
async_await_syntax_test: Pass # DON'T CHANGE THIS LINE -- SEE ABOVE.

# simple_function_subtype_test is temporarily(?) disabled due to new method for
# building function type tests.
simple_function_subtype_test: Fail

simple_inferrer_const_closure_test: Fail # Issue 16507
simple_inferrer_const_closure2_test: Fail # Issue 16507
simple_inferrer_global_field_closure_test: Fail # Issue 16507

logical_expression_test: Fail # Issue 17027

gvn_dynamic_field_get_test: Fail # Issue 18519

backend_dart/opt_cyclic_redundant_phi_test: Fail # Issue 20159

mirrors/library_exports_hidden_test: Fail
mirrors/library_exports_shown_test: Fail
mirrors/library_imports_hidden_test: Fail
mirrors/library_imports_prefixed_test: Fail
mirrors/library_imports_prefixed_show_hide_test: Fail
mirrors/library_imports_shown_test: Fail

patch_test/bug: RuntimeError # Issue 21132

http_test: Pass, Slow
inference_stats_test: Pass, Slow

# These tests are for the now-deleted dart2dart variant of the CPS IR.
# We want to adapt them to test the JS variant of the CPS IR instead,
# but for now they are disabled.
backend_dart/end2end_test: Skip
backend_dart/sexpr2_test: Skip
backend_dart/sexpr_test: Skip
backend_dart/opt_constprop_test: Skip
backend_dart/opt_shrinking_test: Skip
backend_dart/opt_redundant_phi_test: Skip

# These tests run the compiler multiple times.
js_backend_cps_ir_basic_test: Pass, Slow
js_backend_cps_ir_closures_test: Pass, Slow
js_backend_cps_ir_constructor_test: Pass, Slow

[ $unchecked ]
exit_code_test: Skip # This tests requires checked mode.

[ $checked ]
analyze_dart2js_helpers_test: Pass, Slow
analyze_dart2js_test: Pass, Slow
analyze_unused_dart2js_test: Pass, Slow
check_elements_invariants_test: Slow, Pass, Timeout
deferred_mirrors_test: Pass, Slow
duplicate_library_test: Pass, Slow
exit_code_test: Pass, Slow
import_mirrors_test: Slow, Pass
interop_anonymous_unreachable_test: Pass, Slow
mirror_final_field_inferrer2_test: Pass, Slow
source_map_pub_build_validity_test: Pass, Slow
sourcemaps/source_mapping_operators_test: Pass, Slow
uri_retention_test: Pass, Slow
value_range_test: Pass, Slow

[ $mode == debug ]
check_elements_invariants_test: Skip # Slow and only needs to be run in one
                                     # configuration

mirror_final_field_inferrer2_test: Crash, Pass, Slow # Issue 15581

analyze_unused_dart2js_test: Pass, Slow
check_members_test: Pass, Slow
dart2js_batch_test: Pass, Slow
deferred_load_graph_segmentation_test: Pass, Slow
deferred_load_mapping_test: Pass, Slow
deferred_mirrors_test: Pass, Slow
duplicate_library_test: Pass, Slow
exit_code_test: Pass, Slow
import_mirrors_test: Pass, Slow
in_user_code_test: Pass, Slow
message_kind_test: Pass, Slow
show_package_warnings_test: Pass, Slow
source_map_pub_build_validity_test: Pass, Slow

# Don't mark these tests as failing. Instead, fix the errors/warnings that they
# report or update the whitelist in the test-files to temporarily allow
# digression.
analyze_api_test: Pass, Slow # DON'T CHANGE THIS LINE -- SEE ABOVE.
analyze_dart2js_test: Pass, Slow # DON'T CHANGE THIS LINE -- SEE ABOVE.

[ $jscl || $runtime == drt || $runtime == dartium || $runtime == ff || $runtime == firefox || $runtime == chrome || $runtime == safari || $runtime == opera ]
*: Skip # dart2js uses #import('dart:io'); and it is not self-hosted (yet).
