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

# We need a hook in package-bots to invoke pub-build in nested folders before we
# can run these tests:
e2e_test/*: Skip
build/e2e_test/*: Skip

# Invalid once built, tests pre-build behavior.
build/test/html_import_annotation_test: SkipByDesign

[ $compiler == none && ($runtime == dartium || $runtime == ContentShellOnAndroid) ]
test/interop_test: Pass, RuntimeError # Issue 18931

[ $compiler == dart2js && $csp && $runtime == drt ]
build/test/interop_test: Fail # Issue 19329

[ $runtime == vm || $runtime == d8 || $runtime == jsshell ]
test/*: SkipByDesign # uses dart:html
build/test/*: SkipByDesign # uses dart:html
e2e_test/html_imports/test/*: SkipByDesign # uses dart:html
build/e2e_test/html_imports/test/*: SkipByDesign # uses dart:html

[ $compiler == dart2js ]
test/*: SkipByDesign # use pub-build to run tests (they need the companion .html file)

[ $browser ]
test/build/*: SkipByDesign # vm only tests
build/test/build/*: SkipByDesign # vm only tests
