# 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 ]
23264_test: RuntimeError
bounds_check4a_test: RuntimeError # Issue 32741
bounds_check4b_test: RuntimeError # Issue 32741
class_test: Fail
closure_capture2_test: RuntimeError
constant_javascript_semantics4_test: Fail, OK
constant_javascript_semantics_test/03: CompileTimeError
constant_javascript_semantics_test/04: CompileTimeError
constant_javascript_semantics_test/none: CompileTimeError
generic_class_is_test: Fail # Issue 32004
jsinterop_test/01: MissingCompileTimeError # Issue 34174
jsinterop_test/02: MissingCompileTimeError # Issue 34174
jsinterop_test/03: MissingCompileTimeError # Issue 34174
jsinterop_test/04: MissingCompileTimeError # Issue 34174
jsinterop_test/34: MissingCompileTimeError # Issue 33834
jsinterop_test/35: MissingCompileTimeError # Issue 33834
jsinterop_test/36: MissingCompileTimeError # Issue 33834
jsinterop_test/37: MissingCompileTimeError # Issue 33834
jsinterop_test/38: MissingCompileTimeError # Issue 34174
jsinterop_test/42: MissingCompileTimeError # Issue 34174
jsinterop_test/43: MissingCompileTimeError # Issue 34345
jsinterop_test/44: MissingCompileTimeError # Issue 34345
jsinterop_test/45: MissingCompileTimeError # Issue 34345
jsinterop_test/46: MissingCompileTimeError # Issue 34174
jsinterop_test/51: MissingCompileTimeError # Issue 34174
jsinterop_test/52: MissingCompileTimeError # Issue 34345
jsinterop_test/53: MissingCompileTimeError # Issue 34345
jsinterop_test/54: MissingCompileTimeError # Issue 34345
many_instantiations_test/01: Crash # Issue 33819
no_such_method_test: Fail # Wrong Invocation.memberName.
non_jsinterop_test/01: MissingCompileTimeError # Issue 34174
non_jsinterop_test/02: MissingCompileTimeError # Issue 34174
non_jsinterop_test/03: MissingCompileTimeError # Issue 34174
non_jsinterop_test/04: MissingCompileTimeError # Issue 34174
non_jsinterop_test/34: MissingCompileTimeError # Issue 33834
non_jsinterop_test/35: MissingCompileTimeError # Issue 33834
non_jsinterop_test/36: MissingCompileTimeError # Issue 33834
non_jsinterop_test/37: MissingCompileTimeError # Issue 33834
non_jsinterop_test/38: MissingCompileTimeError # Issue 34174
non_jsinterop_test/42: MissingCompileTimeError # Issue 34174
non_jsinterop_test/43: MissingCompileTimeError # Issue 34345
non_jsinterop_test/44: MissingCompileTimeError # Issue 34345
non_jsinterop_test/45: MissingCompileTimeError # Issue 34345
non_jsinterop_test/46: MissingCompileTimeError # Issue 34174
non_jsinterop_test/51: MissingCompileTimeError # Issue 34174
non_jsinterop_test/52: MissingCompileTimeError # Issue 34345
non_jsinterop_test/53: MissingCompileTimeError # Issue 34345
non_jsinterop_test/54: MissingCompileTimeError # Issue 34345
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
statements_test: Fail
type_constant_switch_test/01: MissingCompileTimeError
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 ]
deferred_fail_and_retry_test: RuntimeError # Uses XHR in dart:html
deferred_with_csp_nonce_test: RuntimeError # Uses dart:html

[ $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 ]
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 && !$host_checked ]
dummy_compiler_test: RuntimeError, Slow # Issue 32439. self-hosting doesn't work with CFE yet.

[ $compiler == dart2js && $minified ]
closure_capture2_test: Pass # Passes for the wrong reason
code_motion_exception_test: Skip # Requires unminified operator names.
deferred/reflect_multiple_annotations_test: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
deferred/reflect_multiple_annotations_test: Fail
deferred/reflect_multiple_default_arg_test: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
deferred/reflect_multiple_default_arg_test: Fail
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.
type_literal_test: Fail, OK # Tests expected output of Type.toString().
typevariable_typedef_test: Fail, OK # Tests expected output of Type.toString().

[ $compiler == dart2js && $strong ]
bound_closure_interceptor_type_test: RuntimeError

[ $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 == ff || $runtime == safari) ]
isolate2_test/01: Fail # Issue 14458.

[ $compiler == dart2js && ($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
