# Copyright (c) 2018, 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 == fasta ]
LanguageFeatures/Instantiate-to-bound/typedef/static/typedef_l2_06_t04: SkipByDesign # Won't fix. See https://github.com/dart-lang/sdk/issues/46288

[ $runtime == dart_precompiled ]
LibTest/io/RawDatagramSocket/join_A01_t01: Skip # https://github.com/dart-lang/co19/issues/195
LibTest/io/RawDatagramSocket/join_A01_t02: Skip # https://github.com/dart-lang/co19/issues/195
LibTest/io/RawDatagramSocket/join_A02_t01: Skip # https://github.com/dart-lang/co19/issues/195
LibTest/io/RawDatagramSocket/multicastInterface_A01_t01: Skip # https://github.com/dart-lang/co19/issues/195
LibTest/io/RawDatagramSocket/receive_A02_t02: Skip # https://github.com/dart-lang/co19/issues/195
LibTest/io/RawDatagramSocket/reduce_A01_t01: Skip # https://github.com/dart-lang/co19/issues/195
LibTest/io/RawDatagramSocket/reduce_A02_t02: Skip # https://github.com/dart-lang/co19/issues/195
LibTest/io/RawDatagramSocket/reduce_A04_t01: Skip # https://github.com/dart-lang/co19/issues/195
LibTest/mirrors/*: SkipByDesign # dart:mirrors is not supported

[ $runtime == vm ]
LibTest/collection/ListBase/ListBase_class_A01_t02: Slow, Pass # Does many calls
LibTest/collection/ListMixin/ListMixin_class_A01_t02: Slow, Pass # Does many calls
LibTest/core/List/List_class_A01_t02: Slow, Pass # Does many calls
LibTest/io/RawDatagramSocket/*: Skip # RawDatagramSocket are flacky. Skip them all until rewritten

[ $compiler == dartk && $runtime == vm && $system == macos ]
LibTest/collection/ListBase/ListBase_class_A01_t02: Slow, Pass
LibTest/collection/ListBase/ListBase_class_A01_t03: Slow, Pass
LibTest/collection/ListMixin/ListMixin_class_A01_t02: Slow, Pass
LibTest/collection/ListMixin/ListMixin_class_A01_t03: Slow, Pass
LibTest/core/List/List_class_A01_t02: Slow, Pass
LibTest/core/List/List_class_A01_t03: Slow, Pass

[ $runtime == dart_precompiled && ($arch == simarm64 || $arch == simarm64c) ]
LibTest/collection/ListBase/ListBase_class_A01_t01: SkipSlow # Issue 43036
LibTest/collection/ListMixin/ListMixin_class_A01_t01: SkipSlow # Issue 43036

# It makes no sense to run any test that uses spawnURI under the simulator
# as that would involve running CFE (the front end) in simulator mode
# to compile the URI file specified in spawnURI code.
# These Isolate tests that use spawnURI are hence skipped on purpose.
[ $runtime == dart_precompiled || $runtime == vm && ($arch == simarm || $arch == simarm64 || $arch == simarm64c) ]
LibTest/isolate/Isolate/spawnUri*: Skip
