# 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
enum_test: Fail # Issue 21416

# 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_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_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

