# 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) ]
built_in_identifier_prefix_test: Fail # Issue 6970
tearoff_constructor_basic_test: Skip # Crashes in checked mode -- hausner investigating
const_qq_test: Fail

# 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

# 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
async_star_await_pauses_test: Skip # Times out. Issue 23996

[ ($compiler == none || $compiler == precompiler) && ($runtime == vm || $runtime == dart_precompiled) ]
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) && $checked ]
type_variable_bounds4_test/01: Fail # Issue 14006

[ ($compiler == none || $compiler == precompiler) ]
dynamic_prefix_core_test/01: RuntimeError # Issue 12478
multiline_strings_test: Fail # Issue 23020

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

[ ($compiler == none || $compiler == precompiler) && ($runtime == dartium || $runtime == ContentShellOnAndroid) && $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 || $compiler == precompiler) && ( $runtime == dartium || $runtime == drt || $runtime == ContentShellOnAndroid) ]
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.

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

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

[ ($compiler == none || $compiler == precompiler) && ($runtime == vm || $runtime == dart_precompiled) && $arch == mips && $checked ]
generic_instanceof3_test: Pass, Crash # Issue 17440.

[ ($compiler == none || $compiler == precompiler) && ($runtime == vm || $runtime == dart_precompiled) && $arch == mips && $mode == debug ]
stack_overflow_test: Skip # Crashes. Issue 17440.
stack_overflow_stacktrace_test: Skip # Crashes. Issue 17440.
large_class_declaration_test: SkipSlow # Times out. Issue 20352

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

[ ($compiler == none || $compiler == precompiler) && $runtime == ContentShellOnAndroid ]
gc_test: SkipSlow # Times out flakily. Issue 20956

[ ($compiler == none || $compiler == precompiler) && ($runtime == vm || $runtime == dart_precompiled) && ( $arch == simarm || $arch == arm || $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

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

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

[ ($noopt || $compiler == precompiler) ]
# Imports dart:mirrors
const_evaluation_test: CompileTimeError
deferred_constraints_constants_test: CompileTimeError
enum_mirror_test: CompileTimeError
field_increment_bailout_test: CompileTimeError
instance_creation_in_function_annotation_test: CompileTimeError
invocation_mirror2_test: CompileTimeError
invocation_mirror_invoke_on2_test: CompileTimeError
invocation_mirror_invoke_on_test: CompileTimeError
issue21079_test: CompileTimeError
many_overridden_no_such_method_test: CompileTimeError
no_such_method_test: CompileTimeError
null_test/none: CompileTimeError
overridden_no_such_method_test: CompileTimeError
regress_13462_0_test: CompileTimeError
regress_13462_1_test: CompileTimeError
regress_18535_test: CompileTimeError
super_call4_test: CompileTimeError
super_getter_setter_test: CompileTimeError
vm/reflect_core_vm_test: CompileTimeError
redirecting_factory_reflection_test: CompileTimeError
deferred_constraints_constants_test: Skip # multitest gets confused
vm/type_vm_test: RuntimeError # Expects line and column numbers

# Deferred loading happens eagerly
regress_23408_test: RuntimeError
deferred_global_test: RuntimeError
deferred_inheritance_constraints_test: Skip
deferred_load_constants_test: Skip # multitest gets confused

deopt_inlined_function_lazy_test: Pass, Crash # Incompatible flag: --deoptimize-alot
tearoff_basic_test: RuntimeError, Crash # Conflicting flag.
vm/type_cast_vm_test: RuntimeError # Line number mismatch.

[ $runtime == dart_precompiled ]
ct_const2_test: Pass, Crash # Incompatible flag --compile_all
hello_dart_test: Pass, Crash # Incompatible flag --compile_all

implicit_closure_test: Pass, Crash # --use_slow_path
