# 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.
# Don't run any test-like files that show up in packages directories. It
# shouldn't be necessary to run "pub install" in these packages, but if you do
# it shouldn't break the tests.
*/*/*/*/*/packages/*/*: Skip
*/*/*/*/packages/*/*: Skip
*/*/*/packages/*/*: Skip
*/*/packages/*/*: Skip
*/packages/*/*: Skip
analyzer/test/src/task/strong/checker_test: Slow, Pass
analyzer/test/verify_diagnostics_test.dart: Slow, Pass
analyzer_plugin/test/plugin/folding_mixin_test: Slow, Pass
compiler/test/analyses/analyze_test: Slow, Pass
compiler/test/analyses/api_dynamic_test: Slow, Pass
compiler/test/analyses/dart2js_dynamic_test: Slow, Pass
compiler/test/closure/closure_test: Slow, Pass
compiler/test/codegen/load_elimination_test: Slow, Pass
compiler/test/codegen/model_test: Slow, Pass
compiler/test/deferred_loading/deferred_loading_test: Slow, Pass
compiler/test/end_to_end/dump_info_test: Skip #47401
compiler/test/impact/impact_test: Slow, Pass
compiler/test/inference/inference0_test: Slow, Pass
compiler/test/inference/inference1_test: Slow, Pass
compiler/test/inference/inference2_test: Slow, Pass
compiler/test/inference/inference3_test: Slow, Pass
compiler/test/inlining/inlining_test: Slow, Pass
compiler/test/model/native_test: Slow, Pass
compiler/test/model/no_such_method_enabled_test: Slow, Pass
compiler/test/model/subtype_test: Slow, Pass
compiler/test/modular/*: Slow, Pass
compiler/test/packages/*: SkipByDesign
compiler/test/rti/rti_emission0_test: Slow, Pass
compiler/test/rti/rti_emission1_test: Slow, Pass
compiler/test/rti/rti_emission2_test: Slow, Pass
compiler/test/rti/rti_emission3_test: Slow, Pass
compiler/test/rti/rti_need0_test: Slow, Pass
compiler/test/rti/rti_need1_test: Slow, Pass
compiler/test/rti/rti_need2_test: Slow, Pass
compiler/test/rti/rti_need3_test: Slow, Pass
compiler/test/serialization/serialization_test: Slow, Pass
compiler/test/sourcemaps/source_mapping_invokes_test: Slow, Pass
compiler/test/sourcemaps/source_mapping_operators_test: Slow, Pass
compiler/test/sourcemaps/source_mapping_test: Slow, Pass
compiler/test/sourcemaps/stacktrace_test: Slow, Pass
dartdev/test/commands/analyze_test: Slow, Pass
dartdev/test/commands/help_test: Slow, Pass
dartdev/test/smoke/*: Slow, Pass
dev_compiler/test/modular/*: Slow, Pass
dev_compiler/test/options/*: Skip # test needs fixes
dev_compiler/test/sourcemap/*: SkipByDesign # Skip sourcemap tests
dev_compiler/test/sourcemap/testfiles/*: SkipByDesign # Skip dev_compiler codegen tests
dev_compiler/test/worker/*: Skip # test needs fixes
front_end/test/fasta/analyze_git_test: Pass, Slow
front_end/test/fasta/bootstrap_test: Pass, Slow
front_end/test/fasta/rasta/*: SkipByDesign # Anything in rasta is input to fasta unit tests and shouldn't be run as tests.
front_end/test/fasta/sdk_test: SkipByDesign # sdk_test would take too long to complete, and should be run in a different way.
front_end/test/fasta/types/dart2js_benchmark_test: Pass, Slow
front_end/test/fasta/types/large_app_benchmark_test: Pass, ExtraSlow
front_end/test/incremental_compiler_leak_test: Pass, ExtraSlow
front_end/test/incremental_dart2js_test: Pass, Slow
front_end/testcases/*: Skip # These are not tests but input for tests.
front_end/tool/incremental_perf_test: Slow, Pass
kernel/testcases/*: Skip # These are not tests but input for tests.
vm/test/kernel_front_end_test: Slow, Pass
vm/test/transformations/type_flow/transformer_test: Slow, Pass
vm/testcases/*: SkipByDesign # These are not tests but input for tests.
vm_service/test/cpu_samples_stream_test: Slow, Pass # Requires CPU sample buffer to fill.
wasm/*: SkipByDesign # These can't be run without running wasm:setup first.

[ $compiler == dart2analyzer ]
dev_compiler/test/options/*: SkipByDesign
testing/test/dart_sdk_negative_test: SkipByDesign

[ $compiler == dart2js ]
_fe_analyzer_shared/test/*: SkipByDesign # Only meant to run on vm
analysis_server/test/integration: SkipByDesign # Analysis server integration tests don't make sense to run under dart2js, since the code under test always runs in the Dart vm as a subprocess.
analysis_server/tool/*: SkipByDesign # Only meant to run on vm
analysis_server_client/test/*: SkipByDesign # Only meant to run on vm
analyzer_cli/test/*: SkipByDesign # Only meant to run on vm
analyzer_plugin/test/*: SkipByDesign # Only meant to run on vm
analyzer_plugin/tool/*: SkipByDesign # Only meant to run on vm
build_integration/test/*: SkipByDesign # Only meant to run on vm, most use dart:mirrors and dart:io
compiler/tool/*: SkipByDesign # Only meant to run on vm
dartdev/test/*: SkipByDesign # Only meant to run on vm
front_end/test/*: SkipByDesign # Only meant to run on vm, most use dart:mirrors and dart:io
front_end/tool/*: SkipByDesign # Only meant to run on vm
modular_test/test/memory_pipeline_test: Slow, Pass
modular_test/test/validate_pipeline_test: Slow, Pass
modular_test/test/validate_suite_test: Slow, Pass
nnbd_migration/test/*: SkipByDesign # Uses mirrors
nnbd_migration/tool/*: SkipByDesign # Only meant to run on vm
smith/test/*: SkipByDesign # Only meant to run on vm
status_file/test/normalize_test: SkipByDesign # Uses dart:io
status_file/test/parse_and_normalize_test: SkipByDesign # Uses dart:io
status_file/test/repo_status_files_test: SkipByDesign # Uses dart:io
telemetry/test/*: SkipByDesign # Only meant to run on vm
test_runner/test/*: SkipByDesign # Only meant to run on vm
testing/*: SkipByDesign # Only meant to run on vm
wasm/*: SkipByDesign # Only meant to run on vm

[ $mode == debug ]
compiler/test/deferred/load_graph_segmentation_test: Slow, Pass
compiler/test/deferred/load_mapping_test: Slow, Pass
compiler/test/end_to_end/dart2js_batch_test: Slow, Pass
compiler/test/end_to_end/exit_code_test: Slow, Pass
vm/test/kernel_front_end_test: SkipSlow
vm_snapshot_analysis/test/precompiler_trace_test: SkipSlow

[ $runtime == dart_precompiled ]
*: SkipByDesign # The pkg test framework imports dart:mirrors.

[ $runtime == vm ]
analysis_server/test/benchmarks_test: Slow, Pass
analysis_server/test/domain_completion_test: Slow, Pass
analysis_server/test/edit/refactoring_test: Slow, Pass
analysis_server/test/integration/*: Slow, Pass
analysis_server/test/services/completion/dart/imported_reference_contributor_test: Slow, Pass
analysis_server/test/services/completion/dart/keyword_contributor_test: Slow, Pass
analysis_server/test/services/completion/dart/local_reference_contributor_test: Slow, Pass
analysis_server/test/services/completion/dart/type_member_contributor_test: Slow, Pass
analysis_server/test/services/refactoring/extract_method_test: Slow, Pass
analysis_server/test/services/refactoring/inline_method_test: Slow, Pass
analysis_server/test/socket_server_test: Skip # Pass, Slow
analysis_server/test/src/plugin/plugin_manager_test: Slow, Pass
analyzer/test/generated/strong_mode_driver_test: Slow, Pass
analyzer/test/src/dart/analysis/driver_resolution_kernel_test: Slow, Pass
analyzer/test/src/dart/analysis/driver_test: Slow, Pass
analyzer/test/src/task/strong/inferred_type_test: Slow, Pass
analyzer/tool/experiments/experiments_test: Skip # https://github.com/dart-lang/sdk/issues/46277
analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test: Slow, Pass
analyzer_plugin/test/src/utilities/completion/optype_test: Slow, Pass
dartdev/test/*: Slow, Pass
dds/test/dap/integration/*: Slow, Pass

[ $runtime != vm ]
dart2js_info/test/*: SkipByDesign # Only meant to run on vm
dds/test/*: SkipByDesign # Only meant to run on vm
dev_compiler/test/options/*: SkipByDesign
front_end/test/hot_reload_e2e_test: Skip
frontend_server/test/*: SkipByDesign # Only meant to run on vm
js_runtime/test/*: SkipByDesign # Only meant to run on vm
js_shared/test/*: SkipByDesign # Only meant to run on vm
vm/test/*: SkipByDesign # Only meant to run on vm
vm_service/test/*: SkipByDesign # Uses dart:io
vm_snapshot_analysis/test/*: SkipByDesign # Only meant to run on vm

[ $system == windows ]
front_end/test/fasta/bootstrap_test: Skip # Issue 31902
front_end/test/fasta/strong_test: Pass, Slow, Timeout
front_end/test/incremental_dart2js_load_from_dill_test: Pass, Slow

[ $browser ]
*/test/analyzer_test: SkipByDesign # No need to run analysis tests on browser bots
_fe_analyzer_shared/test/*: SkipByDesign # Only meant to run on vm
analysis_server/test/*: SkipByDesign # Uses dart:io.
analysis_server/tool/spec/check_all_test: SkipByDesign # Uses dart:io.
analyzer/test/*: SkipByDesign # Uses dart:io.
analyzer/tool/summary/check_test: SkipByDesign # Uses dart:io.
analyzer_cli/*: SkipByDesign # Uses dart:io.
compiler/tool/*: SkipByDesign # Only meant to run on vm
front_end/tool/*: SkipByDesign # Only meant to run on vm
kernel/test/*: SkipByDesign # Uses dart:io and bigints.
status_file/*: SkipByDesign # Only meant to run on the standalone VM.
testing/test/analyze_test: SkipByDesign

[ $checked ]
compiler/test/codegen/value_range_test: Slow, Pass
compiler/test/end_to_end/exit_code_test: Slow, Pass
compiler/test/end_to_end/output_type_test: Slow, Pass
compiler/test/end_to_end/uri_retention_test: Slow, Pass
compiler/test/jsinterop/declaration_test: Slow, Pass
compiler/test/jsinterop/interop_anonymous_unreachable_test: Slow, Pass
compiler/test/jsinterop/world_test: Slow, Pass
compiler/test/sourcemaps/stacktrace_test: Slow, Pass

[ !$checked ]
compiler/test/end_to_end/exit_code_test: SkipByDesign # This tests requires checked mode.
compiler/test/jsinterop/declaration_test: Slow, Pass

[ $jscl ]
kernel/test/*: SkipByDesign # Uses dart:io and bigints.

[ $arch == x64 && $runtime == vm && $system == windows && $checked ]
analyzer/test/src/task/strong/inferred_type_test: Slow, Pass

[ $builder_tag != dart2js_analyzer && $compiler == dart2js ]
analysis_server/test/*: Skip # Issue 26813
analyzer/test/*: Skip # Issue 26813
analyzer/tool/*: Skip # Issue 26813

[ $compiler != dart2analyzer && $runtime != vm ]
dev_compiler/test/*: Skip
modular_test/test/find_sdk_root1_test: SkipByDesign
modular_test/test/io_pipeline_test: SkipByDesign
modular_test/test/loader/loader_test: SkipByDesign
modular_test/test/specification_parser_test: SkipByDesign
modular_test/test/src/find_sdk_root2_test: SkipByDesign

[ $compiler == dart2js && $runtime == d8 ]
front_end/test/src/base/uri_resolver_test: SkipByDesign # Relies on access to file system

[ $compiler == dart2js && $runtime != d8 ]
front_end/test/mixin_export_test: RuntimeError # Issue 30576

[ $compiler == dart2js && $browser ]
crypto/test/sha1_test: Slow, Pass
crypto/test/sha256_test: Slow, Pass

[ $compiler == dart2js && $checked ]
crypto/test/base64_test: Slow, Pass

[ $compiler == dart2js && $host_checked ]
js_ast/test/printer_callback_test: Slow, Pass
js_ast/test/string_escape_test: Slow, Pass

[ $compiler == dart2js && ($runtime == chrome || $runtime == ff) ]
async/test/stream_zip_test: SkipSlow # Times out. Issue 22050
collection/test/unmodifiable_collection_test: SkipSlow # Times out. Issue 22050

[ $runtime == vm && $system == windows ]
analysis_server/test/analysis/get_errors_test: Skip # runtime error, Issue 22180
analysis_server/test/src/plugin/plugin_manager_test: Slow, Pass # Issue 34231
analyzer/test/src/task/strong/checker_test: Slow, Pass
analyzer/tool/task_dependency_graph/check_test: Slow, Pass

[ $runtime == vm && $system == windows && $checked ]
front_end/tool/perf_test: Slow, Pass

[ $runtime == vm && $checked ]
analysis_server/test/completion_test: Slow, Pass
analysis_server/test/integration/edit/sort_members_test: Slow, Pass
analysis_server/test/socket_server_test: Skip # Pass, Slow

# Timeout. These tests do not run efficiently on our simulator or low-end
# devices.
[ $runtime == vm && ($arch == simarm || $arch == simarm64 || $arch == simarm64c || $arch == simriscv32 || $arch == simriscv64) ]
*: Skip

[ $mode == debug || $runtime != vm || $system == android ]
vm/test/modular_kernel_plus_aot_test: SkipByDesign # This test should only run if binary is run from build dir

[ $mode != release || $runtime != vm ]
front_end/test/fasta/*: Skip
front_end/tool/_fasta/*: Skip

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