# 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
*/*/*/*/*/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
scheduled_test/test/scheduled_stream/stream_matcher_test: Pass, Slow
polymer/test/build/script_compactor_test: Pass, Slow

[ $compiler == none && ($runtime == drt || $runtime == dartium) ]
third_party/angular_tests/browser_test/core_dom/shadow_root_options: Fail # Issue 18931 (Disabled for Chrome 35 roll)
polymer/example/component/news/test/news_index_test: Pass, RuntimeError # Issue 18931
intl/test/date_time_format_http_request_test: Pass, Timeout # Issue 19544

[ $compiler == none && ($runtime == dartium) ]
polymer/test/attr_deserialize_test: Pass, RuntimeError # Issue 18931
polymer/test/attr_mustache_test: Pass, RuntimeError # Issue 18931
polymer/test/bind_test: Pass, RuntimeError # Issue 18931
polymer/test/custom_event_test: Pass, RuntimeError # Issue 18931
polymer/test/entered_view_test: Pass, RuntimeError # Issue 18931
polymer/test/event_handlers_test: Pass, RuntimeError # Issue 18931
polymer/test/event_path_test: Pass, RuntimeError # Issue 18931
polymer/test/event_path_declarative_test: Pass, RuntimeError, Timeout # Issue 18931
polymer/test/events_test: Pass, RuntimeError # Issue 18931
polymer/test/instance_attrs_test: Pass, RuntimeError # Issue 18931
polymer/test/js_custom_event_test: Pass, RuntimeError # Issue 18931
polymer/test/js_interop_test: Pass, RuntimeError # Issue 18931
polymer/test/nested_binding_test: Pass, RuntimeError # Issue 18931
polymer/test/noscript_test: Pass, RuntimeError # Issue 18931
polymer/test/prop_attr_bind_reflection_test: Pass, RuntimeError # Issue 18931
polymer/test/prop_attr_reflection_test: Pass, RuntimeError # Issue 18931
polymer/test/property_change_test: Pass, Timeout # Issue 18931
polymer/test/publish_attributes_test: Pass, RuntimeError # Issue 18931
polymer/test/publish_inherited_properties_test: Pass, RuntimeError # Issue 18931
polymer/test/register_test: Pass, RuntimeError # Issue 18931
polymer/test/take_attributes_test: Pass, RuntimeError # Issue 18931
polymer/test/template_distribute_dynamic_test: Pass, RuntimeError # Issue 18931
web_components/test/interop_test: Pass, RuntimeError # Issue 18931

[ $compiler == none && ($runtime == dartium) && $mode == debug ]
polymer/test/instance_attrs_test: Skip # Issue 19496

[ $compiler == none && $runtime == dartium && $system == windows ]
polymer/test/property_observe_test: Pass, Timeout # Issue 19326

[ $runtime == vm && $mode == debug]
analysis_server/test/analysis_server_test: Skip  # Times out
analysis_server/test/domain_context_test: Skip  # Times out
analysis_server/test/domain_server_test: Skip  # Times out
analyzer/test/generated/element_test: Skip  # Times out
analyzer/test/generated/parser_test: Skip  # Times out
code_transformers/test/resolver_test: Skip  # Times out
docgen/test/*: Skip # Slow
polymer/test/build/all_phases_test: Skip # Slow
smoke/test/codegen/end_to_end_test: Skip  # Times out
smoke/test/codegen/recorder_test: Skip  # Times out
template_binding/test/template_binding_test: Skip  # Times out
third_party/html5lib/test/tokenizer_test: Skip  # Times out
barback/test/package_graph/repetition_test: Skip  # Times out
scheduled_test/test/scheduled_server_test: Pass, Fail, Slow # 13524

[ $runtime == vm && ( $arch == simarm || $arch == simmips ) ]
barback/test/too_many_open_files_test: Skip # 14220
code_transformers/test/resolver_test: Skip # Issue 17908
docgen/test/*: Skip # Too slow
polymer/test/build/all_phases_test: Skip # Slow
polymer/test/build/script_compactor_test: Skip # Slow
third_party/html5lib/test/tokenizer_test: Pass, Slow

[ $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
docgen/test/*: Skip # Far too slow
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 && $runtime == ff && $system == windows ]
http/test/html/client_test: Fail # Issue 19750
scheduled_test/test/scheduled_stream/scheduled_stream_test: Fail # Issue 19750
json_rpc_2/test/server/server_test: Fail # Issue 19750
stack_trace/test/trace_test: Fail # Issue 19750
shelf/test/log_middleware_test: Fail # Issue 19750

[ $compiler == dart2js && $runtime == drt ]
third_party/angular_tests/browser_test/core_dom/compiler: Fail # Issue 19329
third_party/angular_tests/browser_test/core_dom/shadow_root_options: Fail # Issue 19329
third_party/angular_tests/browser_test/core/templateurl: Fail # Issue 19329
web_components/test/interop_test: Pass, Fail # Issue 19329
web_components/test/interop2_test: Fail # Issue 19329

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

[ $checked && $runtime == drt ]
polymer/test/event_handlers_test: Pass, RuntimeError # Issue 19190

[ $compiler == dart2js && $checked && $runtime == ie9 ]
crypto/test/base64_test: Timeout # Issue 12486
collection/test/priority_queue_test: Pass, Slow # Issue 16426
serialization/test/serialization_test: Skip

[ $runtime == d8 ]
analysis_server/test/analysis_notification_overrides_test: Pass, Slow # Issue 19756
analysis_server/test/analysis_notification_occurrences_test: Pass, Slow # Issue 19756
analysis_server/test/analysis_notification_outline_test: Pass, Slow # Issue 19756
analysis_server/test/domain_search_test: Pass, Slow # Issue 19756

[ $runtime == jsshell ]
analysis_server/test/analysis_notification_occurrences_test: Pass, Slow # Issue 16473, 19756
analysis_server/test/analysis_notification_outline_test: Pass, Slow # Issue 16473, 19756
analysis_server/test/analysis_notification_navigation_test: Pass, Slow # Issue 16473, 19756
analysis_server/test/domain_analysis_test: Pass, Slow # Issue 16473, 19756
analyzer/test/generated/element_test: Pass, Slow # Issue 16473

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

[ $runtime == jsshell ]
async/test/stream_zip_test: RuntimeError, OK # Timers are not supported.
scheduled_test/test/unittest_compatibility_test: Fail # Issue 7728
unittest/test/nested_groups_setup_teardown_test: RuntimeError # http://dartbug.com/10109

[ $compiler == dart2js && $runtime == drt ]
async/test/stream_zip_test: RuntimeError, Pass # Issue 18548

[ $runtime == vm || $runtime == d8 || $runtime == jsshell ]
polymer/example: Skip # Uses dart:html
polymer/e2e_test: Skip # Uses dart:html
polymer/test/auto_binding_test: 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/js_custom_event_test: Skip #uses dart:html
polymer/test/js_interop_test: Skip #uses dart:html
polymer/test/mirror_loader_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/property_observe_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
web_components/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 == opera && $compiler == dart2js ]
intl/test/find_default_locale_browser_test: Fail
intl/test/date_time_format_http_request_test: Skip # Timeout.

[ $runtime == ie9 ]
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
polymer/test/bind_mdv_test: Slow, Pass, RuntimeError # Issue 14412, 13260
matcher/test/core_matchers_test: RuntimeError # Issue 17762
polymer_expressions/test/bindings_test: RuntimeError # Issue 19265
polymer_expressions/test/globals_test: RuntimeError # Issue 19265
template_binding/test/template_binding_test: Pass, RuntimeError # Issue 19265

[ $ie ]
polymer/test/noscript_test: RuntimeError, Pass # Issue 13260
intl/test/date_time_format_http_request_test: Fail # Issue 8983
polymer_expressions/test/syntax_test: Fail, Timeout, Pass # Issue 19138

[ $runtime == ie10 ]
typed_data/test/typed_buffers_test/none: Fail # Issue   17607 (I put this here explicitly, since this is not the same as on ie9)
polymer/e2e_test/*: Pass, RuntimeError # Issue 19265
polymer_expressions/*: Pass, RuntimeError # Issue 19265
template_binding/test/template_binding_test: Pass, RuntimeError # Issue 19265
polymer/test/event_handlers_test: Pass, Timeout # Issue 19327
analyzer/test/generated/java_core_test: Pass, Timeout # Issue 19747

[ $runtime == safari || $runtime == safarimobilesim ]
# Unexplained errors only occuring on Safari.
typed_data/test/typed_buffers_test: RuntimeError

# 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
third_party/angular_tests/vm_test: Fail # Uses removed APIs. See issue 18733.

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

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

third_party/angular_tests/browser_test: StaticWarning # Issue 15890

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

[ $compiler == dart2js && $csp ]
polymer/test/noscript_test: Fail # Issue 17326
polymer/test/js_custom_event_test: Fail # Issue 17326
polymer/test/js_interop_test: Fail # Issue 17326

# 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.
matcher/test/*_unminified_test: Skip # DO NOT COPY THIS UNLESS YOU WORK ON DART2JS

[ $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/e2e_test/canonicalization/test/dev1_test: Fail, OK # tests development only behavior
polymer/e2e_test/canonicalization/test/dev2_test: Fail, OK # tests development only behavior
polymer/e2e_test/canonicalization/test/dev3_test: Fail, OK # tests development only behavior
polymer/e2e_test/canonicalization/test/dir/dev1_test: Fail, OK # tests development only behavior
polymer/e2e_test/canonicalization/test/dir/dev2_test: Fail, OK # tests development only behavior
polymer/e2e_test/bad_import1: RuntimeError # Issue 17596
polymer/e2e_test/bad_import2: RuntimeError # Issue 17596
polymer/e2e_test/bad_import3: Fail, OK # tests broken import
polymer/test/mirror_loader_test: Skip # tests development only behavior

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

[ $browser ]
analysis_server/test/*: Skip # Uses dart:io.
analysis_services/test/*: Skip # Uses dart:io.
analyzer/test/*: Skip # Uses dart:io.
barback/test/*: Fail, OK # Uses dart:io.
code_transformers/test/*: Skip # Uses dart:io.
http/test/io/*: Fail, OK # Uses dart:io.
http_parser/test/web_socket_test: Fail, OK # Uses dart:io
http_multi_server/test/http_multi_server_test: Skip # 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/examples_parsing_test: Fail, OK # Users dart:io
intl/test/message_extraction/failed_extraction_test: Fail, OK # Users dart:io
intl/test/message_extraction/message_extraction_test: Fail, OK # Uses dart:io.
intl/test/message_extraction/really_fail_extraction_test: Fail, OK # Users 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.
shelf/test/shelf_io_test: Fail, OK # Uses dart:io
shelf_web_socket/test/*: Fail, OK # Uses dart:io.
smoke/test/codegen/end_to_end_test: Skip # Uses dart:io.
smoke/test/codegen/recorder_test: Skip # Uses dart:io.
third_party/angular_tests/browser_test/core_dom/cookies: Fail # Issue 16337
third_party/angular_tests/vm_test: Skip # Uses dart:io
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
third_party/html5lib/test/selectors/*: 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.
matcher/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 && $checked ]
watcher/test/directory_watcher/linux_test: Skip # Issue 16118

[ $arch == simarm64 ]
# Timeout. These are not unit tests. They do not run efficiently on our
# simulator.
*: Skip

# 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/async_exception_test: RuntimeError # 13921
unittest/test/async_setup_teardown_test: RuntimeError # 13921
unittest/test/completion_test: RuntimeError # 13921
unittest/test/correct_callback_test: RuntimeError # 13921
unittest/test/exception_test: RuntimeError # 13921
unittest/test/excess_callback_test: RuntimeError # 13921
unittest/test/expect_async_args_test: RuntimeError # 13921
unittest/test/expect_async_test: RuntimeError # 13921
unittest/test/group_name_test: RuntimeError # 13921
unittest/test/invalid_ops_test: RuntimeError # 13921
unittest/test/late_exception_test: RuntimeError # 13921
unittest/test/middle_exception_test: RuntimeError # 13921
unittest/test/nested_groups_setup_teardown_test: RuntimeError # 13921
unittest/test/protect_async_test: RuntimeError # 13921
unittest/test/returning_future_test: RuntimeError # 13921
unittest/test/returning_future_using_runasync_test: RuntimeError # 13921
unittest/test/runtests_without_tests_test: RuntimeError # 13921
unittest/test/setup_and_teardown_test: RuntimeError # 13921
unittest/test/setup_test: RuntimeError # 13921
unittest/test/single_correct_test: RuntimeError # 13921
unittest/test/single_failing_test: RuntimeError # 13921
unittest/test/skipped_soloed_nested_test: RuntimeError # 13921
unittest/test/teardown_test: RuntimeError # 13921
unittest/test/testcases_immutable_test: RuntimeError # 13921
polymer/e2e_test/canonicalization/test/deploy1_test: Fail, OK # tests deploy only behavior
polymer/e2e_test/canonicalization/test/deploy2_test: Fail, OK # tests deploy only behavior
polymer/e2e_test/canonicalization/test/deploy3_test: Fail, OK # tests deploy only behavior
polymer/e2e_test/canonicalization/test/dir/dev2_test: RuntimeError # Issue 17596
polymer/e2e_test/canonicalization/test/dir/deploy1_test: Fail, OK # tests deploy only behavior
polymer/e2e_test/canonicalization/test/dir/deploy2_test: Fail, OK # tests deploy only behavior

[ $runtime == vm ]
# Skip tests on the VM if the package depends on dart:html
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
http/test/html/*: Skip

[ $browser ]
docgen/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.

[ $compiler == dartanalyzer || $compiler == dart2analyzer ]
matcher/test/deprecated_matchers_test: StaticWarning # testing error creating abstract class
third_party/angular_tests/vm_test: StaticWarning # Uses removed APIs. See issue 18733.

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

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

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

[ $runtime == safari || $runtime == safarimobilesim || $runtime == chrome || $runtime == ff || $ie ]
# 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.
third_party/angular_tests/browser_test/directive/ng_repeat: Skip # Issue 17152
third_party/angular_tests/browser_test/change_detection/dirty_checking_change_detector: Skip # Issue 17152

[ $use_repository_packages ]
analyzer/test/*: PubGetError

[ $runtime == ie9 ]
polymer: Pass, Fail, Timeout # Issue 16717
web_components/test/interop_test: Fail, Timeout # Issue 16717

# No typed_data on IE9.
http/test/html/client_test: Fail
http/test/html/streamed_request_test: Skip
http/test/mock_client_test: Fail
http/test/multipart_test: Fail
http/test/request_test: Fail
http/test/response_test: Fail
oauth2/test/authorization_code_grant_test: Fail
oauth2/test/client_test: Fail
oauth2/test/credentials_test: Fail
oauth2/test/handle_access_token_response_test: Fail

[ $runtime == drt ]
http/test/html/client_test: Skip # Issue 18566
