# 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.
analyze_dart_test: Slow, Pass
analyze_test: Slow, Pass
async_await_syntax_test: Pass # DON'T CHANGE THIS LINE -- 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.
boolified_operator_test: Fail # Issue 8001
codegen/gvn_dynamic_field_get_test: Fail # Issue 18519
codegen/load_elimination_test: Pass, Slow
codegen/logical_expression_test: Fail # Issue 17027
codegen/simple_function_subtype_test: Fail # simple_function_subtype_test is temporarily(?) disabled due to new method for building function type tests.
deferred_loading/deferred_loading_test: Slow, Pass
equivalence/id_equivalence_test: Pass, Slow
generate_code_with_compile_time_errors_test: RuntimeError # not supported yet with the new FE.
in_user_code_test: RuntimeError # analyze-only with CFE is not complete (Issues 32512, 32513)
inference/inference0_test: Slow, Pass
inference/inference1_test: Slow, Pass
inference/simple_inferrer_const_closure2_test: Fail # Issue 16507
inference/simple_inferrer_const_closure_test: Fail # Issue 16507
inference/simple_inferrer_global_field_closure_test: Fail # Issue 16507
inference/swarm_test: Slow, Pass, Fail #
inlining/inlining_test: Slow, Pass
kernel/*: Slow, Pass
kernel/compile_from_dill_fast_startup_test: RuntimeError # Test must be updated to support FE with patching.
kernel/compile_from_dill_test: RuntimeError # Test must be updated to support FE with patching.
mirrors/library_exports_hidden_test: Fail
mirrors/library_exports_shown_test: Fail
mirrors/library_imports_hidden_test: Fail
mirrors/library_imports_prefixed_show_hide_test: Fail # Issue 32057
mirrors/library_imports_prefixed_test: Fail
mirrors/library_imports_shown_test: Fail
model/subtype_test: Pass, Slow
no_such_method_enabled_test: Pass, Slow
old_frontend/bad_loop_test: RuntimeError
old_frontend/check_elements_invariants_test: Skip # Times out even with Slow marker. Slow due to inlining in the CPS backend
old_frontend/compile_with_empty_libraries_test: Fail # Issue 24223
old_frontend/patch_test/bug: RuntimeError # Issue 21132
old_frontend/resolver_test: RuntimeError # Test must be updated given new parser recovery
packages/*: Skip # Skip packages folder
quarantined/http_test: RuntimeError # not supported with CFE, consider deleting.
rti/rti_emission_test: Pass, Slow
rti/rti_need_test: Pass, Slow
serialization/analysis1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/analysis3_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/analysis4_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/analysis5_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/compilation0_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/compilation1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/compilation3_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/compilation4_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/compilation5_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/compilation_1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/impact_test: Slow, RuntimeError # Issue 32149
serialization/library_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/model0_test: Slow, RuntimeError # Issue 32149
serialization/model1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/model3_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/model4_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/model5_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/model_1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/native_data_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/reserialization_test: Slow, RuntimeError # Issue 32149
show_package_warnings_test: RuntimeError # missing errors from the FE
sourcemaps/pub_build_validity_test: Pass, RuntimeError # Investigate: passes locally, but only fails in bots.
sourcemaps/source_mapping_invokes_test: Pass, Slow
sourcemaps/source_mapping_operators_test: Pass, Slow
sourcemaps/source_mapping_test: Pass, Slow
subtype_test: Slow, Pass
uri_retention_test: Fail # Issue 26504

[ $mode == debug ]
deferred/load_graph_segmentation_test: Pass, Slow
deferred/load_mapping_test: Pass, Slow
end_to_end/dart2js_batch_test: Pass, Slow
end_to_end/exit_code_test: Pass, Slow
in_user_code_test: Pass, Slow
mirrors/deferred_mirrors_test: Pass, Slow
mirrors/import_mirrors_test: Pass, Slow
mirrors/mirror_final_field_inferrer2_test: Crash, Pass, Slow # Issue 15581
old_frontend/analyze_api_test: Pass, Slow # DON'T CHANGE THIS LINE -- 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.
old_frontend/analyze_dart2js_test: Pass, Slow # DON'T CHANGE THIS LINE -- 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.
old_frontend/analyze_unused_dart2js_test: Pass, Slow
old_frontend/check_elements_invariants_test: Skip # Slow and only needs to be run in one configuration
old_frontend/check_members_test: Pass, Slow
old_frontend/duplicate_library_test: Pass, Slow
old_frontend/message_kind_test: Pass, Slow
show_package_warnings_test: Pass, Slow
sourcemaps/source_map_pub_build_validity_test: Pass, Slow

[ $system == linux ]
dart2js_batch2_test: Pass, RuntimeError # Issue 29021

[ $checked ]
codegen/value_range_kernel_test: Pass, Slow
codegen/value_range_test: Pass, Slow
end_to_end/exit_code_test: Pass, Slow
jsinterop/declaration_test: Slow, Pass
jsinterop/interop_anonymous_unreachable_test: Pass, Slow
jsinterop/world_test: Pass, Slow
kernel/visitor_test: Pass, Slow
mirrors/deferred_mirrors_test: Pass, Slow
mirrors/import_mirrors_test: Slow, Pass
mirrors/mirror_final_field_inferrer2_test: Pass, Slow
mirrors/preserve_uris_test: Pass, Slow
old_frontend/analyze_dart2js_helpers_test: Pass, Slow
old_frontend/analyze_dart2js_test: Pass, Slow
old_frontend/analyze_unused_dart2js_test: Pass, Slow
old_frontend/duplicate_library_test: Pass, Slow
output_type_test: Pass, Slow
serialization*: Slow, Pass
sourcemaps/source_map_pub_build_validity_test: Pass, Slow
sourcemaps/stacktrace_test: Pass, Slow
uri_retention_test: Pass, Slow

[ !$checked ]
end_to_end/exit_code_test: Skip # This tests requires checked mode.
jsinterop/declaration_test: Slow, Pass
serialization*: Slow, Pass

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

