# 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.
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_promotion_test: Skip
initializing_formal_type_test: Skip
parameter_initializer5_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
vm/regress_27201_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
vm/regress_27201_test: Fail

[ $compiler == precompiler ]
# Deferred loading happens eagerly. Issue #27587
deferred_global_test: Fail
vm/regress_27201_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 ]
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
override_field_method1_negative_test: Pass, Crash # Issue 27835
override_field_method2_negative_test: Pass, Crash # Issue 27835
override_field_method4_negative_test: Pass, Crash # Issue 27835
override_field_method5_negative_test: Pass, Crash # Issue 27835
vm/regress_27201_test: Pass, 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

[$compiler == dart2analyzer]
vm/regress_27201_test: SkipByDesign # Loads bad library, so will always crash.
