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

[ $compiler == dart2js || $compiler == dart2dart ]
compile_time_constant_c_test/none: Fail # Map literal with int key.
class_literal_test/01: Fail # Class literals are expression now; delete this test.
class_literal_test/02: Fail # Class literals are expression now; delete this test.
class_literal_test/05: Fail # Class literals are expression now; delete this test.
class_literal_test/06: Fail # Class literals are expression now; delete this test.
class_literal_test/07: Fail # Class literals are expression now; delete this test.
class_literal_test/10: Fail # Class literals are expression now; delete this test.
class_literal_test/11: Fail # Class literals are expression now; delete this test.
class_literal_test/12: Fail # Class literals are expression now; delete this test.
class_literal_test/13: Fail # Class literals are expression now; delete this test.
class_literal_test/14: Fail # Class literals are expression now; delete this test.
class_literal_test/17: Fail # Class literals are expression now; delete this test.
class_literal_test/18: Fail # Class literals are expression now; delete this test.
class_literal_test/19: Fail # Class literals are expression now; delete this test.
class_literal_test/20: Fail # Class literals are expression now; delete this test.
class_literal_test/21: Fail # Class literals are expression now; delete this test.
class_literal_test/22: Fail # Class literals are expression now; delete this test.
class_literal_test/23: Fail # Class literals are expression now; delete this test.
class_literal_test/24: Fail # Class literals are expression now; delete this test.
class_literal_test/25: Fail # Class literals are expression now; delete this test.
class_literal_test/26: Fail # Class literals are expression now; delete this test.
class_literal_test/27: Fail # Class literals are expression now; delete this test.
class_literal_test/28: Fail # Class literals are expression now; delete this test.
class_literal_test/29: Fail # Class literals are expression now; delete this test.

constructor_initializer_test: Fail, OK # Depends on ?parameter check.

black_listed_test/none: Fail # Issue 12446.

# Issues related to undeclared prefix resolution.
malformed_test/none: Fail
malformed_test/05: Fail
malformed_test/06: Fail

# Fails due to inlining. Not all expected frames are in the trace.
full_stacktrace1_test: Pass, Fail
full_stacktrace2_test: Pass, Fail
full_stacktrace3_test: Pass, Fail
# Stack traces may or may not end in a newline depending on the JS enging.
stacktrace_test: Pass, Fail # Assumes stack trace string ends in newline.

# VM specific tests that should not be run by dart2js.
*vm_test: Skip

[ $compiler == dart2js && $checked ]
checked_setter2_test: Fail # dartbug.com/11273
default_factory2_test/01: Fail
type_variable_bounds_test/01: Fail
type_variable_bounds_test/02: Fail
type_variable_bounds_test/04: Fail
type_variable_bounds_test/05: Fail
type_variable_bounds2_test/00: Fail
type_variable_bounds2_test/03: Fail
type_variable_bounds2_test/05: Fail
type_variable_bounds2_test/06: Pass # For the wrong reasons.
type_variable_bounds3_test/00: Fail
f_bounded_quantification_test/01: Fail
f_bounded_quantification_test/02: Fail
closure_type_test: Fail # does not detect type error in checked mode.
function_subtype_setter0_test: Fail # dartbug.com/11273

[ $compiler == dart2js && $unchecked ]
factory_redirection_test/14: Fail # redirecting to redirecting factory
type_checks_in_factory_method_test: Fail # Expect.equals(expected: <true>, actual: <false>) fails. -- checked mode test.

assertion_test: Fail

double_to_string_as_exponential2_test: Fail # toStringAsExponential doesn't check if argument is an integer.
double_to_string_as_fixed2_test: Fail # toStringAsFixed doesn't check if argument is an integer.
double_to_string_as_precision2_test: Fail # toStringAsPrecision doesn't check if argument is an integer.

# 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

[ $compiler == dart2js && $minified ]
f_bounded_quantification4_test: Fail # Issue 12605.

[ $compiler == dart2js ]
function_type_alias6_test/00: Crash # dartbug.com/9792
function_type_alias9_test/00: Crash # dartbug.com/9792
branch_canonicalization_test: Fail # Issue 638.
div_with_power_of_two_test: Fail # Issue 8301.
class_literal_test: Fail # Issue 7626.
identical_closure2_test: Fail # Issue 1533, Issue 12596
invocation_mirror_test: Fail
built_in_identifier_prefix_test: Fail # http://dartbug.com/6972
number_identity2_test: Fail # Issue 12596: identity of NaN
new_expression_type_args_test/00: Fail # Wrongly reports compile-time error.
new_expression_type_args_test/01: Fail # Wrongly reports compile-time error.
double_int_to_string_test: Fail # Issue 1533 (double/integer distinction)
mint_arithmetic_test: Fail # Issue 1533 (big integer arithmetic).
left_shift_test: Fail # Issue 1533
factory_redirection_test/01: Fail
factory_redirection_test/07: Fail
final_variable_assignment_test/01: Fail
final_variable_assignment_test/02: Fail
final_variable_assignment_test/03: Fail
final_variable_assignment_test/04: Fail
bad_override_test/01: Fail # Issue 11496
bad_override_test/02: Fail # Issue 11496
bad_override_test/06: Fail # Issue 11496
class_override_test/00: Fail # Issue 11496
field_override3_test/00: Fail # Issue 11496
field_override3_test/01: Fail # Issue 11496
field_override3_test/02: Fail # Issue 11496
field_override3_test/03: Fail # Issue 11496
getter_override_test/00: Fail # Issue 11496
getter_override_test/01: Fail # Issue 11496
getter_override_test/02: Fail # Issue 11496
method_override7_test/00: Fail # Issue 11496
method_override7_test/01: Fail # Issue 11496
method_override7_test/02: Fail # Issue 11496
method_override8_test/03: Fail # Issue 11496
setter_override_test/00: Fail # Issue 11496
setter_override_test/03: Fail # Issue 11496
setter_override2_test/02: Fail # Issue 11496
call_nonexistent_constructor_test: Fail
constructor_named_arguments_test/01: Fail # http://dartbug.com/5519
getter_no_setter_test/01: Fail # http://dartbug.com/5519
not_enough_positional_arguments_test/01: Fail # http://dartbug.com/5519
dynamic_test: Fail # http://dartbug.com/12398
dynamic_prefix_core_test: Fail # http://dartbug.com/12398

constructor_negative_test: Pass # Wrong reason: the expression 'C()' is valid with class literals.

metadata_test: Fail # Metadata on type parameters not supported.
infinity_test: Fail # Issue 4984
positive_bit_operations_test: Fail # (floitsch): This will be fixed when dart2js uses unsigned input for >>.


# Support for optional parameters not conform to latest spec.
named_parameters_type_test: Fail
positional_parameters_type_test: Fail

# Compilation errors.
const_var_test: Fail # Map literals take 2 type arguments.
map_literal3_test: Fail # Map literals take 2 type arguments.
function_type_alias5_test/00: Fail # visitIs for typedefs not implemented
function_type_alias5_test/01: Fail # visitIs for typedefs not implemented
function_type_alias5_test/02: Fail # visitIs for typedefs not implemented
function_type_alias7_test/00: Fail # wrongly accepts default values in typedef
generic_test: Fail # cannot resolve type T
get_set_syntax_test/00: Fail # Fixed by https://chromiumcodereview.appspot.com/10915111
get_set_syntax_test/01: Fail # Fixed by https://chromiumcodereview.appspot.com/10915111
get_set_syntax_test/02: Fail # Fixed by https://chromiumcodereview.appspot.com/10915111
get_set_syntax_test/03: Fail # Fixed by https://chromiumcodereview.appspot.com/10915111
get_set_syntax_test/04: Fail # Fixed by https://chromiumcodereview.appspot.com/10915111
get_set_syntax_test/05: Fail # Fixed by https://chromiumcodereview.appspot.com/10915111
get_set_syntax_test/06: Fail # Fixed by https://chromiumcodereview.appspot.com/10915111
get_set_syntax_test/07: Fail # Fixed by https://chromiumcodereview.appspot.com/10915111
get_set_syntax_test/08: Fail # Fixed by https://chromiumcodereview.appspot.com/10915111
get_set_syntax_test/13: Fail # Fixed by https://chromiumcodereview.appspot.com/10915111
get_set_syntax_test/14: Fail # Fixed by https://chromiumcodereview.appspot.com/10915111
get_set_syntax_test/15: Fail # Fixed by https://chromiumcodereview.appspot.com/10915111
get_set_syntax_test/16: Fail # Fixed by https://chromiumcodereview.appspot.com/10915111
method_binding_test: Fail # internal error: super property read not implemented.
method_override_test: Fail # cannot resolve type GetKeysFunctionType
method_override5_test: Pass, Fail # Issue 11496 (passes if it's inlined)
abstract_getter_test/01: Fail # instantiation of abstract class
abstract_factory_constructor_test/01: Fail # instantiation of abstract class
parameter_initializer6_negative_test: Fail # Issue 3502
named_parameters_aggregated_test/01: Fail # Presence of default values for optional params is not properly validated in type definitions.
named_parameters_aggregated_test/03: Fail # Presence of default values for optional params is not properly validated in closure types.
named_parameters_aggregated_test/05: Fail # Absence of positional parameters before named parameters does not trigger static type warning.
pseudo_kw_test: Fail # Unexpected token '('
super_implicit_closure_test: Fail # internal error: super property read not implemented

# Missing compilation error for wrong number of type arguments.
mixin_type_parameters_errors_test/01: Fail
mixin_type_parameters_errors_test/02: Fail
mixin_type_parameters_errors_test/05: Fail

# External tests.
external_test/01: Fail
external_test/02: Fail
external_test/11: Fail
external_test/12: Fail
external_test/13: Skip  # Runtime error (missing patch).
external_test/14: Fail
external_test/15: Fail
external_test/20: Skip  # Runtime error (missing patch).
external_test/21: Fail
external_test/22: Fail
external_test/23: Fail
external_test/30: Fail
external_test/31: Fail


# Implementation errors (library or generated code).
instanceof4_test: Fail # Expect.isTrue(false) fails.
list_literal4_test: Fail # Illegal argument(s): 0 -- checked mode test.
map_literal4_test: Fail # Attempt to modify an immutable object -- checked mode test.
named_parameters_type_test: Fail # Expect.equals(expected: <111>, actual: <0>) fails. -- checked mode test.

class_cycle_negative_test: Fail, OK # Bad test: assumes eager loading.
external_test/16: Fail, OK # Bad test: assumes eager loading.
interface_cycle_negative_test: Fail, OK # Bad test: assumes eager loading.
syntax_test/47: Fail, OK # Bad test: assumes eager loading.


#
# The following tests are all negative tests that should be fixed.
#
abstract_syntax_test/01: Fail # Negative language test.
abstract_syntax_test/02: Fail # Negative language test.
const_constructor_syntax_test/04: Fail # Negative language test.
const_syntax_test/04: Fail # Negative language test.
constructor2_negative_test: Fail # Negative language test.
constructor_return_negative_test: Fail # Negative language test.
constructor_return_with_arrow_negative_test: Fail # Negative language test.
constructor_return_with_init_and_arrow_negative_test: Fail # Negative language test.
constructor_return_with_init_negative_test: Fail # Negative language test.
duplicate_implements_test/01: Fail # Negative language test.
duplicate_implements_test/02: Fail # Negative language test.
duplicate_implements_test/03: Fail # Negative language test.
duplicate_implements_test/04: Fail # Negative language test.
field3_negative_test: Fail # Negative language test.
final_for_in_variable_test/01: Fail # Negative language test
instantiate_type_variable_negative_test: Pass  # For the wrong reason.
list_literal1_negative_test: Fail # Negative language test.
map_literal1_negative_test: Fail # Negative language test.
number_identifier_negative_test: Fail # Negative language test.
operator1_negative_test: Fail # Negative language test.
scope_negative_test: Fail # Negative language test.
static_final_field_negative_test: Fail # Negative language test.
static_top_level_test/00: Fail # Negative language test.
static_top_level_test/01: Fail # Negative language test.
static_top_level_test/02: Fail # Negative language test.
static_top_level_test/03: Fail # Negative language test.
static_top_level_test/04: Fail # Negative language test.
static_top_level_test/05: Fail # Negative language test.
static_top_level_test/06: Fail # Negative language test.
static_top_level_test/07: Fail # Negative language test.
throw7_negative_test: Fail # Negative language test.

numbers_test: Fail, OK # (unintended?) VM specific test.

final_syntax_test/01: Fail # Missing error for uninitialized final field.
final_syntax_test/02: Fail # Missing error for uninitialized final field.
final_syntax_test/03: Fail # Missing error for uninitialized final field.
final_syntax_test/04: Fail # Missing error for uninitialized final field.
const_syntax_test/01: Fail # Missing error for uninitialized final field.
const_syntax_test/02: Fail # Missing error for uninitialized final field.
const_syntax_test/03: Fail # Missing error for uninitialized final field.

canonical_const2_test: Fail, OK # Dart2js only has doubles.

bit_operations_test: Fail, OK # Tests bit operations outside the 32 bit range.
# The following test will start to fail again once dart2js implements the
# runtime semantics for numbers.
# Should be: Fail, OK # Expects negative results of bit-operations.
optimization_test: Fail, OK # Expects negative results of bit-operations.

expect_test: Fail, OK # JavaScript canonicalizes all strings. This test assumes that string-concatenation returns a new string.

# Partially implemented redirecting constructors makes this throw instead
# of failing.
const_factory_negative_test: Crash, Fail

assign_top_method_test: Fail


[ $compiler == dart2js && $runtime == none ]
*: Fail, Pass # TODO(ahe): Triage these tests.


[ $compiler == dart2js && ($runtime == ff || $runtime == jsshell || $runtime == ie9)]
arithmetic_test: Fail # Issue 7881


[ $compiler == dart2js && $runtime == ie9 ]
double_to_string_as_exponential3_test: Fail
double_to_string_as_fixed_test: Fail
double_to_string_as_precision3_test: Fail
expect_test: Fail
stack_overflow_test: Fail
stack_overflow_stacktrace_test: Fail
licm2_test: Timeout # Issue: 11848


[ $compiler == dart2js && $runtime == safari ]
arithmetic_test: Fail # Issue: 7414


[ $runtime == opera ]
null_access_error_test: Fail # Issue: 7413
string_interpolate_null_test: Fail # Issue: 7413
call_through_null_getter_test: Fail
closure3_test: Fail
execute_finally3_test: Fail
method_invocation_test: Fail
stack_overflow_test: Fail
stack_overflow_stacktrace_test: Fail
closure_call_wrong_argument_count_negative_test: Skip
label_test: Skip
