# 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/large_file_read_small_file_test: Slow, Pass # Test reads small file 1M times
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.
package/scenarios/invalid/invalid_utf8_test: CompileTimeError
package/scenarios/invalid/non_existent_packages_file_test: CompileTimeError

[ $builder_tag == dwarf ]
io/socket_connect_stacktrace_test: SkipByDesign # Assumes stacktrace can be inspected directly, without decoding
regress_53519_test.dart: SkipByDesign # Relies on symbolic stack traces.
stack_trace/full1_test: SkipByDesign # Relies on symbolic stack traces.
stack_trace/full2_test: SkipByDesign # Relies on symbolic stack traces.
stack_trace/full3_test: SkipByDesign # Relies on symbolic stack traces.
stack_trace/rethrow_error_test/none: SkipByDesign # Relies on symbolic stack traces.
stack_trace/rethrow_error_test/withtraceparameter: SkipByDesign # Relies on symbolic stack traces.
stack_trace/rethrow_nonerror_test: SkipByDesign # Relies on symbolic stack traces.
stack_trace/stack_trace_test: SkipByDesign # Relies on symbolic stack traces.

[ $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.
regress_53519_test.dart: SkipByDesign # Relies on symbolic stack traces.

[ $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/issue_46436_test: SkipByDesign # Uses mirrors.
io/print_test: SkipByDesign # Attempts to spawn dart using Platform.executable
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

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

[ $sanitizer == tsan ]
io/https_client_certificate_test: Slow, Pass

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

[ $simulator ]
io/socket_sigpipe_test: SkipByDesign # Test uses ffi

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

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

[ $mode == product && $runtime == dart_precompiled ]
dwarf_stack_trace_test: SkipByDesign # Due to instruction canonicalization we can end up having the wrong names in stack traces.

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

[ $compiler == dart2js || $compiler == dart2wasm || $compiler == ddc ]
*: 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
