# 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 ]
lazy_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
