# 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.

[ $arch == ia32 ]
link_natives_lazily_test: SkipByDesign # Not supported.
no_allow_absolute_addresses_test: SkipByDesign # Not supported.

[ $runtime == vm ]
typed_data_isolate_test: Pass, Slow # https://dartbug.com/36097: Slower while isolate groups are being gradually enabled in JIT mode.

[ $system == android ]
io/file_stat_test: Skip # Issue 26376
io/file_system_watcher_test: Skip # Issue 26376
io/file_test: Skip # Issue 26376
io/http_proxy_advanced_test: Skip # Issue 27638
io/http_proxy_test: Skip # Issue 27638
io/https_bad_certificate_test: Skip # Issue 27638
io/https_server_test: Skip # Issue 27638
io/non_utf8_output_test: Skip # The Android command runner doesn't correctly handle non-UTF8 formatted output. https://github.com/dart-lang/sdk/issues/28872
io/process_exit_test: Skip # Issue 29578
io/process_path_environment_test: Skip # Issue 26376
io/process_path_test: Skip # Issue 26376
io/process_segfault_test: Skip # Issue 26376
io/raw_datagram_socket_test: Skip # Issue 27638
io/raw_secure_server_closing_test: Skip # Issue 27638
io/raw_secure_server_socket_test: Skip # Issue 27638
io/raw_secure_socket_pause_test: Skip # Issue 27638
io/raw_secure_socket_test: Skip # Issue 27638
io/regress_21160_test: Skip # Issue 27638
io/resolve_symbolic_links_test: Skip # Issue 26376
io/secure_bad_certificate_test: Skip # Issue 27638
io/secure_client_raw_server_test: Skip # Issue 27638
io/secure_client_server_test: Skip # Issue 27638
io/secure_multiple_client_server_test: Skip # Issue 27638
io/secure_server_client_certificate_test: Skip # Issue 27638
io/secure_server_closing_test: Skip # Issue 27638
io/secure_server_socket_test: Skip # Issue 27638
io/secure_session_resume_test: Skip # Issue 27638
io/secure_socket_alpn_test: Skip # Issue 27638
io/secure_socket_test: Skip # Issue 27638
io/socket_upgrade_to_secure_test: Skip # Issue 27638

[ $system == windows ]
io/process_sync_test: Pass, Timeout # Issue 24596
io/sleep_test: Pass, Fail # Issue 25757
io/socket_info_ipv6_test: Skip
verbose_gc_to_bmu_test: Skip

[ $arch == arm && $mode == release && $runtime == dart_precompiled && $system == android ]
io/stdout_stderr_non_blocking_test: Pass, Timeout # Issue 28426

[ $arch == x64 && $mode == release && $runtime == vm && $system == linux ]
io/http_bind_test: Pass, Timeout # Issue 35192

[ $compiler != dart2analyzer && $system == windows ]
io/platform_resolved_executable_test/06: RuntimeError # Issue 23641

[ $mode == release && $runtime == vm && $system == macos ]
io/http_server_close_response_after_error_test: Pass, Timeout # Issue 28370: timeout.
io/named_pipe_script_test: Pass, RuntimeError # Issue 28737

[ $mode == release && $runtime == vm && $system == windows ]
io/http_server_close_response_after_error_test: Pass, Timeout # Issue 28370: timeout.

[ $runtime == dart_precompiled && $system == linux && ($arch == simarm || $arch == simarm64 || $arch == simarm64c || $arch == x64) ]
io/stdout_stderr_non_blocking_test: Pass, Timeout # Issue 35192

[ $runtime == vm && ($arch == arm || $arch == arm64) ]
io/dart_std_io_pipe_test: Timeout, Pass
io/file_input_stream_test: Skip # Issue 26109
io/file_stream_test: Skip # Issue 26109
io/file_typed_data_test: Skip # Issue 26109
io/process_sync_test: Timeout, Pass

[ $runtime == vm && ($arch == simarm || $arch == simarm64 || $arch == simarm64c) ]
io/dart_std_io_pipe_test: Timeout, Pass
io/http_client_stays_alive_test: Skip # Spawns process in Dart2 mode.
io/process_sync_test: Timeout, Pass
