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

# WARNING:
# Tests using the multitest feature where failure is expected should *also* be
# listed in tests/lib/analyzer/analyze_tests.status without the "standalone"
# prefix.

package/invalid_uri_test: Fail, OK # Fails intentionally

[ $runtime == vm ]
# Fails because checked-in dart executable is not up to date.
io/test_runner_test: Fail
# Fails because checked-in dart executable is not up to date.
# Skip this because it is leaving temp directories behind when it fails.
io/skipping_dart2js_compilations_test: Skip

[ $runtime == vm ]
package/package_isolate_test: Fail # http://dartbug.com/7520.
# The test is flaky, and is timing out, causing buildbot cycle times to rise.
io/raw_server_socket_cancel_test: Skip # Issue 8675

[ $runtime == vm && $checked ]
# These tests have type errors on purpose.
io/process_invalid_arguments_test: Fail, OK
io/directory_invalid_arguments_test: Fail, OK
io/file_invalid_arguments_test: Fail, OK
io/socket_invalid_arguments_test: Fail, OK
io/stdout_bad_argument_test: Fail, OK
# These test have type errors on purpose and take very long to run in
# checked mode with no benefit. Skip.
io/file_fuzz_test: Skip
io/directory_fuzz_test: Skip

[ $runtime == vm && $system == macos ]
# This test fails with "Too many open files" on the Mac OS buildbot.
# This is expected as MacOS by default runs with a very low number
# of allowed open files ('ulimit -n' says something like 256).
io/socket_many_connections_test: Skip

# These tests pass on MacOS 10.8.2 but fails on the buildbot machines
# that are running an earlier version of MacOS. The issue is that the
# old version of MacOS does not expand the precomposed utf-8 it gets
# from the VM before comparing it to the decomposed utf-8 used for the
# file system.
io/file_non_ascii_sync_test: Pass, Fail
io/file_non_ascii_test: Pass, Fail
io/directory_non_ascii_sync_test: Pass, Fail
io/directory_non_ascii_test: Pass, Fail
io/process_non_ascii_test: Pass, Fail

[ $compiler == none && $runtime == drt ]
typed_data_isolate_test: Skip # This test uses dart:io
io/*: Skip # Don't run tests using dart:io in the browser
package/*: Skip # Do not run those in Dartium.
debugger/*: Skip # Do not run standalone debugger tests in browser.
coverage_test: Skip
http_launch_test: Skip

[ $compiler == dartc ]

# package test issue 7392
package/package1_test: Fail
package/package_test: Fail
io/test_runner_test: Fail # Library dart:uri removed.
io/skipping_dart2js_compilations_test: Skip # Library dart:uri removed.


# The dart:io library is created at build time from separate files, and
# there is no language-spec compatible way to run unit tests on the private
# members and methods of dart:io.
# Dartc spots the misuse of 'part' directives in these unit tests.
io/http_headers_test: Skip  # dartc cannot parse dart:io unit tests.
io/http_cookie_date_test: Skip  # dartc cannot parse dart:io unit tests.
io/url_encoding_test: Skip  # dartc cannot parse dart:io unit tests.
io/http_parser_test: Skip  # dartc cannot parse dart:io unit tests.
io/web_socket_protocol_processor_test: Skip  # dart:io unit test.

io/process_exit_negative_test: Fail  # This is a compilation-time negative test.


[ $compiler == dartanalyzer ]
io/file_constructor_test: fail
io/http_cookie_date_test: fail
io/http_headers_test: fail
io/http_parser_test: fail
io/process_exit_negative_test: fail
io/url_encoding_test: fail
io/web_socket_protocol_processor_test: fail
53bit_overflow_literal_test/01: fail, ok

# Fails because checked-in dart executable is not up to date.
io/test_runner_test: fail
io/skipping_dart2js_compilations_test: fail


[ $compiler == dart2analyzer ]
io/file_constructor_test: fail
io/http_cookie_date_test: fail
io/http_headers_test: fail
io/http_parser_test: fail
io/process_exit_negative_test: fail
io/url_encoding_test: fail
io/web_socket_protocol_processor_test: fail
53bit_overflow_literal_test/01: fail, ok

# Fails because checked-in dart executable is not up to date.
io/test_runner_test: fail
io/skipping_dart2js_compilations_test: fail


[ $compiler == dart2js ]
io/test_runner_test: Fail # Import Uri does not work
number_identity_test: Skip # Bigints and int/double diff. not supported.
typed_data_test: Skip # dart:typed_data support needed.
bytedata_test: Skip # dart:typed_data support needed.
typed_data_view_test: Skip # dart:typed_data support needed.
typed_data_isolate_test: Skip # dart:typed_data support needed.
typed_array_test: Skip # dart:typed_data support needed.
float_array_test: Skip # dart:typed_data support needed.
int_array_test: Skip  # dart:typed_data support needed.
byte_array_view_optimized_test: Skip # dart:typed_data support needed.
io/web_socket_protocol_processor_test: Skip  # Importing code with external keyword
io/url_encoding_test: Skip  # Importing code with external keyword
int_array_load_elimination_test: Skip  # This is a VM test
medium_integer_test: Fail, OK # Test fails with JS number semantics: issue 1533.
io/process_exit_negative_test: Fail, OK # relies on a static error that is a warning now.
package/package_isolate_test: Skip # spawnUri does not work in dart2js. See issue 3051
debugger/*: Skip # Do not run standalone vm debugger tests with dart2js.
left_shift_bit_and_op_test: Skip # Integers exceed dart2js precision.
pow_test: Skip # Precision > 53 bits.
io/skipping_dart2js_compilations_test: Skip # Library dart:uri removed.
http_launch_test: Skip
53bit_overflow_test: Skip
53bit_overflow_literal_test: Skip


[ $compiler == dart2js && $jscl ]
assert_test: Fail, OK # Assumes unspecified fields on the AssertionError.
byte_array_test: Fail, OK # ByteArray
deoptimization_test: Fail, OK # Requires bigint.
out_of_memory_test: Fail, OK # d8 handles much larger arrays than Dart VM.
io/options_test: Fail, OK # Cannot pass options to d8.

[ $compiler == dart2js && $runtime == none ]
io/options_test: Fail
medium_integer_test: Pass # The test only fails at runtime, not at compilation.

[ $compiler == dart2js && $browser ]
*: Skip

[ $compiler == dart2js && $checked ]
io/http_read_test: Skip # Timeout TODO(ngeoffray): investigate
io/list_input_stream_test: Skip # Timeout TODO(ngeoffray): investigate

[ $compiler == dart2dart ]
# Skip until we stabilize language tests.
*: Skip

[ $arch == arm || $arch == simarm ]
coverage_test: Crash # Issue: 11207
debugger/basic_debugger_test: Crash # Issue: 11207
debugger/closure_debugger_test: Crash # Issue: 11207
http_launch_test: Fail, Crash # Issue: 11207
left_shift_bit_and_op_test: Fail # Issue: 11207
package/package_isolate_test: Pass, Crash # Issue: 11207
out_of_memory_test: Pass, Crash # Issue: 11207 (Pass on Mac)
typed_data_test: Timeout, Crash # Issue: 11207
typed_data_isolate_test: Pass, Crash # Issue: 11207
io/*: Skip # Skip IO tests for now as they are still quite flaky.

[ $arch == mips ]
*: Skip

[ $arch == simmips ]
*: Skip
