# 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
packages/*: Skip
*/packages/*: Skip
*/*/packages/*: Skip
*/*/*/packages/*: Skip
*/*/*/*packages/*: Skip
*/*/*/*/*packages/*: Skip
*/*/packages/*: Skip
*/*/packages/*: Skip
*/packages/*: Skip
*/*/packages/*: Skip
*/*/*/packages/*: Skip
*/*/*/*packages/*: Skip
*/*/*/*/*packages/*: Skip
*/*/*/*packages/*: Skip
*/*/*/*/*packages/*: Skip

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

[ $compiler == dart2js && $minified ]
# The unminified matcher tests test that the real names of Dart types are
# printed. Minified versions of these tests exist that test the behavior when
# minified.
*_unminified_test: Skip # DO NOT COPY THIS UNLESS YOU WORK ON DART2JS

[ $minified == false ]
# The minified matcher tests test that the minified names of Dart types are
# printed. Unminified versions of these tests exist that test the behavior when
# not minified.
matcher/test/*_minified_test: Skip # DO NOT COPY THIS UNLESS YOU WORK ON DART2JS
