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

packages/*: Skip # Skip packages folder

compile_with_empty_libraries_test: Fail # Issue 24223

kernel/*: Slow, Pass

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

quarantined/http_test: Pass, Slow

# Source information is not correct due to inlining.
sourcemaps/source_mapping_operators_test: Pass, Slow
sourcemaps/source_mapping_invokes_test: Pass, Slow

check_elements_invariants_test: Slow, Pass, Timeout # Slow due to inlining in the CPS backend

uri_retention_test: Fail # Issue 26504

[ $unchecked ]
exit_code_test: Skip # This tests requires checked mode.
serialization*: Slow, Pass

[ $checked ]
analyze_dart2js_helpers_test: Pass, Slow
analyze_dart2js_test: Pass, Slow
analyze_unused_dart2js_test: Pass, Slow
dart2js_resolver_test: Pass, Slow
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
serialization*: Slow, Pass
uri_retention_test: Pass, Slow
value_range_test: Pass, Slow
jsinterop/world_test: Pass, Slow
sourcemaps/stacktrace_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).
