# 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 && $runtime == drt && $mode == debug ]
source_self_negative_test: Crash # Issue 14003

[ $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
library_juxtaposition_test: Fail # Issue 6877
throwing_lazy_variable_test: Fail # Issue 5802
f_bounded_equality_test: RuntimeError # Issue 14000

# 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.
super_first_constructor_test: Fail # Issue 1372.
lazy_static3_test: Fail # Issue 12593
duplicate_export_negative_test: Fail # Issue 6134
on_catch_malformed_type_test: Fail # Issue 8601
mixin_forwarding_constructor2_test: Fail # Issue 13641
implicit_setter_test: Fail # Issue 13917

cyclic_typedef_test/10: Fail # Issue 13675
cyclic_typedef_test/11: Fail # Issue 13675

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

[ $compiler == none && $runtime == vm && $checked ]
compile_time_constant_checked3_test/01: MissingCompileTimeError # Issue 13685
compile_time_constant_checked3_test/02: MissingCompileTimeError # Issue 13685
compile_time_constant_checked3_test/03: MissingCompileTimeError # Issue 13685
compile_time_constant_checked3_test/04: MissingCompileTimeError # Issue 13685
compile_time_constant_checked3_test/05: MissingCompileTimeError # Issue 13685
compile_time_constant_checked3_test/06: MissingCompileTimeError # Issue 13685

[ $compiler == none && $checked ]
malbounded_type_cast_test: Fail # Issue 14123
malbounded_type_test_test/01: Fail # Issue 14131
malbounded_instantiation_test/01: Fail # Issue 14132

[ $compiler == none && $unchecked ]
# Only checked mode reports an error on type assignment
# problems in compile time constants.
compile_time_constant_checked_test/02: Fail, OK
compile_time_constant_checked2_test/01: Fail, OK
compile_time_constant_checked2_test/02: Fail, OK
compile_time_constant_checked2_test/03: Fail, OK
compile_time_constant_checked2_test/04: Fail, OK
compile_time_constant_checked2_test/05: Fail, OK
compile_time_constant_checked2_test/06: Fail, OK
compile_time_constant_checked3_test/01: Fail, OK
compile_time_constant_checked3_test/02: Fail, OK
compile_time_constant_checked3_test/03: Fail, OK
compile_time_constant_checked3_test/04: Fail, OK
compile_time_constant_checked3_test/05: Fail, OK
compile_time_constant_checked3_test/06: Fail, OK

[ $runtime == vm || ($runtime == drt && $compiler == none) ]
call_test: Fail # Issue 12602
dynamic_prefix_core_test: Fail # Issue 12478

[ $compiler == none && $runtime == drt ]
mixin_illegal_object_test/01: pass # Issue 10952.
mixin_illegal_object_test/02: pass # Issue 10952.

[ $compiler == none && $runtime == drt && $system == macos ]
field_type_check_test/none: Pass, Fail # Issue 13266

[ $compiler == dart2js && $runtime == ie9 ]
lazy_static3_test: Fail # Issue 13469

[ $compiler == none && $runtime == dartium ]
assertion_test: Fail # Issue 13719: Please triage this failure.
call_test: Fail # Issue 13719: Please triage this failure.
dynamic_prefix_core_test: Fail # Issue 13719: Please triage this failure.
first_class_types_literals_test: Pass, Fail # Issue 13719: Please triage this failure.
generic_test: Fail # Issue 13719: Please triage this failure.
issue13474_test: Pass, Fail # Issue 13719: Please triage this failure.
list_literal1_test/01: Fail # Issue 13719: Please triage this failure.
list_literal4_test: Fail # Issue 13719: Please triage this failure.
map_literal1_test/01: 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.
regress_13494_test: Pass, 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 || $runtime == drt ) ]
typed_message_test: Fail # Issue 13921
