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