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

# tests that don't need to be ran after pub-build
build/test/transformer_test: Skip
build/test/static_init_cycle_error_test: Skip # Build time warning

# tests that need to run, but we use the bootstrap output instead
# (build/test/foo.initialize.dart) which is renamed by the .test_config scripts.
build/test/deferred_library_test: Skip
build/test/initializer_custom_filter_test: Skip
build/test/initializer_cycle_error_test: Skip
build/test/initializer_test: Skip
build/test/initializer_type_filter_test: Skip
build/test/init_method_test: Skip

# failing tests
[ $compiler == none ]
test/deferred_library_test: RuntimeError # Issue 22592
build/test/deferred_library_test: RuntimeError # Issue 22592

[ $browser ]
# All tests are for the standalone vm only
build/test/*: Skip
test/*: Skip
