# 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

[$compiler == dart2dart]
*: Skip

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

# 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 ]
http/test/*: Skip
oauth2/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

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

# 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 ]
http/test/http_test: Pass, Fail # http://dartbug.com/6967

# 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

# Skip intl_message tests that use mirrors on dart2js until it's been
# implemented there.
[ $compiler == dart2js ]
intl/test/intl_message_test: Skip
intl/test/intl_message_basic_example_test: Skip

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

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

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