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