# 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

# 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/compile_test: Pass, Slow
front_end/test/fasta/bootstrap_test: Pass, Slow

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

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

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

[ $runtime == vm && $mode == release && $system == linux ]
kernel/test/closures_test: Slow, Pass
kernel/test/baseline_type_propagation_test: Slow, Pass

[ $runtime != vm || $mode != release || $system != linux ]
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

[ $compiler == none && ($runtime == drt || $runtime == dartium) ]
mutation_observer: Skip # Issue 21149
unittest/*: Skip # Issue 21949
lookup_map/*: SkipByDesign
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/src/summary/resynthesize_ast_test: Pass, Slow

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

[ $runtime == vm && $use_sdk ]
front_end/test/fasta/compile_test: Skip # Issue 28629
front_end/test/fasta/kompile_test: Skip # Issue 28629
front_end/test/fasta/outline_test: Skip # Issue 28629
front_end/test/fasta/bootstrap_test: Skip # Issue 28629

[ $runtime == vm && $use_sdk == false ]
front_end/test/incremental_kernel_generator_test: Skip # Issue 28698
front_end/test/incremental_resolved_ast_generator_test: Skip # Issue 28698
front_end/tool/perf_test: Skip # Issue 28698

[ $runtime == vm && $use_sdk == true ]
front_end/tool/fasta_perf_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/source_factory_test: RuntimeError # Issue 26828
kernel/test/baseline_type_propagation_test: RuntimeError, Timeout # Issue 28243
kernel/test/baseline_spec_mode_test: RuntimeError # Issue 28243
kernel/test/baseline_strong_mode_test: RuntimeError # Issue 28243

[ $runtime == vm && $system == macos]
kernel/test/baseline_type_propagation_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
lookup_map/test/version_check_test: SkipByDesign # Only meant to run in 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 && $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.
lookup_map/test/lookup_map_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 == 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 == ie10 ]
analyzer/test/generated/java_core_test: Pass, Timeout # Issue 19747
typed_data/test/typed_buffers_test/none: Fail # Issue 17607 (I put this here explicitly, since this is not the same as on ie9)

[ $runtime == ie11 ]
kernel/test/verify_test: Skip # Times out. Issue 27935

[ $runtime == safarimobilesim ]
# Unexplained errors only occuring 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 == simmips || $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 && $system == windows ]
analyzer_cli/test/driver_test: Pass, Slow
analyzer/test/src/task/strong/checker_test: Pass, Slow
