# Copyright (c) 2014, 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.

# Don't run any test-like files that show up in packages directories. It
# shouldn't be necessary to run "pub install" in these packages, but if you do
# it shouldn't break the tests.
*/*/*/*/*/packages/*/*: Skip
*/*/*/*/packages/*/*: Skip
*/*/*/packages/*/*: Skip
*/*/packages/*/*: Skip
*/packages/*/*: Skip

[ $runtime == vm ]
http_io/test/http_cross_process_test: Skip # Fails with --no-preview-dart-2
http_io/test/http_proxy_advanced_test: Pass, RuntimeError # flaky
http_io/test/http_proxy_test: Pass, RuntimeError # flaky

[ $browser ]
dart_style/*: SkipByDesign
pub/*: SkipByDesign

[ $runtime == vm && $system == windows ]
pub/test/run/app_can_read_from_stdin_test: Fail # Issue 19448
pub/test/run/forwards_signal_posix_test: SkipByDesign

[ $runtime == vm && ($arch == simarm || $arch == simarm64 || $arch == simarm64c || $arch == simriscv32 || $arch == simriscv64 || $builder_tag == asan || $mode == debug) ]
dart_style/test/command_line_test: Skip # The test controller does not take into account that tests take much longer in debug mode or on simulators.
dart_style/test/formatter_test: Skip # The test controller does not take into account that tests take much longer in debug mode or on simulators.

[ $compiler == dart2js || $compiler == dartdevc || $compiler == dartdevk ]
http_io/*: SkipByDesign
