# 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 ]
built_in_identifier_prefix_test: Fail # Issue 6970

# These bugs refer currently ongoing language discussions.
constructor_initializer_test/none: Fail # Issue 12633
constructor5_test: Fail # Issue 6422
constructor6_test: Fail # Issue 6422
closure_in_initializer_test: Fail # Issue 6422

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

[ $runtime != vm ]
# Async/await is currently only supported by the vm.
async_test/*: Skip
async_control_structures_test: Skip
await_test: Skip
await_regression_test: Skip
await_for_test: Skip
await_future_test: Skip
await_nonfuture_test: Skip
await_exceptions_test: Skip
await_backwards_compatibility_test/*: Skip
vm/optimized_await_regress_test: Skip

[ $compiler == dart2dart]
# Async/await not yet supported in dart2dart.
async_test/*: Skip
async_control_structures_test: Skip
await_test: Skip
await_regression_test: Skip
await_for_test: Skip
await_future_test: Skip
await_nonfuture_test: Skip
await_exceptions_test: Skip
await_backwards_compatibility_test/*: Skip
deferred_load_library_wrong_args_test/none: Fail # Issue 17523
deferred_load_inval_code_test: Fail # Issue 17523
deferred_not_loaded_check_test: Fail # Issue 17523
deferred_constraints_type_annotation_test/*: Fail, Pass # Issue 17523
deferred_constraints_constants_test/*: Fail, Pass # Issue 17523
deferred_shadow_load_library_test: Fail # Issue 17523
deferred_closurize_load_library_test: Fail  # Issue 17523
deferred_inlined_test: Fail  # Issue 17523
deferred_optimized_test: Fail  # Issue 17523
enum_test: Crash # Issue 21416/21417
enum_mirror_test: Skip # Issue 11511.

override_inheritance_mixed_test/08: Fail # Issue 18124
override_inheritance_mixed_test/09: Fail # Issue 18124

[ $compiler == none || $compiler == dart2dart]
# 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

compile_time_constant_c_test/01: Fail # Issue 21000
compile_time_constant12_test: Fail # Issue 21000

[ $compiler == none && $runtime == vm ]
class_keyword_test/02: MissingCompileTimeError # Issue 13627
unicode_bom_test: Fail # Issue 16067

[ $compiler == none && $checked ]
type_variable_bounds4_test/01: Fail # Issue 14006

[ $compiler == none ]
dynamic_prefix_core_test/01: RuntimeError # Issue 12478

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

[ $compiler == none && ($runtime == dartium || $runtime == ContentShellOnAndroid) && $unchecked ]
assertion_test: Fail # Issue 13719: Please triage this failure.
generic_test: Fail # Issue 13719: Please triage this failure.
list_literal4_test: Fail # Issue 13719: Please triage this failure.
map_literal4_test: Fail # Issue 13719: Please triage this failure.
named_parameters_type_test/01: Fail # Issue 13719: Please triage this failure.
named_parameters_type_test/02: Fail # Issue 13719: Please triage this failure.
named_parameters_type_test/03: Fail # Issue 13719: Please triage this failure.
positional_parameters_type_test/01: Fail # Issue 13719: Please triage this failure.
positional_parameters_type_test/02: Fail # Issue 13719: Please triage this failure.
type_checks_in_factory_method_test: Fail # Issue 13719: Please triage this failure.
vm/type_vm_test: Fail # Issue 13719: Please triage this failure.

[ $compiler == none && $runtime == dartium ]
first_class_types_literals_test: Pass, Fail # Issue 13719: Please triage this failure.

[ $compiler == none && ( $runtime == dartium || $runtime == drt || $runtime == ContentShellOnAndroid) ]
issue13474_test: Pass, Fail # Issue 14651.
typed_message_test: Crash, Fail # Issue 13921, 14400
vm/optimized_guarded_field_isolates_test: Fail # Issue 13921.
main_test/01: Fail # http://dartbug.com/20028
main_test/02: Fail # http://dartbug.com/20028
main_test/04: Fail # http://dartbug.com/20028
main_test/05: Fail # http://dartbug.com/20028
main_test/21: Fail # http://dartbug.com/20028
main_test/42: Fail # http://dartbug.com/20028


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

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

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

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

[ $compiler == none && $runtime == ContentShellOnAndroid ]
gc_test: Skip # Times out flakily. Issue 20956

