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

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

# Don't run library files as tests
lib/*: SkipByDesign
lib/*/*: SkipByDesign
lib/*/*/*: SkipByDesign
lib/*/*/*/*: SkipByDesign

# PhantomJS isn't supported on the bots (issue 23195).
test/runner/browser/phantom_js: Skip
test/runner/browser/runner_test: Skip

test/runner/browser/loader_test: Pass, Slow

# The test harness for browser tests doesn't play nicely with the new way of
# doing browser tests.
[ $browser ]
test/*: SkipByDesign
test/*/*: SkipByDesign
test/*/*/*: SkipByDesign
test/*/*/*/*: SkipByDesign

[ $runtime == safari ]
test/matcher/prints_test: Fail # Issue 4
