# 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_plugin/tool/spec/check_all_test: Skip  # Issue 29133

analyzer/test/generated/compile_time_error_code_driver_test: Slow, Pass
analyzer/test/generated/non_error_resolver_driver_test: Slow, Pass
analyzer/test/generated/static_warning_code_driver_test: Slow, Pass
analyzer/test/generated/compile_time_error_code_test: Slow, Pass
analyzer/test/src/summary/resynthesize_kernel_test: Slow, Pass

# Analyzer2dart is not maintained anymore.
analyzer2dart/test/*: Skip

dart_messages/test/dart_messages_test: Skip  # Requires a package root.

# Skip dev_compiler codegen tests
dev_compiler/test/codegen/*: Skip
dev_compiler/gen/*: SkipByDesign

# Anything in rasta is input to fasta unit tests and shouldn't be run as tests.
front_end/test/fasta/rasta/*: SkipByDesign

# sdk_test would take too long to complete, and should be run in a different
# way.
front_end/test/fasta/sdk_test: SkipByDesign

front_end/test/fasta/bootstrap_test: Pass, Slow
front_end/test/fasta/compile_test: Pass, Slow
front_end/test/fasta/strong_test: Pass, Slow
front_end/test/fasta/outline_test: Pass, Slow
front_end/test/fasta/ast_builder_test: Pass, Slow

# These are not tests but input for tests.
kernel/testcases/*: Skip
front_end/testcases/*: Skip

front_end/test/fasta/analyze_test: Pass, Slow

kernel/test/closures_test: Slow, Pass

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

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

# Don't analyze tests in strong mode yet
[ $compiler == dart2analyzer && $builder_tag == strong ]
*: Skip # Issue 28649

# Analyze dev_compiler but don't run its tests
[ $compiler != dart2analyzer ]
dev_compiler/test/*: Skip

[ $compiler == dart2analyzer ]
dev_compiler/test/options/*: SkipByDesign
dev_compiler/test/codegen_test: MissingCompileTimeError # Issue 30245

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

[ $runtime == vm && $mode == debug ]
analysis_server/test/completion_test: Pass, Slow

[ $runtime == vm && $checked ]
analysis_server/test/completion_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: Skip # Timing out even with Pass, Slow: Issue 30796
analyzer/test/src/summary/resynthesize_ast_test: Pass, Slow
analyzer/test/src/task/strong/front_end_inference_test: Pass, Slow

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

[ $runtime == vm && $use_sdk ]
front_end/test/fasta/*: Skip # Issue 28629
compiler/tool/generate_kernel_test*: Skip # Issue 28629
front_end/test/src/incremental/hot_reload_e2e_test: Skip # Issue 28629

[ $runtime == vm && ! $use_sdk ]
front_end/tool/perf_test: Skip # Issue 28698

[ $runtime == vm ]
front_end/tool/perf_test: Skip # Issue 30825

[ $runtime == vm && $use_sdk ]
front_end/tool/fasta_perf_test: SkipByDesign # depends on patched_sdk which is not built into the sdk
front_end/test/kernel_generator_test: SkipByDesign # depends on patched_sdk which is not built into the sdk
front_end/test/summary_generator_test: SkipByDesign # depends on patched_sdk which is not built into the sdk
front_end/test/mixin_export_test: SkipByDesign # depends on patched_sdk which is not built into the sdk

[ $runtime == vm && $system == windows]
analysis_server/*: Skip # Issue 27557
analysis_server/test/analysis/get_errors_test: Skip # runtime error, Issue 22180
analysis_server/test/integration/analysis/analysis_options_test: RuntimeError # Issue 24796
analyzer/test/generated/all_the_rest_test: Fail # Issue 21772
analyzer/test/generated/non_error_resolver_kernel_test: RuntimeError # Issue 30785
analyzer/test/generated/source_factory_test: RuntimeError # Issue 26828
kernel/test/baseline_spec_mode_test: RuntimeError # Issue 28243
kernel/test/baseline_strong_mode_test: RuntimeError # Issue 28243
analyzer/tool/task_dependency_graph/check_test: Slow, Pass

[ $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
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/tool/*: SkipByDesign # Only meant to run on vm
telemetry/test/*: SkipByDesign # Only meant to run on vm
typed_data/test/typed_buffers_test/01: Fail # Not supporting Int64List, Uint64List.
front_end/test/incremental_kernel_generator_test: SkipByDesign # Uses dart:io
front_end/test/incremental_resolved_ast_generator_test: SkipByDesign # Uses dart:io
front_end/test/memory_file_system_test: CompileTimeError # Issue 23773
front_end/test/dependency_grapher_test: SkipByDesign # Uses dart:io
front_end/test/physical_file_system_test: SkipByDesign # Uses dart:io
front_end/test/src/base/file_repository_test: SkipByDesign # Uses dart:io
front_end/test/src/base/libraries_reader_test: SkipByDesign # Uses dart:io
front_end/test/src/base/processed_options_test: SkipByDesign # Uses dart:io
front_end/test/subpackage_relationships_test: SkipByDesign # Uses dart:io

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

[ $compiler == dart2js && $fast_startup ]
front_end/test/*: SkipByDesign # Tests written with dart:mirrors.

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

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

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

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


[ $compiler == dart2js && $runtime == drt ]
async/test/stream_zip_test: RuntimeError, Pass # Issue 18548

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

[ $runtime == safarimobilesim ]
# Unexplained errors only occurring on Safari 6.1 and earlier.
typed_data/test/typed_buffers_test: RuntimeError

[ $compiler == dart2js && $csp ]
# This test cannot run under CSP because it is injecting a JavaScript polyfill
mutation_observer: Skip

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

[ $browser ]
analyzer_cli/*: SkipByDesign # Uses dart:io.
*/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/task_dependency_graph/check_test: SkipByDesign # Uses dart:io.
analyzer/tool/summary/check_test: SkipByDesign # Uses dart:io.
analyzer2dart/*: SkipByDesign # Uses dart:io.
compiler/tool/*: SkipByDesign # Only meant to run on vm
front_end/tool/*: SkipByDesign # Only meant to run on vm
http_server/test/*: Fail, OK # Uses dart:io.
observe/test/transformer_test: Fail, OK # Uses dart:io.
observe/test/unique_message_test: SkipByDesign  # Uses dart:io.
dart_messages/test/dart_messages_test: Skip  # Uses dart:io.

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

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

[ $runtime == vm ]
analyzer/test/file_system/physical_resource_provider_test: Pass, Fail # Issue 25472
analyzer/test/src/task/strong/inferred_type_test: Pass, Slow
# Skip tests on the VM if the package depends on dart:html
mutation_observer: Skip

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

[ $arch == x64 && $runtime == vm && $system == windows && $checked ]
# See: https://build.chromium.org/p/client.dart/builders/analyzer-win7-release-be/builds/3113/steps/analyzer%20unit%20tests/logs/stdio
analyzer/test/src/task/strong/inferred_type_test: Pass, Slow

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

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

[ $runtime == vm ]
analyzer_cli/test/driver_test: Pass, Slow, Timeout

compiler/tool/perf_test: Fail # Unimplemented Typedef handling in kernel transformation.

[ $runtime == vm && $system == windows ]
analyzer/test/src/task/strong/checker_test: Pass, Slow

[ $browser ]
testing/test/analyze_test: SkipByDesign

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