# Copyright (c) 2013, 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.

[ $builder_tag == no_ipv6 ]
io/raw_datagram_socket_test: SkipByDesign

[ $compiler == dart2analyzer ]
*: Skip

# Overriding these flags are not supported in product mode.
[ $mode == product ]
verbose_gc_to_bmu_test: SkipByDesign # No verbose_gc in product mode

[ $runtime == dart_precompiled ]
verbose_gc_to_bmu_test: Skip # These tests attempt to spawn another script using the precompiled runtime.

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

[ $builder_tag == swarming && $system == macos ]
io/*: Skip # Issue 30618

[ $compiler == dartk && $strong ]
*: SkipByDesign

[ $compiler == fasta && $strong ]
io/directory_invalid_arguments_test: CompileTimeError
io/io_override_test: CompileTimeError
io/process_invalid_arguments_test: CompileTimeError
io/raw_secure_server_socket_argument_test: CompileTimeError
io/raw_secure_server_socket_test: CompileTimeError
io/secure_socket_bad_data_test: CompileTimeError
io/security_context_argument_test: CompileTimeError
io/stdout_bad_argument_test: CompileTimeError
no_assert_test: CompileTimeError
priority_queue_stress_test: CompileTimeError
verbose_gc_to_bmu_test: CompileTimeError

[ $compiler != fasta && $compiler != none && $runtime != dart_precompiled && $runtime != vm ]
no_assert_test: Fail, OK # This is testing a vm flag.

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

[ $mode == product && $runtime == dart_precompiled ]
dwarf_stack_trace_test: Pass, RuntimeError # Results will flake due to identical code folding

[ $runtime == dart_precompiled && $system == android ]
io/https_bad_certificate_test: RuntimeError # Issue 31310
io/raw_datagram_socket_test: RuntimeError # Issue 31310
io/raw_secure_server_socket_test: RuntimeError # Issue 31310

[ $system == macos && ($runtime == dart_precompiled || $runtime == vm) ]
io/raw_secure_server_socket_test: Pass, Crash # Issue 29524

[ $checked && ($runtime == dart_precompiled || $runtime == flutter || $runtime == vm) ]
io/directory_fuzz_test: Skip # These test have type errors on purpose and take very long to run in checked mode with no benefit. Skip.
io/directory_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
io/file_fuzz_test: Skip # These test have type errors on purpose and take very long to run in checked mode with no benefit. Skip.
io/file_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
io/internet_address_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
io/process_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
io/socket_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
io/stdout_bad_argument_test: Fail, OK # These tests have type errors on purpose.

[ $compiler == app_jit || $compiler == precompiler ]
io/compile_all_test: Skip # Incompatible flag --compile_all

[ $compiler == dart2js || $compiler == dartdevc ]
*: SkipByDesign

# We skip all the Dart 1.0 tests in dartk and dartkp mode as these
# modes are intended only for Dart 2.0 with strong mode enabled.
[ $compiler == dartk || $compiler == dartkp ]
*: Skip

[ $compiler != none || $runtime != vm ]
script_snapshot_depfile_test: SkipByDesign # Only makes sense running from source.
script_snapshot_not_executed_test: SkipByDesign # Only makes sense running from source.

[ $mode == product || $runtime == dart_precompiled ]
no_assert_test: SkipByDesign # Requires checked mode.

[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
io/secure_socket_bad_data_test: RuntimeError # An error in a secure connection just puts a READ_CLOSED on the stream, rather than signaling an error on the stream.

[ $hot_reload || $hot_reload_rollback ]
script_snapshot_depfile_test: RuntimeError, OK # Child VM doesn't execute Dart.
script_snapshot_not_executed_test: RuntimeError, OK # Child VM doesn't execute Dart.

