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

# This directory contains tests that are intended to show the
# current state of the language.

[ ($compiler == none || $compiler == precompiler || $compiler == dart2app || $compiler == dart2appjit) ]
tearoff_constructor_basic_test: Skip # Crashes in checked mode -- hausner investigating
generic_methods_type_expression_test: RuntimeError # Issue 25869

# This is OK for now, but we may want to change the semantics to match the test.
async_star_pause_test: Fail, OK

# These tests are skipped in the VM because it has "--supermixin"
# functionality enabled unconditionally.  The tests should be removed
# once the same is true for analyzer (#24478) and dart2js (#23773)
mixin_illegal_super_use_test: Skip # Issues 24478 and 23773
mixin_illegal_superclass_test: Skip # Issues 24478 and 23773

# These bugs refer currently ongoing language discussions.
constructor5_test: Fail # Issue 6422
constructor6_test: Fail # Issue 6422

# Failures related to super call in ctor initializer list
super_test: Fail, OK
final_field_initialization_order_test: Fail, OK
field_initialization_order_test: Fail, OK
example_constructor_test: Fail, OK
constructor3_test: Fail, OK
constructor2_test: Fail, OK

dynamic_prefix_core_test/01: RuntimeError # Issue 12478
multiline_strings_test: Fail # Issue 23020

# Regular bugs which should be fixed.
duplicate_export_negative_test: Fail # Issue 6134

deferred_redirecting_factory_test: Fail # Issue 23408
redirecting_constructor_initializer_test: RuntimeError # Issue 23488

# Non-contractive types are not supported in the vm.
cyclic_type_test/02: Fail, OK
cyclic_type_test/04: Fail, OK
cyclic_type2_test: Fail, OK
least_upper_bound_expansive_test/*: Fail, OK

async_star_regression_2238_test: CompileTimeError, RuntimeError # drt only runtime-errs.
async_star_cancel_while_paused_test: RuntimeError

# Fails because `as T` is an error rather than being treated like `as dynamic`.
generic_methods_type_expression_test: RuntimeError # Issue 27460

[ ($compiler == none || $compiler == precompiler || $compiler == dart2app || $compiler == dart2appjit) && $checked ]
# These generic functions tests pass for the wrong reason in checked mode,
# because the parsed type parameters are mapped to dynamic type.
generic_methods_function_type_test: Pass # Issue 25869
generic_methods_test: Pass # Issue 25869
generic_methods_new_test: Pass # Issue 25869
generic_local_functions_test: Pass # Issue 25869
generic_functions_test: Pass # Issue 25869
generic_methods_generic_function_parameter_test: Pass # Issue 25869

[ ($compiler == none || $compiler == precompiler || $compiler == dart2app || $compiler == dart2appjit) && ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_app) ]

class_keyword_test/02: MissingCompileTimeError # Issue 13627
unicode_bom_test: Fail # Issue 16067
vm/debug_break_enabled_vm_test/01: Crash, OK # Expected to hit breakpoint.
try_catch_optimized1_test: Skip # Srdjan investigating

[ ($compiler == none || $compiler == precompiler || $compiler == dart2app || $compiler == dart2appjit) && $checked ]
type_variable_bounds4_test/01: Fail # Issue 14006

[ ($compiler == none || $compiler == precompiler || $compiler == dart2app || $compiler == dart2appjit) && (($runtime == vm || $runtime == dart_precompiled || $runtime == dart_app) || $runtime == drt || $runtime == dartium) ]
dynamic_prefix_core_test/none: Fail # Issue 12478
export_ambiguous_main_negative_test: Fail # Issue 14763

[ $compiler == none && $runtime == dartium && $unchecked ]
assertion_test: Fail # Issue 14651.
generic_test: Fail # Issue 14651.
list_literal4_test: Fail # Issue 14651.
map_literal4_test: Fail # Issue 14651.
named_parameters_type_test/01: Fail # Issue 14651.
named_parameters_type_test/02: Fail # Issue 14651.
named_parameters_type_test/03: Fail # Issue 14651.
positional_parameters_type_test/01: Fail # Issue 14651.
positional_parameters_type_test/02: Fail # Issue 14651.
type_checks_in_factory_method_test: Fail # Issue 14651.
vm/type_vm_test: Fail # Issue 14651.

[ $compiler == none && ($runtime == dartium || $runtime == drt) ]
issue13474_test: Pass, Fail # Issue 14651.
config_import_test: Fail # Issue 14651.
generic_methods_generic_function_parameter_test: RuntimeError # Issue 25869
vm/optimized_guarded_field_isolates_test: RuntimeError, OK  # Uses Isolate.spawn.
main_test/01: Fail # Issue 20028
main_test/02: Fail # Issue 20028
main_test/04: Fail # Issue 20028
main_test/05: Fail # Issue 20028
main_test/21: Fail # Issue 20028
main_test/42: Fail # Issue 20028
mirror_in_static_init_test: Fail # Issue 22071
vm/debug_break_enabled_vm_test/*: Skip # Issue 14651.

# These tests need the flag --initializing-formal-access to pass:
initializing_formal_access_test: Skip
initializing_formal_capture_test: Skip
initializing_formal_final_test: Skip
initializing_formal_type_test: Skip
initializing_formal_promotion_test: Skip

# Experimental feature: Syntactic support for generic methods.
# Skip these in dartium, because the test framework can't pass VM flags to
generic_methods_test: Skip # Issue 25869
generic_functions_test: Skip # Issue 25869
generic_local_functions_test: Skip # Issue 25869
generic_sends_test: Skip # Issue 25869
generic_methods_new_test: Skip # Issue 25869
generic_methods_function_type_test: Skip # Issue 25869
generic_methods_type_expression_test: Skip # Issue 25869

config_import_test: Skip  # Issue 26250

[ $compiler == none && $runtime == dartium && $system == linux && $arch != x64 ]
issue_22780_test/01: Pass, Timeout # Issue 24473

[ $compiler == none && $runtime == dartium && $system == linux && $arch == x64 ]
async_await_test: Skip # Issue 26198

[ $compiler == none && $runtime == drt ]
disassemble_test: Pass, Fail # Issue 18122

[ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_app) && $arch == mips && $mode == debug ]
large_class_declaration_test: SkipSlow # Times out. Issue 20352

[ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_app) && $arch == arm64 ]
large_class_declaration_test: SkipSlow # Uses too much memory.

[ $compiler == none && ($runtime == dartium || $runtime == drt) && $mode == debug ]
large_class_declaration_test: SkipSlow # Times out. Issue 20352

[ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_app) && ( $arch == simarm || $arch == arm || $arch == simarmv6 || $arch == armv6 || $arch == simarmv5te || $arch == armv5te || $arch == simarm64 || $arch == arm64 || $arch == simmips || $arch == mips) ]
vm/load_to_load_unaligned_forwarding_vm_test: Pass, Crash # Unaligned offset. Issue 22151
vm/unaligned_float_access_literal_index_test: Pass, Crash # Unaligned offset. Issue 22151
vm/unaligned_float_access_literal_index_test: Pass, Crash # Unaligned offset. Issue 22151


[ $compiler == none && ($runtime == dartium || $runtime == drt) ]
issue23244_test: Fail # Issue 23244

[ ($compiler == none || $compiler == precompiler || $compiler == dart2app || $compiler == dart2appjit) && (($runtime == vm || $runtime == dart_precompiled || $runtime == dart_app) || $runtime == drt || $runtime == dartium) && $arch == ia32 ]
vm/regress_24517_test: Pass, Fail # Issue 24517.

[ $compiler == precompiler && $runtime == dart_precompiled ]
vm/regress_27671_test: Skip # Unsupported

[ $noopt || $compiler == precompiler ]
# Stacktraces in precompilation omit inlined frames.
full_stacktrace1_test: Pass, RuntimeError
full_stacktrace2_test: Pass, RuntimeError
full_stacktrace3_test: Pass, RuntimeError
stack_trace_test: Pass, RuntimeError
stacktrace_rethrow_error_test: Pass, RuntimeError
stacktrace_rethrow_nonerror_test: Pass, RuntimeError
stacktrace_test: Pass, RuntimeError
regress_26948_test: Skip # Crashes, regis investigating

[ $noopt || $compiler == precompiler || $mode == product ]
# Imports dart:mirrors
const_evaluation_test: SkipByDesign
deferred_constraints_constants_test: SkipByDesign
enum_mirror_test: SkipByDesign
field_increment_bailout_test: SkipByDesign
instance_creation_in_function_annotation_test: SkipByDesign
invocation_mirror2_test: SkipByDesign
invocation_mirror_invoke_on2_test: SkipByDesign
invocation_mirror_invoke_on_test: SkipByDesign
issue21079_test: SkipByDesign
many_overridden_no_such_method_test: SkipByDesign
no_such_method_test: SkipByDesign
null_test/none: SkipByDesign
overridden_no_such_method_test: SkipByDesign
redirecting_factory_reflection_test: SkipByDesign
regress_13462_0_test: SkipByDesign
regress_13462_1_test: SkipByDesign
regress_18535_test: SkipByDesign
super_call4_test: SkipByDesign
super_getter_setter_test: SkipByDesign
vm/reflect_core_vm_test: SkipByDesign

[ $noopt ]
# Deferred loading happens eagerly. Issue #27587
regress_23408_test: Fail
deferred_inheritance_constraints_test/redirecting_constructor: Fail
deferred_global_test: Fail
deferred_load_constants_test/02: Fail
deferred_load_constants_test/03: Fail
deferred_load_constants_test/05: Fail
tearoff_basic_test: Fail
regress_22443_test: Fail
deferred_not_loaded_check_test: Fail

[ $mode == product || $compiler == dart2appjit || $compiler == dart2app || $compiler == precompiler ]
# Deferred loading happens eagerly. Issue #27587
regress_23408_test: Fail
deferred_inheritance_constraints_test/redirecting_constructor: Fail
deferred_load_constants_test/02: Fail
deferred_load_constants_test/03: Fail
deferred_load_constants_test/05: Fail
tearoff_basic_test: Fail
deferred_not_loaded_check_test: Fail

[ $compiler == precompiler ]
# Deferred loading happens eagerly. Issue #27587
deferred_global_test: Fail

[ $compiler == precompiler || $compiler == dart2app || $compiler == dart2appjit ]
ct_const2_test: Skip # Incompatible flag: --compile_all
hello_dart_test: Skip # Incompatible flag: --compile_all

[ $compiler == precompiler ]
implicit_closure_test: Skip # Incompatible flag: --use_slow_path
deopt_inlined_function_lazy_test: Skip # Incompatible flag: --deoptimize-alot

[ $noopt || $compiler == precompiler || $compiler == dart2app || $compiler == dart2appjit ]
vm/type_vm_test: RuntimeError # Expects line and column numbers
vm/type_cast_vm_test: RuntimeError # Expects line and column numbers

[ $mode == product ]
issue13474_test: SkipByDesign # Requires checked mode.
assertion_test: SkipByDesign # Requires checked mode.
named_parameters_type_test/01: SkipByDesign # Requires checked mode.
named_parameters_type_test/02: SkipByDesign # Requires checked mode.
named_parameters_type_test/03: SkipByDesign # Requires checked mode.
type_checks_in_factory_method_test: SkipByDesign # Requires checked mode.
positional_parameters_type_test/01: SkipByDesign # Requires checked mode.
positional_parameters_type_test/02: SkipByDesign # Requires checked mode.
list_literal4_test: SkipByDesign # Requires checked mode.
generic_test: SkipByDesign # Requires checked mode.
map_literal4_test: SkipByDesign # Requires checked mode.

vm/type_vm_test: Fail,OK  # Expects exact type name.


[ ($compiler == none || $compiler == precompiler || $compiler == dart2app || $compiler == dart2appjit) && $browser ]
# The following tests are supposed to fail.
library_env_test/has_io_support: RuntimeError, OK
library_env_test/has_no_html_support: RuntimeError, OK

[ ($compiler == none || $compiler == precompiler || $compiler == dart2app || $compiler == dart2appjit) && $browser != true ]
# The following tests are supposed to fail.
library_env_test/has_html_support: RuntimeError, OK
library_env_test/has_no_io_support: RuntimeError, OK

[ ($compiler == none || $compiler == dart2app || $compiler == dart2appjit) && $noopt == false && $mode != product ]
# The following tests are supposed to fail.
library_env_test/has_no_mirror_support: RuntimeError, OK

[ $noopt || $compiler == precompiler || $mode == product ]
# The following tests are supposed to fail.
library_env_test/has_mirror_support: RuntimeError, OK

[ $hot_reload || $hot_reload_rollback ]
methods_as_constants_test: Skip # Issue 27803
static_closure_identical_test: Pass, Fail # Closure identity
cha_deopt1_test: Crash # Requires deferred libraries
cha_deopt2_test: Crash # Requires deferred libraries
cha_deopt3_test: Crash # Requires deferred libraries
deferred_call_empty_before_load_test: Crash # Requires deferred libraries
deferred_closurize_load_library_test: Crash # Requires deferred libraries
deferred_constant_list_test: Crash # Requires deferred libraries
deferred_constraints_constants_test: Crash # Requires deferred libraries
deferred_constraints_type_annotation_test: Crash # Requires deferred libraries
deferred_function_type_test: Crash # Requires deferred libraries
deferred_global_test: Crash # Requires deferred libraries
deferred_import_core_test: Crash # Requires deferred libraries
deferred_inlined_test: Crash # Requires deferred libraries
deferred_inheritance_constraints_test: Crash # Requires deferred libraries
deferred_load_constants_test: Crash # Requires deferred libraries
deferred_load_inval_code_test: Crash # Requires deferred libraries
deferred_load_library_wrong_args_test: Crash # Requires deferred libraries
deferred_mixin_test: Crash # Requires deferred libraries
deferred_no_such_method_test: Crash # Requires deferred libraries
deferred_not_loaded_check_test: Crash # Requires deferred libraries
deferred_only_constant_test: Crash # Requires deferred libraries
deferred_optimized_test: Crash # Requires deferred libraries
deferred_redirecting_factory_test: Crash # Requires deferred libraries
deferred_regression_22995_test: Crash # Requires deferred libraries
deferred_shadow_load_library_test: Crash # Requires deferred libraries
deferred_shared_and_unshared_classes_test: Crash # Requires deferred libraries
deferred_static_seperate_test: Crash # Requires deferred libraries
deferred_super_dependency_test: Pass, Crash # Requires deferred libraries
deferred_type_dependency_test: Crash # Requires deferred libraries
issue_1751477_test: Crash # Requires deferred libraries
regress_23408_test: Crash # Requires deferred libraries
regress_22443_test: Crash # Requires deferred libraries
tearoff_basic_test: Crash # Requires deferred libraries
conditional_import_test: Crash # Requires deferred libraries
conditional_import_string_test: Crash # Requires deferred libraries

[$runtime != vm || $compiler != none]
assert_initializer_test: SKIP  # not implemented yet, experiment is VM only.

[$runtime == vm && $compiler == none && $unchecked]
assert_initializer_test/*: MissingCompileTimeError, OK  # asserts shouldn't fail in unchecked mode.
assert_initializer_test/none: pass

[$runtime == vm && $compiler == none && $checked]
# The VM doesn't enforce that potentially const expressions are actually
# const expressions when the constructor is called with `const`.
assert_initializer_test/4*: MissingCompileTimeError # Issue 392.

[$runtime == vm && $compiler == none]
duplicate_part_test/01: MissingCompileTimeError # Issue 27516
