# 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.
# Sections in this file should contain "$compiler == dartk" or
# "$compiler == dartkp".

io/process_sync_test: Pass, Slow # Spawns synchronously subprocesses in sequence.

[ $system == android ]
io/http_ban_http_embedder_test: Skip # Requires http server bound to non-loopback; not provided by system.
io/http_ban_http_normal_test: Skip # Requires http server bound to non-loopback; not provided by system.

[ $arch == ia32 && $builder_tag == optimization_counter_threshold ]
io/file_lock_test: SkipSlow # Timeout

[ $builder_tag == optimization_counter_threshold && $compiler == dartk ]
map_insert_remove_oom_test: Skip # Heap limit too low.

[ $compiler == dartk && $mode == debug && $runtime == vm ]
io/file_lock_test: Slow, Pass

[ $compiler == dartk && $mode == debug && $hot_reload ]
io/web_socket_ping_test: Crash

[ $compiler == dartk && $runtime == vm ]
no_support_debugger_test: Skip # kernel-service snapshot not compatible with flag disabled

[ $compiler == dartk && $system == windows ]
io/dart_std_io_pipe_test: Slow, Pass
io/secure_builtin_roots_test: Skip # Issues 32137 and 32138.
io/wait_for_event_isolate_test: Skip # Issues 32137 and 32138.
map_insert_remove_oom_test: Skip # Heap limit too low.

[ $compiler == dartk && $hot_reload ]
io/http_no_reason_phrase_test: Crash
io/http_outgoing_size_test: Crash

[ $compiler == dartk && $hot_reload_rollback ]
io/directory_chdir_test: Skip # Timeout
io/echo_server_stream_test: Slow, Pass

# Enabling of dartk for sim{arm,arm64} revealed these test failures, which
# are to be triaged.  Isolate tests are skipped on purpose due to the usage of
# batch mode.
[ $compiler == dartk && $simulator ]
io/file_blocking_lock_test: Crash # Please triage.
io/file_lock_test: Slow, Pass
io/http_bind_test: Slow, Pass
map_insert_remove_oom_test: Skip # Heap limit too low.

[ $compiler == dartk && ($hot_reload || $hot_reload_rollback) ]
io/addlatexhash_test: Skip # Timeout
io/http_advanced_test: Skip # Timeout
io/http_auth_digest_test: Crash
io/http_auth_test: Skip # Timeout
io/http_proxy_advanced_test: Skip # Timeout
io/http_read_test: Skip # Timeout
io/pipe_server_test: Skip # Timeout
io/socket_close_test: Skip # Timeout
io/socket_many_connections_test: Skip # Timeout
io/web_socket_compression_test: Skip # Timeout
io/web_socket_test: Skip # Timeout
regress_52715_test/measure: Skip # kernel-service interferes with measuring RSS

[ $compiler == dartkp && $mode == debug && $runtime == dart_precompiled ]
io/raw_socket_test: Crash
io/socket_finalizer_test: Crash
io/socket_info_ipv4_test: Crash
io/socket_info_ipv6_test: Crash
io/socket_port_test: Crash

[ $compiler == dartkp && $runtime == dart_precompiled ]
io/compile_all_test: Skip # We do not support --compile-all for precompilation
io/http_client_connect_test: Skip # Flaky.
io/http_content_length_test: Skip # Flaky.
io/http_proxy_advanced_test: Skip # Flaky
io/http_proxy_test: Skip # Flaky.
io/http_response_deadline_test: Skip # Flaky.
io/http_reuse_server_port_test: Skip # Flaky.
io/http_server_close_response_after_error_test: Skip # Flaky.
io/http_shutdown_test: Skip # Flaky.
io/raw_datagram_socket_test: Skip # Flaky.
io/raw_secure_server_closing_test: Skip # Flaky
io/raw_socket_test: Crash
io/secure_multiple_client_server_test: Skip # Flaky.
io/secure_server_closing_test: Skip # Flaky.
io/secure_server_socket_test: Skip # Flaky.
io/socket_many_connections_test: Skip # Flaky
io/web_socket_error_test: Skip # Flaky
io/web_socket_ping_test: Skip # Flaky.
io/web_socket_test: Skip # Flaky.
map_insert_remove_oom_test: Skip # Heap limit too low.
no_support_debugger_test: Skip # kernel-service snapshot not compatible with flag disabled

[ $compiler != dartk || $runtime != vm ]
check_for_aot_snapshot_jit_test: SkipByDesign # Test relies on paths, requires JIT test environment.

[ $sanitizer == asan || $sanitizer == lsan || $sanitizer == msan || $sanitizer == tsan ]
regress_52715_test/measure: Skip # Shadow memory and scudo quarantine interfere with measuring RSS
