# 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 || $compiler == dart2dart || $compiler == dart2js ]
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/core/Uri/decodeQueryComponent_A02_t01: fail # co19 Issue 591
LibTest/core/Uri/toFilePath_A01_t01: pass, fail, ok # co19 Issue 592
# Maybe we should wait until isolate library is sealed before triaging these.
LibTest/isolate/isolate_api/spawnFunction_A04_t01: fail, timeout # co19-roll r546: Please triage this failure
LibTest/isolate/isolate_api/streamSpawnFunction_A02_t01: fail, timeout # co19-roll r546: Please triage this failure

[ $runtime == vm || $compiler == dart2dart || $compiler == dart2js ]
LibTest/typed_data/ByteData/elementSizeInBytes_A01_t01: fail # co19-roll r569: Please triage this failure

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

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/exp_A01_t01: PASS, FAIL, OK # co19 issue 44
LibTest/math/max_A01_t03: FAIL, OK # co19 issue 467
LibTest/math/min_A01_t03: FAIL, OK # co19 issue 467
LibTest/math/sin_A01_t01: PASS, FAIL, OK # co19 issue 44
LibTest/math/tan_A01_t01: PASS, FAIL, OK  # co19 issue 44

LibTest/collection/Queue/iterator_current_A01_t02: FAIL, OK # co19 issue 475

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/core/double/truncate_A01_t03: FAIL, OK # co19 issue 389
LibTest/core/double/truncate_A01_t04: FAIL, OK # co19 issue 389

LibTest/async/Stream/Stream.periodic_A01_t01: TIMEOUT, PASS, FAIL, OK # co19 issue 538
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/async/Future/Future.delayed_A01_t02: PASS, FAIL, OK # co19 issue 536

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

LibTest/isolate/isolate_api/streamSpawnFunction_A02_t02: PASS, FAIL, OK # co19 issue 540
LibTest/isolate/isolate_api/streamSpawnFunction_A02_t03: PASS, FAIL, OK # co19 issue 540
LibTest/isolate/IsolateStream/contains_A02_t01: PASS, FAIL, OK # co19 issue 540

LibTest/async/EventTransformStream/listen_A04_t01: Pass, Timeout # co19 issue 542

LibTest/typed_data/Int8List/Int8List.fromList_A01_t02: Fail # co19-roll r559: Please triage this failure

LibTest/typed_data/Float32List/removeAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Float32List/retainAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Float32x4List/removeAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Float32x4List/retainAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Float64List/removeAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Float64List/retainAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Int16List/removeAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Int16List/retainAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Int32List/removeAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Int32List/retainAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Int64List/removeAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Int64List/retainAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Int8List/removeAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Int8List/retainAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Uint16List/removeAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Uint16List/retainAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Uint32List/removeAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Uint32List/retainAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Uint64List/removeAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Uint64List/retainAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Uint8ClampedList/removeAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Uint8ClampedList/retainAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Uint8List/removeAll_A01_t01: Fail  # co19 issue 548
LibTest/typed_data/Uint8List/retainAll_A01_t01: Fail  # co19 issue 548

LibTest/core/String/concat_A01_t01: Fail  # co19 issue 561
LibTest/core/String/concat_A02_t01: Fail  # co19 issue 561

[ $compiler != dartanalyzer ]
# Dart2js/Dart2dart succeedes due to a bug in their parser (issue 13223).
Language/12_Expressions/21_Bitwise_Expressions_A01_t01: Fail # co19 Issue 595

### CHECKED MODE FAILURES ###

[ ($runtime == vm || $compiler == dart2js) && $checked]
Language/07_Classes/6_Constructors/2_Factories_A12_t02: fail # co19-roll r587: Please triage this failure
Language/13_Statements/09_Switch_A05_t01: FAIL, OK # co19 issue 498
Language/14_Libraries_and_Scripts/1_Imports_A03_t26: FAIL, OK  # co19 issue 498
Language/14_Libraries_and_Scripts/1_Imports_A03_t46: PASS, FAIL, OK # co19 issue 560
Language/14_Libraries_and_Scripts/1_Imports_A03_t66: PASS, FAIL, OK # co19 issue 560
Language/15_Types/1_Static_Types_A03_t01: Fail # co19-roll r559: Please triage this failure
LibTest/async/EventTransformStream/contains_A01_t01: FAIL, OK  # co19 issue 498
LibTest/core/DateTime/compareTo_A02_t01: FAIL, OK  # co19 issue 498
LibTest/core/List/removeAt_A02_t01: FAIL, OK  # co19 issue 498
LibTest/core/TypeError/column_A01_t01: FAIL, OK # co19 issue 510
LibTest/core/TypeError/dstName_A01_t01: FAIL, OK # co19 issue 510
LibTest/core/TypeError/dstType_A01_t01: FAIL, OK # co19 issue 510
LibTest/core/TypeError/failedAssertion_A01_t01: FAIL, OK # co19 issue 510
LibTest/core/TypeError/line_A01_t01: FAIL, OK # co19 issue 510
LibTest/core/TypeError/srcType_A01_t01: FAIL, OK # co19 issue 510
LibTest/core/TypeError/url_A01_t01: FAIL, OK # co19 issue 510
