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

[ $compiler == dart2js ]
bounds_check4a_test: RuntimeError # Issue 32741
bounds_check4b_test: RuntimeError # Issue 32741
class_test: Fail
constant_javascript_semantics4_test: Fail, OK
generic_class_is_test: Fail # Issue 32004
no_such_method_test: Fail # Wrong Invocation.memberName.
statements_test: Fail
typed_locals_test: Pass, Fail

[ $compiler != dart2js ]
dummy_compiler_test: SkipByDesign # Issue 30773. Test should be migrated as a unit test of dart2js, is only intended to test self-hosting.

[ $runtime == jsshell ]
deferred/load_in_correct_order_test: SkipByDesign # jsshell preamble does not support this test.
timer_test: Fail # Issue 7728.

[ $runtime == none ]
timer_negative_test: Fail, OK # A negative runtime test.

[ $compiler == dart2js && $mode == debug ]
operator_test: Skip
string_interpolation_test: Skip

[ $compiler == dart2js && $runtime == chrome && $system == windows ]
class_test: Pass, Slow # Issue 25940
closure_capture3_test: Pass, Slow # Issue 25940
closure_capture5_test: Pass, Slow # Issue 25940
conditional_test: Pass, Slow # Issue 25940
consistent_codeUnitAt_error_test: Pass, Slow # Issue 25940
constant_javascript_semantics2_test: Pass, Slow # Issue 25940
deferred_split_test: Pass, Slow # Issue 25940

[ $compiler == dart2js && $runtime == chrome && $csp ]
deferred/load_in_correct_order_test: SkipByDesign # Purposely uses `eval`

[ $compiler == dart2js && $runtime == d8 && $fasta ]
deferred_fail_and_retry_test: RuntimeError # Uses XHR in dart:html
deferred_with_csp_nonce_test: RuntimeError # Uses dart:html
unconditional_dartio_import_test: RuntimeError # Uses dart:io

[ $compiler == dart2js && $runtime == ff && $system == windows ]
consistent_index_error_string_test: Pass, Slow # Issue 25940

[ $compiler == dart2js && $runtime == none ]
*: Fail, Pass # TODO(ahe): Triage these tests.

[ $compiler == dart2js && $checked && $fasta ]
dummy_compiler_test: Crash
local_signature_test: Crash
minus_zero_test/01: MissingCompileTimeError

[ $compiler == dart2js && $csp ]
deferred_custom_loader_test: SkipByDesign # Issue 25683
deferred_fail_and_retry_test: SkipByDesign # Uses eval to simulate failed loading.
js_interop_optional_arg_test: RuntimeError # Issue 31082
js_interop_test: RuntimeError # Issue 31082

[ $compiler == dart2js && $fasta ]
23264_test: RuntimeError
closure_capture2_test: RuntimeError
constant_javascript_semantics_test/03: CompileTimeError
constant_javascript_semantics_test/04: CompileTimeError
constant_javascript_semantics_test/none: CompileTimeError
private_symbol_literal_test/01: MissingCompileTimeError
private_symbol_literal_test/02: MissingCompileTimeError
private_symbol_literal_test/03: MissingCompileTimeError
private_symbol_literal_test/04: MissingCompileTimeError
private_symbol_literal_test/05: MissingCompileTimeError
private_symbol_literal_test/06: MissingCompileTimeError
regress/4562_test/none: CompileTimeError
round_constant_folding_test: CompileTimeError
type_constant_switch_test/01: MissingCompileTimeError

[ $compiler == dart2js && $fasta && $minified ]
closure_capture2_test: Pass # Passes for the wrong reason
deferred/reflect_multiple_annotations_test: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
deferred/reflect_multiple_default_arg_test: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.

[ $compiler == dart2js && !$fasta ]
expose_this1_test: RuntimeError # Issue 31254
expose_this2_test: RuntimeError # Issue 31254
string_interpolation_dynamic_test: Fail # CRLF handling clarified, see Issue 23562
string_interpolation_test: Fail # CRLF handling clarified, see Issue 23562

[ $compiler == dart2js && !$host_checked ]
dummy_compiler_test: RuntimeError, Slow # Issue 32439. self-hosting doesn't work with CFE yet.

[ $compiler == dart2js && $minified ]
code_motion_exception_test: Skip # Requires unminified operator names.
deferred/reflect_multiple_annotations_test: Fail
deferred/reflect_multiple_default_arg_test: Fail
generic_method_dynamic_type_test: Fail, OK # Tests expected output of Type.toString().
mirrors_used_warning_test/minif: Fail, OK # Tests warning that minified code will be broken.
runtime_type_test: Fail, OK # Tests extected output of Type.toString().
to_string_test: Fail # Issue 7179.
typevariable_typedef_test: Fail, OK # Tests expected output of Type.toString().

[ $compiler == dart2js && !$strong ]
extract_type_arguments_1_test: RuntimeError # Uses function type variables
extract_type_arguments_2_test: RuntimeError # Uses function type variables
extract_type_arguments_3_test: RuntimeError # Uses function type variables
generic_method_dynamic_is_test: RuntimeError # Test against function type variables is only supported in strong mode.
generic_method_dynamic_type_test: SkipByDesign # Requires strong mode support for function type variables.
generic_method_static_is_test: RuntimeError # Test against function type variables is only supported in strong mode.
int_index_test/01: MissingCompileTimeError
int_index_test/02: MissingCompileTimeError
local_signature_test: RuntimeError # Test against function type variables is only supported in strong mode.
switch_test/00: MissingCompileTimeError

[ $compiler == dart2js && ($runtime == chrome || $runtime == chromeOnAndroid || $runtime == drt || $runtime == ff || $runtime == safari) ]
isolate2_test/01: Fail # Issue 14458.

[ $compiler == dart2js && ($runtime == chrome || $runtime == d8 || $runtime == drt) ]
bound_closure_interceptor_type_test: Fail, Pass # v8 issue 3084. https://code.google.com/p/v8/issues/detail?id=3084

[ $compiler == dart2js && ($runtime == drt || $runtime == ff || $runtime == jsshell || $runtime == safari) ]
code_motion_exception_test: Skip # Required V8 specific format of JavaScript errors.

[ $compiler == dart2js && ($browser || $host_checked) ]
dummy_compiler_test: SkipByDesign # Issue 30773. Test should be migrated as a unit test of dart2js, is only intended to test self-hosting.

[ $compiler == none && $runtime == vm ]
invalid_annotation_test/01: MissingCompileTimeError, OK # vm is lazy
new_from_env_test: SkipByDesign # dart2js only test
unconditional_dartio_import_test: SkipByDesign # dart2js only test
