# 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.

# Run this test manually to verify that the fixnum library produces
# the same results as native ints on a set of directed and random inputs.
# Skip it when running automated tests because it times out.  This
# test only makes sense on runtimes that support 64-bit integer
# arithmetic natively, i.e., the VM.
fixnum/test/int_64_vm_test: Skip

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

scheduled_test/test/scheduled_test_test: Pass, Slow # Issue 9231

# WebDriver tests have 3rd party dependencies (we need to run
# selenium_standalone.jar), so we skip these in our automated
# testing.
webdriver/test/webdriver_test: Skip

[$compiler == none && $runtime == vm]
intl/test/date_time_format_file_even_test: Pass, Crash # Issue 9342
intl/test/date_time_format_file_odd_test: Pass, Crash # Issue 9342
intl/test/date_time_format_local_even_test: Pass, Crash # Issue 9342
intl/test/date_time_format_local_odd_test: Pass, Crash # Issue 9342

[$compiler == dart2dart]
*: Skip

# Don't compile tests that use dart:io to JS
[ $compiler == dart2js || $compiler == dart2dart ]
http/test/*: Skip
oauth2/test/*: Skip
pathos/test/*: Skip

# Issue 8440 forces us to use pathos in the scheduled_test tests, which would
# otherwise be dart2js-compatible.
scheduled_test/test/*: Skip

# We use pathos in the stack_trace tests. We can run them on dart2js when issue
# 6943 is fixed.
stack_trace/test/*: Skip

source_maps/test/vlq_test: Fail # A VLQ test checks for large numbers that
                                # overflow in JS (numbers slightly larger than
                                # 32 bits where we do bitwise operations).

# Skip tests that use local file access if we're running in any browser
[ $runtime == opera || $runtime == ff || $runtime == ie9 || $runtime == dartium || $runtime == chrome || $runtime == safari || $runtime == drt  || $runtime == jsshell]
http/test/*: Skip
oauth2/test/*: Skip
pathos/test/*: Skip
intl/test/date_time_format_file_even_test: Skip
intl/test/date_time_format_file_odd_test: Skip
intl/test/find_default_locale_standalone_test: Skip
intl/test/message_extraction/message_extraction_test: Skip
analyzer_experimental/test/options_test: Skip # Imports dart:io.
analyzer_experimental/test/generated/ast_test: Skip # Imports dart:io.
analyzer_experimental/test/generated/element_test: Skip # Imports dart:io.
analyzer_experimental/test/generated/parser_test: Skip # Imports dart:io.
analyzer_experimental/test/generated/resolver_test: Skip # Imports dart:io.
analyzer_experimental/test/generated/scanner_test: Skip # Imports dart:io.

# Issue 8440 forces us to use pathos in the scheduled_test tests, which would
# otherwise be dart2js-compatible.
scheduled_test/test/*: Skip

# We use pathos in the stack_trace tests. We can run them on dart2js when issue
# 6943 is fixed.
stack_trace/test/*: Skip

[ $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

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

# Skip browser-specific Intl tests on VM
[ $runtime == vm ]
intl/test/find_default_locale_browser_test: Skip
intl/test/date_time_format_http_request_test: Skip

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

# Skip http request tests on Dartium while resolving an odd
# error there that causes the tests to timeout.
[ $runtime == dartium || $runtime == drt ]
intl/test/date_time_format_http_request_test: Skip

[ $compiler == dart2js ]
# Skip intl_message tests that use mirrors on dart2js until it's been
# implemented there.
serialization/test/serialization_test: Skip # Issue 6490
serialization/test/no_library_test: Skip # Issue 6490
analyzer_experimental/test/generated/ast_test: Skip
analyzer_experimental/test/generated/element_test: Skip
analyzer_experimental/test/generated/parser_test: Skip
analyzer_experimental/test/generated/resolver_test: Skip
analyzer_experimental/test/generated/scanner_test: Skip

[ $compiler == dartc ]
unittest/test/mock_regexp_negative_test: Fail
unittest/test/mock_stepwise_negative_test: Fail


[ $compiler == dart2js ]
unittest/test/instance_test: Skip

[ $compiler == dart2js && $runtime == drt ]
intl/test/date_time_format_uninitialized_test: Pass, Fail # http://dartbug.com/9000

[ $compiler == dart2js && $minified ]
# The unittest package relies on getting the original (non-minified) method
# names in InvocationMirrors.  You can't get that when minifying.
unittest/test/mock_test: Fail
unittest/test/mock_regexp_negative_test: Fail

[ $compiler == none && $runtime == drt ]
dartdoc/test/dartdoc_test: Skip # See dartbug.com/4541.

[ $arch == arm ]
*: Skip

[ $arch == simarm ]
*: Skip

[ $arch == mips ]
*: Skip

[ $arch == simmips ]
*: Skip

# Skip serialization test that explicitly has no library declaration in the
# test on Dartium, which requires all tests to have a library.
[ $runtime == dartium || $runtime == drt ]
serialization/test/no_library_test: Skip # Expected Failure
