# 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
analysis_server/tool/spec/check_all_test: Skip # Issue 29133
analyzer/test/generated/compile_time_error_code_driver_test: Slow, Pass
analyzer/test/generated/compile_time_error_code_kernel_test: Slow, Pass
analyzer/test/generated/compile_time_error_code_test: Slow, Pass
analyzer/test/generated/hint_code_kernel_test: Slow, Pass
analyzer/test/generated/non_error_resolver_driver_test: Slow, Pass
analyzer/test/generated/non_error_resolver_kernel_test: Slow, Pass
analyzer/test/generated/static_type_warning_code_kernel_test: Slow, Pass
analyzer/test/generated/static_warning_code_driver_test: Slow, Pass
analyzer/test/generated/static_warning_code_kernel_test: Slow, Pass
analyzer/test/generated/strong_mode_kernel_test: Slow, Pass
analyzer/test/src/dart/analysis/driver_kernel_test: Slow, Pass
analyzer/test/src/summary/resynthesize_kernel_test: Slow, Pass
analyzer/test/src/task/strong/checker_test: Slow, Pass
analyzer2dart/test/*: Skip # Analyzer2dart is not maintained anymore.
analyzer_plugin/test/plugin/folding_mixin_test: Slow, Pass
analyzer_plugin/tool/spec/check_all_test: Skip # Issue 29133
dart_messages/test/dart_messages_test: Skip # Requires a package root.
dev_compiler/gen/*: SkipByDesign # Skip dev_compiler codegen tests
dev_compiler/test/codegen/*: Skip # Skip dev_compiler codegen tests
dev_compiler/test/codegen_test: Skip # Skip dev_compiler codegen tests
dev_compiler/test/options/*: Skip # Skip dev_compiler codegen tests
dev_compiler/test/sourcemap/*: SkipByDesign # Skip dev_compiler codegen tests
dev_compiler/test/sourcemap/testfiles/*: SkipByDesign # Skip dev_compiler codegen tests
dev_compiler/test/worker/*: Skip # Skip dev_compiler codegen tests
front_end/test/fasta/analyze_test: Pass, Slow
front_end/test/fasta/ast_builder_test: Pass, Slow
front_end/test/fasta/bootstrap_test: Pass, Slow
front_end/test/fasta/compile_test: Pass, ExtraSlow
front_end/test/fasta/outline_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/shaker_test: Skip # Issue http://dartbug.com/32531
front_end/test/fasta/strong_test: Pass, ExtraSlow
front_end/test/minimal_incremental_kernel_generator_test: Slow, Pass
front_end/test/whole_program_test: Slow, Pass
front_end/testcases/*: Skip # These are not tests but input for tests.
front_end/tool/incremental_perf_test: Slow, Pass
kernel/test/closures_test: Slow, Pass
kernel/testcases/*: Skip # These are not tests but input for tests.
vm/test/frontend_server_test: Slow, Pass
vm/test/transformations/type_flow/transformer_test: Slow, Pass
vm/testcases/*: SkipByDesign # These are not tests but input for tests.

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

[ $compiler != dart2analyzer ]
analyzer/test/src/summary/summarize_fasta_test: RuntimeError, Slow

[ $compiler == dart2js ]
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.
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
collection/test/equality_test/01: Fail # Issue 1533
collection/test/equality_test/02: Fail # Issue 1533
collection/test/equality_test/03: Fail # Issue 1533
collection/test/equality_test/04: Fail # Issue 1533
collection/test/equality_test/05: Fail # Issue 1533
collection/test/equality_test/none: Pass, Fail # Issue 14348
compiler/tool/*: 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
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
testing/*: SkipByDesign # Only meant to run on vm
typed_data/test/typed_buffers_test/01: Fail # Not supporting Int64List, Uint64List.

[ $compiler == none ]
kernel/test/closures_test: Fail

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

[ $runtime == flutter ]
status_file/*: SkipByDesign # Only meant to run on the standalone VM.

[ $runtime == jsshell ]
async/test/stream_zip_test: RuntimeError, OK # Issue 26103. Timers are not supported.
front_end/test/*: RuntimeError, OK, Pass # Issue 26103. Timers are not supported.
kernel/test/*: RuntimeError, OK # Issue 26103. Timers are not supported.

[ $runtime == vm ]
analysis_server/test/benchmarks_test: Pass, Slow
analysis_server/test/completion_test: Pass, Slow
analysis_server/test/integration/analysis/error_test: Pass, Slow
analysis_server/test/integration/analysis/lint_test: Pass, Slow
analysis_server/test/integration/completion: Pass, Slow
analysis_server/test/integration/edit/format_test: Pass, Slow
analysis_server/test/integration/edit/import_elements_test: Pass, Slow
analysis_server/test/integration/edit/organize_directives_test: Pass, Slow
analysis_server/test/integration/search/find_top_level_declarations_test: Pass, RuntimeError # 31571
analyzer/test/file_system/physical_resource_provider_test: Pass, Fail # Issue 25472
analyzer/test/src/task/strong/inferred_type_test: Pass, Slow
analyzer_cli/test/driver_test: Pass, Slow, Timeout
mutation_observer: Skip # Skip tests on the VM if the package depends on dart:html

[ $runtime != vm ]
dev_compiler/test/options/*: SkipByDesign
front_end/test/src/incremental/hot_reload_e2e_test: Skip
vm/test/*: SkipByDesign # Only meant to run on vm

[ $system == linux ]
analysis_server/test/integration/analysis/package_root_test: Pass, RuntimeError # Issue 33382

[ $system == windows ]
front_end/test/fasta/ast_builder_test: Pass, Slow, Timeout
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
front_end/test/src/incremental/hot_reload_e2e_test: Skip # Issue 31901
front_end/test/whole_program_test: Skip # Issue 31902

[ $browser ]
*/test/analyzer_test: SkipByDesign # No need to run analysis tests on browser bots
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/tool/task_dependency_graph/check_test: SkipByDesign # Uses dart:io.
analyzer2dart/*: SkipByDesign # Uses dart:io.
analyzer_cli/*: SkipByDesign # Uses dart:io.
compiler/tool/*: SkipByDesign # Only meant to run on vm
dart_messages/test/dart_messages_test: Skip # Uses dart:io.
front_end/tool/*: SkipByDesign # Only meant to run on vm
http_server/test/*: Fail, OK # Uses dart:io.
kernel/test/*: SkipByDesign # Uses dart:io and bigints.
observe/test/transformer_test: Fail, OK # Uses dart:io.
observe/test/unique_message_test: SkipByDesign # Uses dart:io.
status_file/*: SkipByDesign # Only meant to run on the standalone VM.
testing/test/analyze_test: SkipByDesign

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

[ $no_preview_dart_2 ]
dev_compiler/*: SkipByDesign # uses Dart 2.

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

# analyzer using the fasta parser
[ $builder_tag == analyzer_use_fasta && $runtime == vm ]
analysis_server/test/analysis/get_errors_test: Fail
analysis_server/test/completion_test: Fail
analysis_server/test/domain_completion_test: Fail
analysis_server/test/edit/fixes_test: Fail
analysis_server/test/integration/analysis/package_root_test: Pass, RuntimeError # Issue 33382
analysis_server/test/services/completion/dart/keyword_contributor_test: Fail
analysis_server/test/services/completion/dart/override_contributor_test: Fail
analysis_server/test/services/completion/statement/statement_completion_test: Fail
analysis_server/test/services/correction/fix_test: Fail
analysis_server/test/services/refactoring/extract_local_test: Fail
analyzer/test/generated/compile_time_error_code_driver_test: Fail
analyzer/test/generated/compile_time_error_code_test: Fail
analyzer/test/generated/declaration_resolver_test: Fail
analyzer/test/generated/hint_code_driver_test: Fail
analyzer/test/generated/hint_code_test: Fail
analyzer/test/generated/invalid_code_driver_test: Fail
analyzer/test/generated/non_error_resolver_driver_test: Fail
analyzer/test/generated/non_error_resolver_test: Fail
analyzer/test/generated/parser_test: Fail
analyzer/test/generated/resolver_test: Fail
analyzer/test/generated/utilities_test: Fail
analyzer/test/src/context/context_test: Fail
analyzer/test/src/dart/constant/evaluation_test: Fail
analyzer/test/src/summary/prelinker_test: Fail
analyzer/test/src/summary/summarize_ast_strong_test: Fail
analyzer/test/src/summary/summarize_ast_test: Fail
analyzer_plugin/test/src/utilities/completion/completion_target_test: Fail
analyzer_plugin/test/src/utilities/completion/optype_test: Fail
analyzer_plugin/test/src/utilities/visitors/local_declaration_visitor_test: Fail
analyzer_plugin/test/utilities/completion/completion_target_test: Fail

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

# ILLEGAL_ASYNC_RETURN_TYPE warnings appear on some subset of Linux configurations,
# but do not always fail.
[ $compiler == dart2analyzer && $system == linux && !$preview_dart_2 && !$strong ]
analyzer/test/src/dart/ast/ast_test: StaticWarning, Pass
analyzer/test/src/summary/expr_builder_test: StaticWarning, Pass
analyzer/test/src/summary/resynthesize_ast_test: StaticWarning, Pass
analyzer/test/src/summary/resynthesize_kernel_test: StaticWarning, Pass
front_end/test/incremental_dart2js_load_from_dill_test: StaticWarning, Pass

# ILLEGAL_ASYNC_RETURN_TYPE warnings
[ $compiler == dart2analyzer && !$preview_dart_2 && !$strong && ($system == macos || $system == windows) ]
analyzer/test/src/dart/ast/ast_test: StaticWarning
analyzer/test/src/summary/expr_builder_test: StaticWarning
analyzer/test/src/summary/resynthesize_ast_test: StaticWarning
analyzer/test/src/summary/resynthesize_kernel_test: StaticWarning
front_end/test/incremental_dart2js_load_from_dill_test: StaticWarning

# Analyze dev_compiler but only run its tests on the vm
[ $compiler != dart2analyzer && $runtime != vm ]
dev_compiler/test/*: Skip

[ $compiler == dart2js && $runtime == chrome && $system == macos ]
third_party/di_tests/di_test: Pass, Slow # Issue 22896

[ $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 && $runtime == drt ]
async/test/stream_zip_test: RuntimeError, Pass # Issue 18548

[ $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 && $csp ]
mutation_observer: Skip # This test cannot run under CSP because it is injecting a JavaScript polyfill

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

[ $compiler == none && $runtime == drt ]
front_end/*: SkipByDesign
mutation_observer: Skip # Issue 21149
unittest/*: Skip # Issue 21949

[ $runtime == vm && $system == windows ]
analysis_server/test/analysis/get_errors_test: Skip # runtime error, Issue 22180
analysis_server/test/benchmarks_test: RuntimeError # Issue 32355
analysis_server/test/integration/*: Skip # Issue 32356
analyzer/test/generated/non_error_resolver_kernel_test: RuntimeError # Issue 30785
analyzer/test/src/task/strong/checker_test: Pass, Slow
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: Pass, Slow
analysis_server/test/integration/edit/sort_members_test: Pass, Slow
analysis_server/test/services/correction/fix_test: Pass, Slow
analysis_server/test/socket_server_test: Skip # Pass, Slow
analyzer/test/generated/non_error_resolver_kernel_test: Pass, Slow
analyzer/test/src/summary/resynthesize_ast_test: Pass, Slow
analyzer/test/src/task/strong/front_end_inference_test: Pass, Slow

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

[ $arch != x64 || $compiler != none || $mode != release || $runtime != vm ]
front_end/test/whole_program_test: SkipByDesign

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

[ $mode != release || $runtime != vm || $system == windows ]
kernel/test/closures_test: Skip
