# 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

[ $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/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: Pass, 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: Pass, Fail # Possibly related to issue 32373
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: Slow, Pass
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/compile_all_test: Crash # Issue 32373
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 && $system != windows && $strong ]
io/namespace_test: RuntimeError

[ $compiler == dartkp && $runtime == dart_precompiled && $strong ]
dwarf_stack_trace_test: RuntimeError
io/compile_all_test: RuntimeError # Issue 32338
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/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

[ $compiler == fasta && $strong ]
io/dependency_graph_test: CompileTimeError
io/http_cookie_date_test: CompileTimeError
io/http_headers_test: CompileTimeError
io/http_parser_test: CompileTimeError
io/secure_socket_argument_test: CompileTimeError
io/skipping_dart2js_compilations_test: CompileTimeError
io/test_harness_analyzer_test: CompileTimeError
io/test_runner_test: CompileTimeError
io/web_socket_protocol_processor_test: CompileTimeError

[ $fasta && !$strong ]
regress_29350_test/none: MissingCompileTimeError

