# Copyright (c) 2012, 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

# Skip non-test files ending with "_test".
scheduled_test/lib/*: Skip
polymer/example/scoped_style/*: Skip

scheduled_test/test/scheduled_server_test: Pass, Fail # 13524
scheduled_test/test/scheduled_process_test: Pass, Slow # Issue 9231

polymer/test/event_path_test: Pass, Fail # Issue 15766

# Skip test not runnable via test.dart
third_party/html5lib/test/dom_compat_test: Skip
third_party/html5lib/test/browser/browser_test: Skip

[ $compiler == dart2js ]
collection/test/equality_test/01: Fail # Issue 1533
collection/test/equality_test/02: Fail # Issue 1533
collection/test/equality_test/03: Fail # Issue 1533
collection/test/equality_test/04: Fail # Issue 1533
collection/test/equality_test/05: Fail # Issue 1533
collection/test/equality_test/none: Pass, Fail # Issue 14348
third_party/angular_tests/browser_test: Pass, Slow # Large dart2js compile time
typed_data/test/typed_buffers_test/01: Fail # Not supporting Int64List, Uint64List.

[ $compiler == dart2js && $checked ]
crypto/test/base64_test: Slow, Pass

[ $compiler == dart2js && $checked && $runtime == ie9 ]
crypto/test/base64_test: Timeout # Issue 12486
serialization/test/serialization_test: Skip

[ $runtime == d8 || $runtime == jsshell ]
unittest/test/unittest_nested_groups_setup_teardown_test: RuntimeError # http://dartbug.com/10109
stack_trace/test/vm_test: RuntimeError, OK # VM-specific traces
stack_trace/test/chain_test: Fail # Issues 15171 and 15105
async/test/stream_zip_test: RuntimeError, OK # Timers are not supported.
unittest/test/missing_tick_test: Fail # Timer interface not supported: dartbug.com/7728.

[ $runtime == vm || $runtime == d8 || $runtime == jsshell ]
polymer/example: Skip # Uses dart:html
polymer/test/attr_deserialize_test: Skip # uses dart:html
polymer/test/attr_mustache_test: Skip #uses dart:html
polymer/test/bind_test: Skip # uses dart:html
polymer/test/bind_mdv_test: Skip # uses dart:html
polymer/test/custom_event_test: Skip # uses dart:html
polymer/test/entered_view_test: Skip # uses dart:html
polymer/test/event_handlers_test: Skip #uses dart:html
polymer/test/event_path_declarative_test: Skip #uses dart:html
polymer/test/event_path_test: Skip #uses dart:html
polymer/test/events_test: Skip #uses dart:html
polymer/test/instance_attrs_test: Skip #uses dart:html
polymer/test/nested_binding_test: Skip # uses dart:html
polymer/test/noscript_test: Skip #uses dart:html
polymer/test/prop_attr_bind_reflection_test: Skip #uses dart:html
polymer/test/prop_attr_reflection_test: Skip #uses dart:html
polymer/test/property_change_test: Skip # uses dart:html
polymer/test/publish_attributes_test: Skip #uses dart:html
polymer/test/publish_inherited_properties_test: Skip #uses dart:html
polymer/test/register_test: Skip #uses dart:html
polymer/test/take_attributes_test: Skip #uses dart:html
polymer/test/template_distribute_dynamic_test: Skip #uses dart:html
polymer/test/unbind_test: Skip # uses dart:html
third_party/angular_tests/browser_test: Skip # uses dart:html

[$compiler == dart2dart]
*: Skip

[ $compiler == dart2js || $compiler == dart2dart ]
source_maps/test/vlq_test: RuntimeError # A VLQ test checks for large numbers that
                                # overflow in JS (numbers slightly larger than
                                # 32 bits where we do bitwise operations).
[ $runtime == ff && $system != windows ]
# Bug in Spidermonkey's Uint8ClampedArray on x64 (non-Win FF is x64, Win is x86)
# See https://bugzilla.mozilla.org/show_bug.cgi?id=940972
# Likely to get patched only on some versions of Firefox.
typed_data/test/typed_buffers_test: RuntimeError

[ $runtime == opera && $compiler == dart2js ]
intl/test/find_default_locale_browser_test: Fail
intl/test/date_time_format_http_request_test: Skip # Timeout.

[ $runtime == ie9 ]
intl/test/date_time_format_http_request_test: Fail # Issue 8983
mime/test/mime_multipart_transformer_test: Skip # No typed_data on IE9.
typed_data/test/typed_buffers_test: Fail, Crash # No typed_data on IE9.
polymer/test/instance_attrs_test: Pass, Fail # Issue 14167

[ $runtime == safari ]
fixnum/test/int_64_test: Pass, Fail # Bug in JSC.

# Unexplained errors only occuring on Safari.
typed_data/test/typed_buffers_test: RuntimeError

[ $runtime == ie9 || $runtime == ie10 ]
polymer/test/bind_mdv_test: RuntimeError # Issue 14412, 13260
polymer/test/noscript_test: RuntimeError # Issue 13260

# Skip browser-specific tests on VM
[ $runtime == vm ]
path/test/browser_test: Fail, OK # Uses dart:html
intl/test/find_default_locale_browser_test: Skip
intl/test/date_time_format_http_request_test: Skip

[ $runtime == vm && $system == windows ]
docgen/test/single_library_test: Fail # Issue 11985
intl/test/find_default_locale_standalone_test: Fail # Issue 8110

[ $compiler == dartanalyzer ]
# These tests are runtime negative but statically positive, so we skip
# them in the analyzer.
unittest/test/mock_regexp_negative_test: Skip
unittest/test/mock_stepwise_negative_test: Skip
polymer/example/canonicalization: Skip

third_party/angular_tests/browser_test: StaticWarning # Issue 15890

[ $compiler == dart2analyzer ]
# These tests are runtime negative but statically positive, so we skip
# them in the analyzer.
unittest/test/mock_regexp_negative_test: Skip
unittest/test/mock_stepwise_negative_test: Skip
polymer/example/canonicalization: Skip

third_party/angular_tests/browser_test: StaticWarning # Issue 15890

[ $compiler == dart2js && $runtime == none]
polymer/example/canonicalization: Skip

[ $compiler == dart2js && $csp ]
unittest/test/mirror_matchers_test: Skip # Issue 12151

# This test cannot run under CSP because it is injecting a JavaScript polyfill
mutation_observer: Skip

[ $compiler == dart2js && $minified ]
# The unminified unittest tests test that the real names of Dart types are
# printed. Minified versions of these tests exist that test the behavior when
# minified.
unittest/test/*_unminified_test: Skip # DO NOT COPY THIS UNLESS YOU WORK ON DART2JS
unittest/test/mirror_matchers_test: Fail # Issue 15405

[ $compiler == dart2js && $browser ]
stack_trace/test/vm_test: Fail, OK # VM-specific traces
stack_trace/test/chain_test: Fail # Issues 15171 and 15105
crypto/test/sha256_test: Slow, Pass
crypto/test/sha1_test: Slow, Pass
polymer/example/component: Fail # Issue 13198
polymer/example/canonicalization/test/canonicalization_test: Fail, OK # tests development only behavior

[ $compiler == dart2js && $runtime == chromeOnAndroid ]
docgen/test/single_library_test: Fail # TODO(kasperl): Please triage.
intl/test/date_time_format_http_request_test: Fail # TODO(kasperl): Please triage.

[ $browser ]
analyzer/test/generated/ast_test: Fail, OK # Uses dart:io.
analyzer/test/generated/element_test: Fail, OK # Uses dart:io.
analyzer/test/generated/parser_test: Fail, OK # Uses dart:io.
analyzer/test/generated/resolver_test: Fail, OK # Uses dart:io.
analyzer/test/error_test: Fail, OK # Uses dart:io.
analyzer/test/generated/element_test: Fail, OK # Uses dart:io.
analyzer/test/generated/resolver_test: Fail, OK # Uses dart:io.
analyzer/test/options_test: Fail, OK # Uses dart:io.
analyzer/test/services/formatter_test: Fail, OK # Uses dart:io.
analyzer/test/parse_compilation_unit_test: Fail, OK # Uses dart:io.
barback/test/*: Fail, OK # Uses dart:io.
http/test/client_test: Fail, OK # Uses dart:io.
http/test/http_test: Fail, OK # Uses dart:io.
http/test/mock_client_test: Fail, OK # Uses dart:io.
http/test/multipart_test: Fail, OK # Uses dart:io.
http/test/request_test: Fail, OK # Uses dart:io.
http/test/response_test: Fail, OK # Uses dart:io.
http/test/streamed_request_test: Fail, OK # Uses dart:io.
http_server/test/*: Fail, OK # Uses dart:io.
intl/test/date_time_format_file_even_test: Fail, OK # Uses dart:io.
intl/test/date_time_format_file_odd_test: Fail, OK # Uses dart:io.
intl/test/find_default_locale_standalone_test: Fail, OK # Uses dart:io.
intl/test/message_extraction/message_extraction_test: Fail, OK # Uses dart:io.
intl/test/message_extraction/failed_extraction_test: Fail, OK # Users dart:io
intl/test/message_extraction/examples_parsing_test: Fail, OK # Users dart:io
oauth2/test/authorization_code_grant_test: Fail, OK # Uses dart:io.
oauth2/test/client_test: Fail, OK # Uses dart:io.
oauth2/test/credentials_test: Fail, OK # Uses dart:io.
oauth2/test/handle_access_token_response_test: Fail, OK # Uses dart:io.
observe/test/transformer_test: Fail, OK # Uses dart:io.
path/test/io_test: Fail, OK # Uses dart:io.
polymer/test/build/*: Fail, OK # Uses dart:io.
third_party/angular_tests/vm_test: Skip # Uses dart:io
third_party/angular_tests/browser_test/core_dom/cookies: Fail # Issue 16337
watcher/test/*: Fail, OK # Uses dart:io.

scheduled_test/test/descriptor/*: Fail # http://dartbug.com/8440
scheduled_test/test/scheduled_future_matchers_test: Fail # http://dartbug.com/8440
scheduled_test/test/scheduled_process_test: Fail # http://dartbug.com/8440
scheduled_test/test/scheduled_test/*: Fail # http://dartbug.com/8440
scheduled_test/test/scheduled_stream/stream_matcher_test: Fail # http://dartbug.com/8440


*/test/analyzer_test: Skip  # No need to run analysis tests on browser bots

# Skip tests on the browser if the test depends on dart:io
third_party/html5lib/test/parser_test: Skip
third_party/html5lib/test/tokenizer_test: Skip

polymer/test/unbind_test: Pass, Fail # Issue 15259

[ $minified == false ]
# The minified unittest tests test that the minified names of Dart types are
# printed. Unminified versions of these tests exist that test the behavior when
# not minified.
unittest/test/*_minified_test: Skip # DO NOT COPY THIS UNLESS YOU WORK ON DART2JS

[ $arch == mips ]
*: Skip  # Issue 13650

[ $arch == arm ]
*: Skip  # Issue 13624

[ $arch == simarm || $arch == simmips ]
barback/test/too_many_open_files_test: Skip # 14220
third_party/html5lib/test/tokenizer_test: Pass, Slow

[ $arch == simarm && $checked ]
watcher/test/directory_watcher/linux_test: Skip # Issue 16118

# Skip serialization test that explicitly has no library declaration in the
# test on Dartium, which requires all tests to have a library.
[ $compiler == none && ( $runtime == dartium || $runtime == drt ) ]
serialization/test/no_library_test: Skip # Expected Failure
serialization/test/serialization_test: Fail # 13921
unittest/test/unittest_async_exception_test: Fail # 13921
unittest/test/unittest_async_setup_teardown_test: Fail # 13921
unittest/test/unittest_completion_test: Fail # 13921
unittest/test/unittest_correct_callback_test: Fail # 13921
unittest/test/unittest_exception_test: Fail # 13921
unittest/test/unittest_excess_callback_test: Fail # 13921
unittest/test/unittest_late_exception_test: Fail # 13921
unittest/test/unittest_middle_exception_test: Fail # 13921
unittest/test/unittest_nested_groups_setup_teardown_test: Fail # 13921
unittest/test/unittest_runtests_without_tests_test: Fail # 13921
unittest/test/unittest_setup_and_teardown_test: Fail # 13921
unittest/test/unittest_setup_test: Fail # 13921
unittest/test/unittest_single_correct_test: Fail # 13921
unittest/test/unittest_single_failing_test: Fail # 13921
unittest/test/unittest_skipped_soloed_nested_test: Fail # 13921
unittest/test/unittest_teardown_test: Fail # 13921
unittest/test/unittest_test_returning_future_test: Fail # 13921
unittest/test/unittest_test_returning_future_using_runasync_test: Fail # 13921
unittest/test/unittest_testcases_immutable_test: Fail # 13921
unittest/test/unitttest_group_name_test: Fail # 13921
polymer/test/custom_event_test: Pass, Crash # 14360
polymer/example/canonicalization/test/canonicalization_deploy_test: Fail, OK # tests deploy only behavior

[ $compiler == none && ( $runtime == dartium || $runtime == drt ) && $checked ]
polymer/test/custom_event_test: Skip # http://dartbug.com/15517

# Skip tests on the VM if the package depends on dart:html
[ $runtime == vm ]
custom_element: Skip
template_binding: Skip
mutation_observer: Skip
polymer_expressions/test/syntax_test: Skip
polymer_expressions/test/globals_test: Skip
polymer_expressions/test/bindings_test: Skip
third_party/html5lib/test/browser/browser_test: Skip

[ $runtime == safari || $runtime == chrome || $runtime == ie9 || $runtime == ff || $runtime == dartium || $runtime == drt ]
docgen/test/single_library_test: Skip # Uses dart:io
docgen/test/multi_library_test: Skip # Uses dart:io
scheduled_test/test/scheduled_server_test: Skip # Uses dart:io

[ $browser || $runtime == vm ]
unittest/test/missing_tick_test: Fail, OK # Expected to fail, due to timeout.


[ $compiler == none && ($runtime == dartium || $runtime == drt) ]
source_maps/test/parser_test: Pass, Timeout # Issue 13719: Please triage this failure.
polymer_expressions/test/bindings_test: Fail, Pass # Issue 14445.

[ $compiler == dartanalyzer || $compiler == dart2analyzer ]
docgen/test/single_library_test: StaticWarning
docgen/test/multi_library_test: StaticWarning
unittest/test/matchers_test: StaticWarning, OK # testing error creating abstract class

[ $runtime == vm && ($system == windows || $system == macos) ]
watcher/test/*/linux_test: Skip

[ $runtime == vm && ($system == windows || $system == linux) ]
watcher/test/*/mac_os_test: Skip

[ $runtime == safari || $runtime == chrome || $runtime == ie9 || $runtime == ff || $runtime == ie10 ]
# Various issues due to limited browser testing in Angular.
third_party/angular_tests/*: Skip

[ $unchecked ]
third_party/angular_tests/browser_test/angular: Skip # Requires checked mode.
third_party/angular_tests/browser_test/core/scope: Skip # Requires checked mode.
third_party/angular_tests/browser_test/core/zone: Skip # Requires checked mode.

[ $use_repository_packages ]
analyzer/test/error_test: PubGetError
analyzer/test/generated/ast_test: PubGetError
analyzer/test/generated/element_test: PubGetError
analyzer/test/generated/parser_test: PubGetError
analyzer/test/generated/resolver_test: PubGetError
analyzer/test/generated/scanner_test: PubGetError
analyzer/test/options_test: PubGetError
analyzer/test/parse_compilation_unit_test: PubGetError
analyzer/test/services/formatter_test: PubGetError
args/test/args_test: PubGetError
args/test/command_test: PubGetError
args/test/parse_all_test: PubGetError
args/test/parse_test: PubGetError
args/test/usage_test: PubGetError
async/test/stream_zip_test: PubGetError
async/test/stream_zip_zone_test: PubGetError
collection/test/algorithms_test: PubGetError
collection/test/iterable_zip_test: PubGetError
collection/test/priority_queue_test: PubGetError
collection/test/unmodifiable_collection_test: PubGetError
collection/test/wrapper_test: PubGetError
stack_trace/test/chain_test: PubGetError
stack_trace/test/frame_test: PubGetError
stack_trace/test/trace_test: PubGetError
stack_trace/test/vm_test: PubGetError

