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

# The testing infrastructure is using the dart:io Path and LineTransformer
# classes.
io/skipping_dart2js_compilations_test: Skip # http/dartbug.com/12449
io/dependency_graph_test: Skip # http/dartbug.com/12449
io/status_file_parser_test: Skip # http/dartbug.com/12449

package/invalid_uri_test: Fail, OK # Fails intentionally

[ $runtime == vm ]
package/package_isolate_test: Fail # http://dartbug.com/7520.

[ $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
vmservice/*: Skip # Do not run standalone vm service tests in browser.


[ $compiler == dartanalyzer ]
javascript_int_overflow_literal_test/01: fail, ok

# test issue https://code.google.com/p/dart/issues/detail?id=11518
io/file_constructor_test: fail

# 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.
# Dart analyzer spots the misuse of 'part' directives in these unit tests.
io/http_headers_test: Skip
io/http_cookie_date_test: Skip
io/http_parser_test: Skip
io/web_socket_protocol_processor_test: Skip

# This is runtime test.
io/process_exit_negative_test: Skip

# https://code.google.com/p/dart/issues/detail?id=11647
package/package_isolate_test: fail

[ $compiler == dart2analyzer ]
javascript_int_overflow_literal_test/01: fail, ok
package/package_isolate_test: fail # issue 11647

# test issue https://code.google.com/p/dart/issues/detail?id=11518
io/file_constructor_test: fail

# 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.
# Dart analyzer spots the misuse of 'part' directives in these unit tests.
io/http_headers_test: Skip
io/http_cookie_date_test: Skip
io/http_parser_test: Skip
io/web_socket_protocol_processor_test: Skip

# This is runtime test.
io/process_exit_negative_test: Skip

# https://code.google.com/p/dart/issues/detail?id=11647
package/package_isolate_test: fail

[ $compiler == dart2js ]
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_int64_uint64_test: Skip # dart:typed_data on dart2js does not support 64-bit ints.
float_array_test: Skip # dart:typed_data support needed.
int_array_test: Skip  # dart:typed_data support needed.
io/web_socket_protocol_processor_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.
double_smi_comparison_test: Skip # Precision > 53 bits.
http_launch_test: Skip
javascript_int_overflow_test: Skip
javascript_int_overflow_literal_test: Skip
oom_error_stacktrace_test: Fail, OK # (OOM on JS may produce a stacktrace).
vmservice/*: Skip # Do not run standalone vm service tests with dart2js.


[ $compiler == dart2js && $jscl ]
assert_test: Fail, OK # Assumes unspecified fields on the AssertionError.
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 ]
io/internet_address_test: Fail  # localhost is an Unknown name?

[ $arch == simarm ]
out_of_memory_test: Skip # passes on Mac, crashes on Linux
oom_error_stacktrace_test: Skip # Fails on Linux
io/web_socket_ping_test: Skip # TODO(ajohnsen): Timeout issue
io/test_runner_test: Pass, Fail # Issue 12413

[ $arch == simmips || $arch == mips ]
io/file_fuzz_test: Pass, Timeout
io/web_socket_test: Pass, Slow
io/http_server_response_test: Pass, Slow
out_of_memory_test: Skip # passes on Mac, crashes on Linux
oom_error_stacktrace_test: Skip # Fails on Linux
io/web_socket_ping_test: Skip # TODO(ajohnsen): Timeout issue

[ $arch == mips ]
io/test_extension_test: Fail
io/test_extension_fail_test: Fail
io/dart_std_io_pipe_test: Fail
io/file_read_special_device_test: Fail
