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

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

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

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 == dart2js && ($runtime == drt || $runtime == safari || $runtime == safarimobilesim) ]
string_trimlr_test/none: Fail # Bug in v8. Fixed in v8 r19222, 2014-02-10.

[ $compiler == dart2js && ( $runtime == drt) ]
string_case_test/02: Fail, OK  # Bug in our version of V8.

[ $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
symbol_test/01: Fail, OK # Test Issue 13730; It is static type warning if "const" instance creation argument type is not compatible with parameter type
symbol_test/02: Fail # Issue 18755
symbol_test/03: Fail # Issue 18755

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