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

# Skip non-test files ending with "_test".
*/packages/*: Skip

# Only run tests from the build directory, since we don't care about the
# difference between transformed an untransformed code.
test/*: Skip

[ $browser ]
*: Fail, OK # Uses dart:io.

[ $arch == simarm && $checked ]
*/directory_watcher/linux_test: Skip # Issue 16118

[ $runtime == vm && ($system == windows || $system == macos) ]
*/linux_test: Skip

[ $runtime == vm && ($system == windows || $system == linux) ]
*/mac_os_test: Skip

[ $runtime == vm && ($system == macos || $system == linux) ]
*/windows_test: Skip
