# 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

build/test/html_import_annotation_test: SkipByDesign # Invalid once built

[ $compiler == none && ($runtime == dartium || $runtime == ContentShellOnAndroid) ]
e2e_test/html_imports/test/basic_test: RuntimeError # Github Issue 7
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
