# 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 == none && ($runtime == vm || $runtime == dartium || $runtime == ContentShellOnAndroid) ]

LibTest/core/RegExp/Pattern_semantics/firstMatch_Term_A03_t01: Fail # Issue 12508
LibTest/core/RegExp/Pattern_semantics/firstMatch_Atom_A02_t01: Fail # Issue 12508
LibTest/core/RegExp/Pattern_semantics/firstMatch_DecimalEscape_A01_t02: Fail # Issue 12508
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Fail # Issue 12508
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: Fail # Issue 12508
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterEscape_A06_t02: Fail # Issue 12508
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: Fail # Issue 12508
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: Fail # Issue 12508
LibTest/core/RegExp/Pattern_semantics/firstMatch_Term_A04_t01: RuntimeError # Issue 12508

LibTest/core/Match/operator_subscript_A01_t01: Fail # Issue 12508
LibTest/core/RegExp/firstMatch_A01_t01: Fail # Issue 12508
LibTest/core/int/toRadixString_A01_t01: Fail # co19 issue 492

Language/03_Overview/1_Scoping_A02_t28: RuntimeError # Issue 21163
Language/13_Statements/09_Switch_A01_t02: fail # Dart issue 12908
Language/13_Statements/12_Labels_A01_t03: fail # Dart issue 2238
Language/14_Libraries_and_Scripts/2_Exports_A04_t02: fail # Dart issue 12916
Language/14_Libraries_and_Scripts/2_Exports_A04_t03: fail # Dart issue 12916

LibTest/core/DateTime/parse_A03_t01: fail # Issue 12514

LibTest/core/DateTime/DateTime.now_A01_t02: Pass, Fail # co19 issue 709

LibTest/isolate/Isolate/spawnUri_A01_t02: Skip # Dart issue 15974
LibTest/isolate/Isolate/spawnUri_A01_t03: Skip # Dart issue 15974
LibTest/isolate/Isolate/spawnUri_A02_t01: RuntimeError # Dart issue 15617
LibTest/isolate/Isolate/spawnUri_A02_t02: Skip # Dart issue 15974
LibTest/isolate/Isolate/spawnUri_A02_t03: Skip # Dart issue 15974
LibTest/isolate/Isolate/spawnUri_A02_t04: Skip # Dart issue 15974
LibTest/isolate/Isolate/spawn_A02_t02: RuntimeError # Dart issue 15617

LibTest/core/RegExp/Pattern_semantics/splitQueryString_A02_t01: RuntimeError # Issue 12508
LibTest/core/Symbol/Symbol_A01_t03: RuntimeError # Issue 13596
LibTest/core/Symbol/Symbol_A01_t05: RuntimeError # Issue 13596

[ $compiler == none && $runtime == vm ]
LibTest/typed_data/Float32x4/reciprocalSqrt_A01_t01: Pass, Fail # co19 issue 599
LibTest/typed_data/Float32x4/reciprocal_A01_t01: Pass, Fail # co19 issue 599

# With asynchronous loading, the load errors in these tests are no longer recognized as compile errors:
Language/14_Libraries_and_Scripts/1_Imports_A04_t02: Fail
Language/14_Libraries_and_Scripts/2_Exports_A05_t02: Fail
Language/14_Libraries_and_Scripts/3_Parts_A01_t06: Fail

[ $runtime == vm ]
# These flaky tests also fail with dart2dart.
LibTest/math/MutableRectangle/MutableRectangle.fromPoints_A01_t01: Pass, RuntimeError # co19-roll r607: Please triage this failure

[ $compiler == none && $runtime == vm && $mode == debug ]
LibTest/core/List/List_class_A01_t02: Pass, Slow

[ $compiler == none && $runtime == vm && ($arch != x64 && $arch != simarm64) ]
LibTest/core/int/operator_left_shift_A01_t02: Fail # co19 issue 129

[ $compiler == none && $runtime == vm && $arch == mips ]
LibTest/core/double/toInt_A01_t01: Fail
# These tests take too much memory (300 MB) for our 1 GB test machine.
# co19 issue 673. http://code.google.com/p/co19/issues/detail?id=673
LibTest/core/List/List_class_A01_t02: Skip # co19 issue 673
LibTest/collection/ListMixin/ListMixin_class_A01_t02: Skip # co19 issue 673
LibTest/collection/ListBase/ListBase_class_A01_t02: Skip # co19 issue 673

[ $compiler == none && $runtime == vm && $arch == mips && $mode == debug ]
LibTest/isolate/Isolate/spawnUri_A01_t04: Crash, Pass # dartbug.com/17440
LibTest/isolate/Isolate/spawn_A01_t04: Crash, Pass # dartbug.com/17440

[ $compiler == none && $runtime == vm && ($arch == simarm || $arch == simmips || $arch == simarm64) ]
LibTest/core/Uri/Uri_A06_t03: Skip  # Timeout
LibTest/collection/ListMixin/ListMixin_class_A01_t01: Skip  # Timeout
LibTest/collection/ListBase/ListBase_class_A01_t01: Skip  # Timeout
LibTest/collection/ListMixin/ListMixin_class_A01_t02: Skip  # Timeout
LibTest/collection/ListBase/ListBase_class_A01_t02: Skip  # Timeout

[ $runtime == vm ]
LibTest/isolate/Isolate/spawn_A02_t01: Skip # co19 issue 667
LibTest/html/*: SkipByDesign # dart:html not supported on VM.
LayoutTests/fast/*: SkipByDesign # DOM not supported on VM.
WebPlatformTest/*: SkipByDesign # dart:html not supported on VM.
