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

[ $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 && $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_default_arg_test: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
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 && ($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
