# 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/initializer_cycle_error_test.initialize_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_parts_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.initialize_test: RuntimeError # Issue 22592

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