# 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

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

[ $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

