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

reg_exp_unicode_2_test: Fail # Bug 6592

[ $compiler == dart2js && ($runtime == d8 || $runtime == drt) ]
hash_set_test: Pass, Fail # v8 bug: Issue 12293
list_test: Pass, Fail # v8 bug: Issue 12293


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

symbol_test/01: Fail, Pass # bug 11669
symbol_test/02: Fail, Pass # bug 11669
symbol_test/03: Fail, Pass # bug 11669

[ $compiler == none || $compiler == dart2dart ]
symbol_test/none: Fail # bug 11669
error_stack_trace2_test: Fail  # Bug 5802

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

[ $compiler == dart2js && ($runtime == chrome || $runtime == drt || $runtime == d8 || $runtime == safari) ]
string_trim_unicode_test: Fail  # V8 bug 2408

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

[ $runtime == ie9 && ($system == linux || $system == macos) ]
*: Skip

[ $runtime == safari && ($system == linux || $system == windows) ]
*: Skip

[ $runtime == vm ]
string_trim_unicode_test: Fail  # Bug 6569

[ $compiler == dart2js ]
error_stack_trace1_test: Fail # Issue 12399
math_parse_double_test: Fail # Expect.equals(expected: <78187493520>, actual: <0>)
math_test: Fail # issue 3333
surrogate_pair_toUpper_test: Fail # Issue 6707

big_integer_vm_test: Fail, OK # VM specific test.
compare_to2_test: Fail, OK    # Requires bigint support.
string_base_vm_test: Fail, OK # VM specific test.

string_replace_func_test: Skip # Bug 6554 - doesn't terminate.

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

[ $compiler == dart2js && $runtime == ie9 ]
date_time7_test: Fail # BUG(3304): Maybe this doesn't time out?
json_strict_test: Fail # IE parses slightly harmless no-standard JSON.
string_base_vm_test: Fail # BUG(3304): Maybe this doesn't time out?
list_test: Fail # IE doesn't support typed data.

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


# Library changes
[ $compiler == none || $compiler == dart2js || $compiler == dart2dart ]
map_keys2_test: Fail # Generic types aren't right.

[ $compiler == dart2js ]
map_values2_test: Fail # Generic types aren't right

## Tests failing after merge of experimental library branch.
[ $compiler == dart2js ]
# Tests fail due to bug in generics on constants, issue 6827
iterable_to_list_test: Fail
iterable_to_set_test: Fail

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

[ $compiler == dart2analyzer ]
symbol_test/02: Fail
symbol_test/03: Fail
int_parse_radix_test: fail
list_insert_test: fail
list_removeat_test: fail

[ $arch == arm ]
collection_to_string_test: Pass, Crash # Issue: 11207

[ $arch == simarm && $mode == debug ]
collection_to_string_test: Pass, Crash # Issue: 11207

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

[ $arch == simmips && $checked ]
collection_length_test: Pass, Timeout

[ $arch == simmips && $mode == debug ]
collection_to_string_test: Pass, Crash # Issue: 11207
