# Copyright (c) 2017, 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.
# WARNING:
# Tests using the multitest feature where failure is expected should *also* be
# listed in tests/lib/analyzer/analyze_tests.status without the "standalone"
# prefix.
io/http_close_stack_overflow_test: Skip # The test is heavy loaded. Should be used for manual test.
io/http_linklocal_ipv6_test: SkipByDesign # This needs manual test.
io/non_utf8_directory_test: Skip # Issue 33519. Temp files causing bots to go purple.
io/non_utf8_file_test: Skip # Issue 33519. Temp files causing bots to go purple.
io/non_utf8_link_test: Skip # Issue 33519. Temp files causing bots to go purple.
packages_file_test: Skip # Issue 26715
packages_file_test/none: Skip # contains no tests.

[ $builder_tag == asan ]
io/process_detached_test: Slow, Pass

[ $builder_tag == dwarf ]
io/socket_connect_stacktrace_test: SkipByDesign # Assumes stacktrace can be inspected directly, without decoding

[ $builder_tag != dwarf ]
io/socket_connect_dwarf_stacktrace_test: SkipByDesign # Is set up to decode dwarf stack traces

[ $builder_tag == no_ipv6 ]
io/http_ipv6_test: SkipByDesign
io/http_loopback_test: SkipByDesign
io/http_proxy_advanced_test: SkipByDesign
io/socket_bind_test: SkipByDesign
io/socket_info_ipv6_test: SkipByDesign
io/socket_ipv6_test: SkipByDesign
io/socket_source_address_test: SkipByDesign

[ $builder_tag == obfuscated ]
no_such_method_error_with_invocation_test: SkipByDesign # Checks the member names in the NSM error message.

[ $compiler == app_jitk ]
io/socket_sigpipe_test: SkipByDesign # Spawns server process using Platform.executable

[ $compiler == dart2analyzer ]
deferred_transitive_import_error_test: Skip

[ $compiler == dartkp ]
causal_async_stack_test: Skip # Flaky.

[ $mode == product ]
io/stdio_implicit_close_test: Skip # SkipByDesign
no_profiler_test: SkipByDesign
no_support_debugger_test: SkipByDesign
no_support_disassembler_test: SkipByDesign
no_support_il_printer_test: SkipByDesign
no_support_service_test: SkipByDesign
no_support_timeline_test: SkipByDesign
verbose_gc_to_bmu_test: SkipByDesign # No verbose_gc in product mode

[ $runtime == dart_precompiled ]
http_launch_test: Skip
io/addlatexhash_test: Skip
io/socket_sigpipe_test: SkipByDesign # Spawns server process using Platform.executable
io/wait_for_event_isolate_test: SkipByDesign # Uses mirrors.
io/wait_for_event_microtask_test: SkipByDesign # Uses mirrors.
io/wait_for_event_nested_microtask_test: SkipByDesign # Uses mirrors.
io/wait_for_event_nested_timer_microtask_test: SkipByDesign # Uses mirrors.
io/wait_for_event_nested_timer_test: SkipByDesign # Uses mirrors.
io/wait_for_event_nested_waits_test: SkipByDesign # Uses mirrors.
io/wait_for_event_timer_test: SkipByDesign # Uses mirrors.
io/wait_for_event_zone_caught_error_test: SkipByDesign # Uses mirrors.
io/wait_for_event_zone_test: SkipByDesign # Uses mirrors.
io/wait_for_test: SkipByDesign # Uses mirrors.
verbose_gc_to_bmu_test: Skip # Attempts to spawn dart using Platform.executable

# Fuchsia test runner doesn't support multi-tests yet.
[ $system == fuchsia ]
deny_listed_test: Skip
io/dart_std_io_pipe_test: Skip
io/platform_resolved_executable_test: Skip
io/signals_exception_test: Skip
io/socket_ipv6_test: Skip
package/invalid_uri_test: Skip
regress_29350_test: Skip

[ $system != macos ]
io/https_connection_closed_during_handshake_test: SkipByDesign # long_ssl_cert_evaluation needed for long handshake is only supported on mac.
io/https_nonblocking_trust_evaluation_test: SkipByDesign

[ $builder_tag == swarming && $system == macos ]
io/*: Skip # Issue 30618

[ $compiler == none && $runtime == vm && $system == fuchsia ]
*: Skip # Not yet triaged.

[ $compiler != none && $runtime != dart_precompiled && $runtime != vm ]
env_test: Skip # This is testing a vm command line parsing scenario.

[ $runtime == vm && $system == linux ]
io/http_basic_test: Slow, Pass # Issue 28046, These tests might be slow on an opt counter threshold bot. They also time out on the bot occasionally => flaky test issue 28046

[ $system == macos && ($runtime == dart_precompiled || $runtime == vm) ]
io/raw_secure_server_socket_test: Crash
io/raw_server_socket_cancel_test: Skip # Issue 28182 # This test sometimes hangs on Mac.
io/socket_many_connections_test: Skip # This test fails with "Too many open files" on the Mac OS buildbot. This is expected as MacOS by default runs with a very low number of allowed open files ('ulimit -n' says something like 256).

[ $arch == arm || $arch == arm64 || $runtime != vm || $system == android ]
fragmentation_test: SkipSlow
fragmentation_typed_data_test: SkipSlow

[ $arch == simarm || $arch == simarm64 || $arch == simarm64c ]
io/socket_sigpipe_test: SkipByDesign # Test uses ffi

[ $compiler == dart2js || $compiler == dartdevc || $compiler == dartdevk ]
*: SkipByDesign

[ $runtime == dart_precompiled || $runtime == vm ]
deferred_transitive_import_error_test: Skip

[ $hot_reload || $hot_reload_rollback ]
io/addlatexhash_test: Crash # Issue 31252
io/many_directory_operations_test: SkipSlow
io/many_file_operations_test: SkipSlow
package/*: SkipByDesign # Launches VMs in interesting ways.
typed_data_isolate_test: SkipSlow
