# 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 at
#    https://code.google.com/p/co19/issues/list (read-only).
#    https://github.com/dart-lang/co19/issues .
#
# In order to qualify here these tests need to fail both on the VM and dart2js.
### GENERAL FAILURES ###
LibTest/typed_data/Float32List/first_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Float32List/last_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Float64List/first_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Float64List/last_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Int16List/first_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Int16List/last_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Int32List/first_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Int32List/last_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Int64List/first_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Int64List/last_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Int8List/first_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Int8List/last_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Uint16List/first_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Uint16List/last_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Uint32List/first_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Uint32List/last_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Uint64List/first_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Uint64List/last_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Uint8ClampedList/first_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Uint8ClampedList/last_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Uint8List/first_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Uint8List/last_A01_t02: RuntimeError # co19 issue 130

# Tests that fail everywhere, including the analyzer.
[ $compiler != fasta ]
Language/Classes/Getters/type_object_t01: Fail # co19 issue 115
Language/Classes/Getters/type_object_t02: Fail # co19 issue 115
Language/Classes/Setters/type_object_t01: Fail # co19 issue 115
Language/Classes/Setters/type_object_t02: Fail # co19 issue 115
Language/Classes/Static_Methods/type_object_t01: Fail # co19 issue 115
Language/Classes/Static_Methods/type_object_t02: Fail # co19 issue 115
Language/Statements/Assert/syntax_t04: Pass, Fail # assert now has an optional second parameter.
LibTest/async/Zone/bindBinaryCallback_A01_t02: Fail # co19 issue 126
LibTest/async/Zone/bindCallback_A01_t02: Fail # co19 issue 126
LibTest/async/Zone/bindUnaryCallback_A01_t02: Fail # co19 issue 126
LibTest/core/RegExp/firstMatch_A01_t01: Fail # co19 issue 742
LibTest/typed_data/ByteData/buffer_A01_t01: Fail # co19 r736 bug - sent comment.

[ $strong ]
Language/Expressions/Additive_Expressions/syntax_t01/07: CompileTimeError
LibTest/typed_data/Float32x4List/first_A01_t02: CompileTimeError # co19 issue 130 + type error
LibTest/typed_data/Float32x4List/last_A01_t02: CompileTimeError # co19 issue 130 + type error

[ !$strong ]
LibTest/typed_data/Float32x4List/first_A01_t02: RuntimeError # co19 issue 130
LibTest/typed_data/Float32x4List/last_A01_t02: RuntimeError # co19 issue 130

# Tests that fail on every runtime, but not on the analyzer.
[ $compiler != dart2analyzer && $compiler != fasta ]
Language/Classes/same_name_type_variable_t04: Pass, MissingCompileTimeError, Fail # Issue 14513,25525
Language/Classes/same_name_type_variable_t07: Pass, MissingCompileTimeError, Fail # Issue 14513,25525
Language/Expressions/Instance_Creation/Const/abstract_class_t01: Pass, Fail # co19 issue 66
Language/Expressions/Instance_Creation/Const/abstract_class_t03: Pass, Fail # co19 issue 66
LibTest/async/Stream/asBroadcastStream_A02_t01: Fail # co19 issue 687
LibTest/async/StreamController/addStream_A03_t01: RuntimeError # Issue <TODO>
LibTest/async/StreamSink/addStream_A01_t02: RuntimeError # Issue <TODO>
LibTest/async/Zone/runBinaryGuarded_A01_t01: Fail # co19 issue 126
LibTest/async/Zone/runGuarded_A01_t01: Fail # co19 issue 126
LibTest/async/Zone/runUnaryGuarded_A01_t01: Fail # co19 issue 126
LibTest/core/Expando/Expando_A03_t01: RuntimeError # Issue 17735
LibTest/core/Expando/Expando_A03_t03: RuntimeError # Issue 17735
LibTest/core/Expando/Expando_A03_t04: RuntimeError # Issue 17735
LibTest/core/Expando/Expando_A03_t05: RuntimeError # Issue 17735
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterEscape_A06_t02: RuntimeError # co19 issue 741
LibTest/core/RegExp/Pattern_semantics/firstMatch_DecimalEscape_A01_t02: Fail # co19 issue 740
LibTest/core/Symbol/Symbol_A01_t04: RuntimeError # Issue 25804
LibTest/isolate/IsolateStream/any_A01_t01: Fail # Co19 issue 639 (Fixed in r674)
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/asBroadcastStream_A02_t01: Fail # co19 issue 687
LibTest/isolate/ReceivePort/receive_A01_t01: Fail # Co19 issue 639
LibTest/isolate/ReceivePort/receive_A01_t03: Fail # Co19 issue 639
LibTest/isolate/ReceivePort/sendPort_A01_t01: Fail # Co19 issue 639
LibTest/isolate/SendPort/call_A01_t01: Fail # Co19 issue 639
LibTest/isolate/SendPort/send_A02_t02: Skip # co19 issue 493 (not fixed in r672)
LibTest/isolate/SendPort/send_A02_t03: Skip # co19 issue 495 (not fixed in r672)
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
LibTest/math/acos_A01_t01: Pass, Fail, OK # Issue 26261
LibTest/math/asin_A01_t01: Pass, Fail, OK # Issue 26261
LibTest/math/atan_A01_t01: Pass, Fail, OK # Issue 26261
LibTest/math/cos_A01_t01: Pass, Fail, OK # Issue 26261
LibTest/math/log_A01_t01: Pass, Fail, OK # Issue 26261
LibTest/math/tan_A01_t01: Pass, Fail, OK # Issue 26261

[ !$checked && !$strong ]
Language/Expressions/Additive_Expressions/syntax_t01/07: MissingRuntimeError # Unchecked mode allows List + anything-with-a-zero-length

