# 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) ]

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

LibTest/async/Timer/Timer.periodic_A02_t01: Pass, Fail # co19 issue 537

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-roll r546: Please triage this failure
LibTest/isolate/IsolateStream/contains_A02_t01: fail, pass # co19-roll r546: Please triage this failure
LibTest/isolate/ReceivePort/receive_A01_t02: Fail # VM triage, check spec.
LibTest/isolate/SendPort/send_A01_t01: fail # co19-roll r546: Please triage this failure

LibTest/core/Invocation/positionalArguments_A01_t01: RuntimeError # co19-roll r607: Please triage this failure
LibTest/core/RegExp/Pattern_semantics/splitQueryString_A02_t01: RuntimeError # co19-roll r607: Please triage this failure
LibTest/core/Symbol/Symbol_A01_t03: RuntimeError # co19-roll r607: Please triage this failure
LibTest/core/Symbol/Symbol_A01_t05: RuntimeError # co19-roll r607: Please triage this failure
LibTest/typed_data/Float32x4/clamp_A01_t01: Pass, Fail # co19 issue 636
LibTest/typed_data/Uint32x4/*: Skip # co19 issue 656
LibTest/typed_data/Float32x4/Float32x4.fromUint32x4Bits_A01_t01: Skip # co19 issue 656
LibTest/typed_data/Float32x4/Float32x4.fromUint32x4Bits_A01_t02: Skip # co19 issue 656
LibTest/typed_data/Float32x4/equal_A01_t01: Skip # co19 issue 656
LibTest/typed_data/Float32x4/notEqual_A01_t01: Skip # co19 issue 656
LibTest/typed_data/Float32x4/greaterThan_A01_t01: Skip # co19 issue 656
LibTest/typed_data/Float32x4/greaterThanOrEqual_A01_t01: Skip # co19 issue 656
LibTest/typed_data/Float32x4/lessThan_A01_t01: Skip # co19 issue 656
LibTest/typed_data/Float32x4/lessThanOrEqual_A01_t01: Skip # co19 issue 656

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

[ $compiler == none && $runtime == vm && $checked ]
LibTest/async/Future/catchError_A01_t01: Fail # Future constructors have changed # issue 408
LibTest/core/List/removeAt_A02_t01: Fail # co19-roll r641: Please triage this failure

# Passing for the wrong reasons:
LibTest/async/Completer/completeError_A03_t02: Pass # No AsyncError anymore. Issue 407 and 463
LibTest/async/Completer/complete_A02_t02: Pass # No AsyncError anymore. Issue 407 and 463
LibTest/async/Future/catchError_A01_t01: Pass # No AsyncError anymore. Issue 407 and 463
LibTest/async/Future/catchError_A01_t02: Pass # No AsyncError anymore. Issue 407 and 463

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

[ $compiler == none && $runtime == vm && $mode == debug ]
LibTest/async/Stream/Stream.periodic_A03_t01: Fail # co19-roll r546: Please triage this failure
LibTest/isolate/IsolateStream/contains_A02_t01: Fail # co19-roll r546: Please triage this failure
Language/15_Types/4_Interface_Types_A11_t01: Pass, Slow
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/math/log_A01_t01: Fail
LibTest/core/double/toInt_A01_t01: Fail

[ $compiler == none && $runtime == vm && ($arch == simarm || $arch == simmips) ]
LibTest/core/Uri/Uri_A06_t03: Pass, Timeout # co19-roll r576: Please triage this failure

[ $compiler == none && $checked && ($runtime == vm || $runtime == dartium) ]
Language/15_Types/1_Static_Types_A03_t01: RuntimeError # co19-roll r667: Please triage this failure

[ $compiler == none && $runtime == vm && $system == windows && $mode == debug ]
Language/15_Types/4_Interface_Types_A11_t01: pass, timeout # Issue 13349
Language/15_Types/4_Interface_Types_A11_t02: pass, timeout # Issue 13349
