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

check_for_aot_snapshot_jit_test: Slow, Pass # Has nested AOT compilation
io/non_utf8_output_test: NonUtf8Output

[ $arch == ia32 ]
check_for_aot_snapshot_jit_test: SkipByDesign # No AOT mode on IA32.
link_natives_lazily_test: SkipByDesign # Not supported.
no_allow_absolute_addresses_test: SkipByDesign # Not supported.

[ $system == android ]
embedder_samples_test: SkipByDesign # Uses subprocess calls to things not available on Android device
gn_py_test: SkipByDesign # Uses subprocess calls to things not available on Android device
io/file_stat_test: Skip # Issue 26376
io/file_system_watcher_test: Skip # Issue 26376
io/file_test: Skip # Issue 26376
io/http_on_unix_socket_test: SkipByDesign # Uses curl, not available on Android device
io/many_pending_secure_sockets_test: Skip # Too expensive
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/resolve_symbolic_links_test: Skip # Issue 26376

[ $system == windows ]
io/process_sync_test: Pass, Timeout # Issue 24596
io/regress_54516_test: SkipByDesign # Test uses a shell script which won't run on windows
io/sleep_test: Pass, Fail # Issue 25757
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.

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

[ $runtime == dart_precompiled && $system == linux && $simulator ]
io/stdout_stderr_non_blocking_test: Pass, Timeout # Issue 35192

[ $runtime == vm && $system == macos ]
io/named_pipe_script_test: Skip # Issue 28737

[ $runtime == vm && $simulator ]
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

[ $hot_reload || $hot_reload_rollback ]
io/named_pipe_script_test: Skip # Can't read from the pipe twice
