# 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) ]
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 == dartanalyzer || $compiler == dart2analyzer]
bool_from_environment2_test/01: Fail
bool_from_environment2_test/02: Fail
bool_from_environment2_test/03: Fail
bool_from_environment2_test/04: Fail
int_from_environment3_test/01: Fail
int_from_environment3_test/02: Fail
int_from_environment3_test/03: Fail
int_from_environment3_test/04: Fail
string_from_environment3_test/01: Fail
string_from_environment3_test/02: Fail
string_from_environment3_test/03: Fail
string_from_environment3_test/04: Fail

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

symbol_test/01: Fail, Pass # bug 11669

[ $compiler == none && $runtime != dartium && $runtime != drt ]
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

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

[ $compiler == none && $runtime == dartium ]
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 ]
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: Pass, Timeout # 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

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 || $compiler == dart2dart]
symbol_operator_test/01: CompileTimeError # Issue 15653.
symbol_operator_test/02: CompileTimeError # Issue 15653.

[ $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 == 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 ]
symbol_test/02: Fail
symbol_test/03: Fail
int_parse_radix_test: fail
list_insert_test: fail
list_removeat_test: fail
symbol_test/01: fail # test issue 13730; It is static type warning if "const" instance creation argument type is not compatible with parameter type

[ $compiler == dart2analyzer ]
symbol_test/02: Fail
symbol_test/03: Fail
int_parse_radix_test: fail
list_insert_test: fail
list_removeat_test: fail
symbol_test/01: fail # test issue 13730; It is static type warning if "const" instance creation argument type is not compatible with parameter type

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

[ $arch == simarm && $checked ]
num_parse_test: 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 ]
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
