# 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 == dart2dart]
bool_from_environment2_test: Skip
bool_from_environment_default_value_test: Skip
bool_from_environment_test: Skip
int_from_environment2_test: Skip
int_from_environment3_test: Skip
int_from_environment_default_value_test: Skip
int_from_environment_test: Skip
string_from_environment2_test: Skip
string_from_environment3_test: Skip
string_from_environment_default_value: Skip
string_from_environment_test: Skip

[ $compiler == none && ($runtime == drt || $runtime == dartium || $runtime == ContentShellOnAndroid) ]
bool_from_environment2_test: Skip
bool_from_environment_default_value_test: Skip
bool_from_environment_test: Skip
int_from_environment2_test: Skip
int_from_environment3_test: Skip
int_from_environment_default_value_test: Skip
int_from_environment_test: Skip
string_from_environment2_test: Skip
string_from_environment3_test: Skip
string_from_environment_default_value: Skip
string_from_environment_test: Skip

[ $compiler == none ]
unicode_test: Fail        # Bug 6706
compare_to2_test: Fail    # Bug 4018

symbol_test/01: Fail, Pass # bug 11669

# #void should be a valid symbol.
[ $compiler == none || $compiler == dart2js || $compiler == dart2dart ]
symbol_reserved_word_test/02: CompileTimeError # bug 20191
symbol_reserved_word_test/05: CompileTimeError # bug 20191

[ $compiler == none && ($runtime == drt || $runtime == dartium || $runtime == ContentShellOnAndroid) ]
symbol_reserved_word_test/02: RuntimeError # bug 20191 / dartium/drt cannot detect CompileTimeErrors
symbol_reserved_word_test/05: RuntimeError # bug 20191 / dartium/drt cannot detect CompileTimeErrors

# new Symbol('void') should be allowed.
[ $compiler == dart2js ]
symbol_reserved_word_test/03: RuntimeError # bug 19972

# With the exception of 'void', const Symbol() should not accept reserved
# words.
[ $compiler == none || $compiler == dart2js || $compiler == dart2dart]
symbol_reserved_word_test/04: MissingCompileTimeError # bug 11669, 19972
symbol_reserved_word_test/07: MissingCompileTimeError # bug 11669, 19972
symbol_reserved_word_test/10: MissingCompileTimeError # bug 11669, 19972

[ $compiler == none && ($runtime == drt || $runtime == dartium || $runtime == ContentShellOnAndroid) ]
symbol_reserved_word_test/04: Fail # bug 11669, 19972 / dartium/drt cannot detect CompileTimeErrors
symbol_reserved_word_test/07: Fail # bug 11669, 19972 / dartium/drt cannot detect CompileTimeErrors
symbol_reserved_word_test/10: Fail # bug 11669, 19972 / dartium/drt cannot detect CompileTimeErrors

# With the exception of 'void', new Symbol() should not accept reserved words.
[ $compiler == none || $compiler == dart2dart ]
symbol_reserved_word_test/06: RuntimeError # bug 11669
symbol_reserved_word_test/09: RuntimeError # bug 11669
symbol_reserved_word_test/12: RuntimeError # bug 11669

[ $compiler == none && $runtime != dartium && $runtime != drt && $runtime != ContentShellOnAndroid ]
symbol_test/02: MissingCompileTimeError # bug 11669
symbol_test/03: MissingCompileTimeError # bug 11669

[ $compiler == none || $compiler == dart2dart ]
symbol_test/none: Fail # bug 11669
symbol_operator_test/03: Fail # bug 11669
string_case_test/01: Fail # Bug 18061

iterable_return_type_test/01: RuntimeError # Issue 13646
iterable_return_type_test/02: RuntimeError # Issue 13646

[ $compiler == none && ($runtime == drt || $runtime == dartium || $runtime == ContentShellOnAndroid) ]
main_test: Fail  # Dartium needs to check for both main() and main(args).

[ $runtime == ff || $runtime == ie9 || $runtime == jsshell ]
unicode_test: Fail

[ $runtime == ff || $runtime == ie9 || $runtime == jsshell || $runtime == safari || $runtime == safarimobilesim ]
double_round3_test: Fail, OK # Runtime rounds 0.49999999999999994 to 1.
double_round_to_double2_test: Fail, OK # Runtime rounds 0.49999999999999994 to 1.

[ $runtime == ie9 ]
double_round4_test: Fail, OK # IE bug: Math.round(4503599627370497) != 4503599627370497.
double_round_to_double3_test: Fail, OK # IE bug: Math.round(4503599627370497) != 4503599627370497.
collection_length_test: Skip # Issue 12844

[ $runtime == opera ]
core_runtime_types_test: Fail
null_nosuchmethod_test: Fail # Issue: 7413
unicode_test: Fail # Issue 14694

[ $compiler == dart2js ]
error_stack_trace1_test: RuntimeError # Issue 12399
hash_set_test/01: RuntimeError # Issue 11551
integer_to_string_test/01: RuntimeError # Issue 1533
iterable_return_type_test/01: RuntimeError # Issue 20085
iterable_return_type_test/02: RuntimeError # Dart2js does not support Uint64*.

big_integer_vm_test: RuntimeError, OK # VM specific test.
bit_twiddling_bigint_test: RuntimeError # Requires bigint support.
compare_to2_test: RuntimeError, OK    # Requires bigint support.
string_base_vm_test: RuntimeError, OK # VM specific test.
nan_infinity_test/01: Fail # Issue 11551

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

[ $compiler == dart2js && $runtime == ie9 ]
string_base_vm_test: Fail # BUG(3304): Maybe this doesn't time out?
list_test: Fail # IE doesn't support typed data.
shuffle_test: Fail # IE doesn't support typed data.

[ $compiler == dart2js && $runtime == chromeOnAndroid ]
list_as_map_test: Pass, Slow # TODO(kasperl): Please triage.

[ $compiler == dart2js && ($runtime == firefox || $runtime == safari || $runtime == chrome || $runtime == drt) ]

[ $compiler == dart2js && ($runtime == safari || $runtime == safarimobilesim) ]
string_trimlr_test/none: Fail

[ $compiler == dart2js && ($runtime == ie9 || $runtime == ie10) ]
string_case_test/01: Fail, OK  # Bug in IE.
string_case_test/02: Fail, OK  # Bug in IE.

[ $compiler == dart2js && ($runtime == ff || $runtime == jsshell) ]
string_case_test/01: Fail, OK  # Bug in Firefox.

[ $compiler == dart2js && $runtime == dartium ]
string_case_test/02: Fail, OK  # Bug in dartium version of V8.
string_case_test/03: Fail, OK  # Bug in dartium version of V8.

[ $compiler == dart2dart ]
compare_to2_test: Fail # inherited from VM
unicode_test: Fail # inherited from VM

[ $compiler == dart2dart && $minified ]
error_stack_trace1_test: Fail # Fails in minified mode, test depends on method names.

[ $compiler == dartanalyzer ]
int_parse_radix_test: Fail, OK # Test contains errors but doesn’t mark them as expected
list_insert_test: Fail, OK # Test contains errors but doesn’t mark them as expected
list_removeat_test: Fail, OK # Test contains errors but doesn’t mark them as expected

[ $compiler == dart2analyzer ]
int_parse_radix_test: fail
list_insert_test: fail
list_removeat_test: fail

[ $arch == simmips ]
int_parse_radix_test: Skip # Timeout

[ $arch == simarm && $checked ]
num_parse_test: Skip  # Pass, Timeout

[ $compiler == dartanalyzer || $compiler == dart2analyzer ]
error_stack_trace_test: StaticWarning, OK # Test generates errors on purpose.
iterable_element_at_test: StaticWarning, OK # Test generates errors on purpose.
num_clamp_test: StaticWarning, OK # Test generates errors on purpose.
string_test: StaticWarning, OK # Test generates error on purpose.

[ $compiler == dart2js && ($runtime == safari || $runtime == safarimobilesim) ]
list_test/01: Fail # Safari bug: Array(-2) seen as dead code.

[ $runtime == ie9 || $runtime == ie10 ]
num_parse_test: RuntimeError  # Issue 15316
num_parse_test/01: RuntimeError  # Issue 15316

[ $system == windows && $arch == x64 ]
stopwatch_test: Skip  # Flaky test due to expected performance behaviour.

