# 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 ]
mixin_super_constructor_named_test: Fail # Issue 12631
mixin_super_constructor_positionals_test: Fail # Issue 12631
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
mixin_forwarding_constructor2_test: Fail # Issue 13641


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

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

