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

# This file contains the tests that have been identified as broken and have been filed
# on the co19 issue tracker.
# In order to qualify here these tests need to fail both on the VM and dart2js.

### GENERAL FAILURES ###

[ $runtime == vm || $runtime != vm ]
# Tests that fail everywhere, including the analyzer.
LibTest/core/RegExp/firstMatch_A01_t01: Fail, OK # Issue 635
LibTest/core/Stopwatch/start_A01_t01: PASS, FAIL, OK # co19 issue 657
LibTest/core/Stopwatch/start_A01_t02: PASS, FAIL, OK # co19 issue 657
LibTest/core/Stopwatch/elapsedTicks_A01_t01: PASS, FAIL, OK # co19 issue 657

[ $runtime == vm || $runtime == dartium || $compiler == dart2dart || $compiler == dart2js ]
Language/12_Expressions/30_Identifier_Reference_A02_t01: fail, pass, ok # co19 issue 649

Language/07_Classes/6_Constructors/1_Generative_Constructors_A12_t02: fail # co19-roll r587: Please triage this failure
Language/07_Classes/6_Constructors/1_Generative_Constructors_A20_t02: fail # co19-roll r587: Please triage this failure

LibTest/collection/LinkedList/forEach_A02_t01: RuntimeError, OK # co19 issue 662

LibTest/core/Invocation/namedArguments_A01_t01: RuntimeError # co19-roll r607: Please triage this failure
LibTest/core/Symbol/Symbol_A01_t04: RuntimeError # co19-roll r607: Please triage this failure
LibTest/core/Set/intersection_A02_t01: Fail, OK # Issue 659

Language/07_Classes/07_Classes_A13_t01: Pass, MissingCompileTimeError, Fail # co19-roll r623: Please triage this failure
Language/07_Classes/07_Classes_A13_t04: Pass, MissingCompileTimeError, Fail # co19-roll r623: Please triage this failure
Language/07_Classes/07_Classes_A13_t07: Pass, MissingCompileTimeError, Fail # co19-roll r623: Please triage this failure

LibTest/collection/HashSet/HashSet_class_A01_t01: RuntimeError, OK # co19 issue 663
LibTest/collection/LinkedHashSet/LinkedHashSet_class_A01_t01: RuntimeError, OK # co19 issue 663
LibTest/core/Set/IterableBase_A01_t01: RuntimeError, OK # co19 issue 663

LibTest/core/Uri/toFilePath_A01_t01: pass, fail, ok # co19 Issue 592

LibTest/collection/ListBase/ListBase_class_A01_t01: Skip, OK # co19 issue 661
LibTest/collection/ListMixin/ListMixin_class_A01_t01: Skip, OK # co19 issue 661

LibTest/isolate/Isolate/spawnUri_A02_t04: Fail # co19-roll r672: Please triage this failure

[ $runtime == vm || $runtime == dartium || $compiler == dart2js ]
LibTest/math/acos_A01_t01: PASS, FAIL, OK # co19 issue 44
LibTest/math/asin_A01_t01: PASS, FAIL, OK # co19 issue 44
LibTest/math/atan_A01_t01: PASS, FAIL, OK # co19 issue 44

LibTest/math/cos_A01_t01: PASS, FAIL, OK # co19 issue 44
LibTest/math/tan_A01_t01: PASS, FAIL, OK  # co19 issue 44

LibTest/core/double/ceil_A01_t03: FAIL, OK # co19 issue 389
LibTest/core/double/ceil_A01_t04: FAIL, OK # co19 issue 389
LibTest/core/double/floor_A01_t03: FAIL, OK # co19 issue 389
LibTest/core/double/floor_A01_t04: FAIL, OK # co19 issue 389
LibTest/core/double/round_A01_t02: FAIL, OK # co19 issue 389
LibTest/core/double/round_A01_t04: FAIL, OK # co19 issue 389

LibTest/async/Future/Future.delayed_A01_t02: Pass, Fail # Issue 15524

LibTest/async/Stream/Stream.periodic_A01_t01: PASS, FAIL, OK # co19 issue 538

LibTest/isolate/SendPort/send_A02_t02: SKIP # co19 issue 493
LibTest/isolate/SendPort/send_A02_t03: SKIP # co19 issue 495


[ $runtime == vm || $compiler == dart2js ]
Language/07_Classes/6_Constructors_A02_t01: SKIP # co19 issue 415.
Language/14_Libraries_and_Scripts/1_Imports_A03_t65: PASS, FAIL, OK # co19 issue 560

LibTest/math/exp_A01_t01: PASS, FAIL, OK # co19 issue 44
LibTest/math/sin_A01_t01: PASS, FAIL, OK # co19 issue 44

LibTest/async/Stream/Stream.periodic_A03_t01: PASS, FAIL, OK # co19 issue 538
LibTest/async/Timer/run_A01_t01: PASS, FAIL, OK # co19 issue 538
LibTest/async/Timer/Timer_A01_t01: PASS, FAIL, OK # co19 issue 538
LibTest/async/Timer/Timer_A02_t01: PASS, FAIL, OK # co19 issue 538
LibTest/async/Timer/Timer.periodic_A01_t01: PASS, FAIL, OK # co19 issue 537
LibTest/async/Timer/Timer.periodic_A02_t01: PASS, FAIL, OK # co19 issue 538

LibTest/isolate/IsolateStream/contains_A02_t01: FAIL, OK # co19 issue 540


[ $runtime == vm || $compiler == none || $compiler == dart2js ]
LibTest/isolate/IsolateStream/any_A01_t01: Fail # Co19 issue 639
LibTest/isolate/IsolateStream/asBroadcastStream_A01_t01: Fail # Co19 issue 639
LibTest/isolate/IsolateStream/contains_A01_t01: Fail # Co19 issue 639
LibTest/isolate/IsolateStream/first_A01_t01: Fail # Co19 issue 639
LibTest/isolate/IsolateStream/first_A02_t01: Fail # Co19 issue 639
LibTest/isolate/IsolateStream/first_A02_t02: Fail # Co19 issue 639
LibTest/isolate/IsolateStream/isBroadcast_A01_t01: Fail # Co19 issue 639
LibTest/isolate/IsolateStream/isBroadcast_A01_t02: Fail # Co19 issue 639
LibTest/isolate/IsolateStream/isEmpty_A01_t01: Fail # Co19 issue 639
LibTest/isolate/IsolateStream/last_A01_t01: Fail # Co19 issue 639
LibTest/isolate/IsolateStream/last_A02_t01: Fail # Co19 issue 639
LibTest/isolate/IsolateStream/length_A01_t01: Fail # Co19 issue 639
LibTest/isolate/IsolateStream/single_A01_t01: Fail # Co19 issue 639
LibTest/isolate/IsolateStream/single_A02_t01: Fail # Co19 issue 639
LibTest/isolate/ReceivePort/close_A01_t01: Fail # Co19 issue 639
LibTest/isolate/ReceivePort/close_A02_t01: Fail # Co19 issue 639
LibTest/isolate/ReceivePort/receive_A01_t01: Fail # Co19 issue 639
LibTest/isolate/ReceivePort/receive_A01_t03: Fail # Co19 issue 639
LibTest/isolate/ReceivePort/toSendPort_A01_t01: Fail # Co19 issue 639
LibTest/isolate/ReceivePort/toSendPort_A01_t03: Fail # Co19 issue 639
LibTest/isolate/SendPort/call_A01_t01: Fail # Co19 issue 639
LibTest/isolate/SendPort/hashCode_A01_t01: Fail # Co19 issue 639
LibTest/isolate/SendPort/operator_equality_A01_t01: Fail # Co19 issue 639
LibTest/isolate/SendPort/send_A01_t01: Pass
LibTest/isolate/SendPort/send_A02_t01: Fail # Co19 issue 639
LibTest/isolate/SendPort/send_A02_t04: Fail # Co19 issue 639
LibTest/isolate/SendPort/send_A02_t05: Fail # Co19 issue 639
LibTest/isolate/SendPort/send_A02_t06: Fail # Co19 issue 639
LibTest/isolate/SendPort/send_A03_t01: Fail # Co19 issue 639
LibTest/isolate/SendPort/send_A03_t02: Fail # Co19 issue 639

Language/14_Libraries_and_Scripts/4_Scripts_A03_t03: MissingRuntimeError, OK # co19 issue 638


### CHECKED MODE FAILURES ###

[ ($runtime == vm || $runtime == dartium || $compiler == dart2js) && $checked]
Language/13_Statements/09_Switch_A09_t01: PASS, FAIL, OK # co19 issue 633
LibTest/collection/DoubleLinkedQueue/removeFirst_A01_t01: RuntimeError # co19-roll r607: Please triage this failure
LibTest/collection/LinkedList/LinkedList_A01_t01: RuntimeError # co19-roll r623: Please triage this failure
