# 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/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/05_Variables/05_Variables_A05_t01: fail # Dart issue 12539
Language/05_Variables/05_Variables_A05_t02: fail # Dart issue 12539
Language/13_Statements/06_For_A01_t11: fail # Dart issue 5675
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

# All isolate are being ignored at the moment as the library will go through some changes.
LibTest/isolate/IsolateStream/any_A02_t01: fail # co19 issue 668
LibTest/isolate/IsolateStream/contains_A02_t01: fail # co19 issue 668
LibTest/isolate/ReceivePort/receive_A01_t02: Fail # VM triage, check spec.

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

[ $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 && $checked ]
LibTest/core/List/removeAt_A02_t01: Fail # co19 issue 670

#end [ $compiler == none && $runtime == vm && $checked ]

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

[ $compiler == none && $runtime == vm && $arch != x64 ]
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_t01: Skip # co19 issue 673
LibTest/collection/ListMixin/ListMixin_class_A01_t01: Skip # co19 issue 673
LibTest/collection/ListBase/ListBase_class_A01_t01: 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) ]
LibTest/core/Uri/Uri_A06_t03: Skip # Timeouts, co19-roll r576: Please triage this failure
LibTest/collection/ListMixin/ListMixin_class_A01_t01: Skip # Timeouts
LibTest/collection/ListBase/ListBase_class_A01_t01: Skip # Timeouts

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

[ $compiler == none && $runtime == vm && $arch == simarm64 ]
*: Skip
