# 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".
#
# Note: Sections in this file are normalized so we can update them with
# automated tools. Please add any new status lines affecting those two compilers
# in the existing sections, if possible keep the alphabetic ordering. If we are
# missing a section you need, please reach out to sigmund@ to see the best way
# to add them.

[ $fasta ]
deferred_transitive_import_error_test: CompileTimeError
package/package1_test: CompileTimeError
package/package_isolate_test: Crash
package/package_test: CompileTimeError
package/scenarios/invalid/same_package_twice_test: CompileTimeError
regress_29350_test/none: MissingCompileTimeError

[ $arch != simarm && $arch != simarm64 && $arch != simdbc64 && $fasta ]
package/scenarios/invalid/invalid_utf8_test: CompileTimeError # Issue 32085
package/scenarios/invalid/non_existent_packages_file_test: CompileTimeError # Issue 32085

[ $builder_tag == optimization_counter_threshold && $compiler == dartk ]
map_insert_remove_oom_test: Pass, Crash # Flaky on vm-kernel-optcounter-threshold-linux-release-x64, bug #31838

[ $compiler == dartk && $mode == debug && $runtime == vm && $strong ]
io/file_lock_test: Slow, Pass
io/raw_socket_test: Crash
io/socket_exception_test: Pass, Crash
io/socket_finalizer_test: Pass, Crash
io/socket_info_ipv4_test: Pass, Crash
io/socket_info_ipv6_test: Pass, Crash
io/socket_port_test: Pass, Crash

# ===== dartk + vm status lines =====
[ $compiler == dartk && $runtime == vm && $strong ]
io/compile_all_test: Crash
io/http_client_request_test: Pass, Timeout
io/http_compression_test: RuntimeError
io/platform_resolved_executable_test/03: Pass, RuntimeError
io/platform_resolved_executable_test/04: Pass, RuntimeError
io/secure_builtin_roots_test: Timeout
io/socket_finalizer_test: Pass, Timeout
no_support_debugger_test: Skip # kernel-service snapshot not compatible with flag disabled
regress_29350_test: MissingCompileTimeError
regress_29350_test/none: Pass # Issue 31537

[ $compiler == dartk && $system == windows ]
io/secure_builtin_roots_test: Skip # Issues 32137 and 32138.
io/test_extension_fail_test: RuntimeError, Pass # Issue 32137.
io/test_extension_test: RuntimeError, Pass # Issue 32137.
io/wait_for_event_isolate_test: Skip # Issues 32137 and 32138.

[ $compiler == dartk && $system == windows && $strong ]
io/compile_all_test: Fail
io/file_stream_test: RuntimeError # Issue 31904
io/platform_test: RuntimeError # Issue 31904
io/process_non_ascii_test: RuntimeError # Issue 31904
io/regress_7679_test: RuntimeError # Issue 31904
map_insert_remove_oom_test: Skip # Timeout

# Enabling of dartk for sim{arm,arm64,dbc64} revelaed these test failures, which
# are to be triaged.  Isolate tests are skipped on purpose due to the usage of
# batch mode.
[ $compiler == dartk && $strong && ($arch == simarm || $arch == simarm64 || $arch == simdbc64) ]
io/directory_list_sync_test: Timeout, Pass # Please triage.
io/file_blocking_lock_test: Pass, Crash # Please triage.
io/file_lock_test: RuntimeError # Please triage.
io/platform_resolved_executable_test/05: Pass, RuntimeError # Issue 32134
io/platform_test: RuntimeError # Please triage.
io/test_extension_fail_test: RuntimeError # Please traige.
io/test_extension_test: RuntimeError # Please traige.
map_insert_remove_oom_test: Crash # Please triage.
package/scenarios/packages_file_strange_formatting/empty_lines_test: CompileTimeError # Please triage.
package/scenarios/packages_file_strange_formatting/mixed_line_ends_test: CompileTimeError # Please triage.
package/scenarios/packages_option_only/packages_option_only_test: CompileTimeError # Please triage.

# ===== Skip dartk and darkp in !$strong mode ====
[ $compiler == dartk && !$strong ]
*: SkipByDesign

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

# ===== dartkp + dart_precompiled status lines =====
[ $compiler == dartkp && $runtime == dart_precompiled && $strong ]
dwarf_stack_trace_test: RuntimeError
io/compile_all_test: Crash
io/file_fuzz_test: RuntimeError, Pass
io/http_client_connect_test: Skip # Flaky.
io/http_close_test: Crash
io/http_compression_test: RuntimeError
io/http_content_length_test: Skip # Flaky.
io/http_cookie_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/https_client_certificate_test: Crash
io/namespace_test: RuntimeError
io/platform_test: Crash
io/raw_datagram_socket_test: Skip # Flaky.
io/raw_secure_server_closing_test: Skip # Flaky
io/raw_socket_test: Crash
io/secure_builtin_roots_test: Timeout, Pass # Times out on bots.
io/secure_multiple_client_server_test: Skip # Flaky.
io/secure_server_closing_test: Skip # Flaky.
io/secure_server_socket_test: Skip # Flaky.
io/secure_socket_renegotiate_test: Crash
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: Crash
no_support_debugger_test: Skip # kernel-service snapshot not compatible with flag disabled
regress_29350_test: MissingCompileTimeError
regress_29350_test/none: Pass # Issue 31537

[ $compiler == dartkp && !$strong ]
*: SkipByDesign

