# Copyright (c) 2017, 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 == app_jitk ]
main/no_main_test/01: Crash
number/web_int_literals_test/*: SkipByDesign # Test applies only to JavaScript targets
vm/regress_27671_test: SkipByDesign # Relies on string comparison of exception message which may return '<optimized out>'

[ $compiler == dartkp ]
number/web_int_literals_test/*: SkipByDesign # Test applies only to JavaScript targets

[ $compiler == fasta ]
number/web_int_literals_test/*: SkipByDesign # Test applies only to JavaScript targets

[ $fasta ]
nnbd/*: Skip
superinterface_variance/mixin_error_test/37: Crash # Issue dart-lang/language#113
superinterface_variance/mixin_error_test/38: Crash # Issue dart-lang/language#113
superinterface_variance/mixin_error_test/40: Crash # Issue dart-lang/language#113
superinterface_variance/mixin_error_test/41: Crash # Issue dart-lang/language#113
superinterface_variance/mixin_error_test/42: Crash # Issue dart-lang/language#113
superinterface_variance/mixin_error_test/43: Crash # Issue dart-lang/language#113
superinterface_variance/mixin_error_test/44: Crash # Issue dart-lang/language#113
superinterface_variance/mixin_error_test/46: Crash # Issue dart-lang/language#113
superinterface_variance/mixin_error_test/47: Crash # Issue dart-lang/language#113
superinterface_variance/mixin_error_test/48: Crash # Issue dart-lang/language#113

[ $builder_tag == obfuscated && $compiler == dartkp ]
generic/function_dcall_test/01: SkipByDesign # Prints type names
mixin/generic_test: SkipByDesign # Prints type names
mixin/mixin3_test: SkipByDesign # Prints type names
mixin/mixin5_test: SkipByDesign # Prints type names
mixin/mixin6_test: SkipByDesign # Prints type names
mixin/mixin_bound2_test: SkipByDesign # Prints type names
unsorted/many_named_arguments_test: SkipByDesign # Checks names of arguments
unsorted/symbol_literal_test/02: SkipByDesign # We don't obfuscate const Symbol constructor
vm/bool_check_stack_traces_test: SkipByDesign # Looks for filenames in stacktrace output
vm/no_such_args_error_message_vm_test: SkipByDesign # Looks for function name in error message
vm/no_such_method_error_message_callable_vm_test: SkipByDesign # Expects unobfuscated method names
vm/no_such_method_error_message_vm_test: SkipByDesign # Looks for unobfuscated name in error message

[ $compiler == dartk && $mode == debug && ($hot_reload || $hot_reload_rollback) ]
enum/duplicate_test/02: Crash # Issue 34606
enum/duplicate_test/none: Crash # Issue 34606
enum/private_test/01: Crash # Issue 34606
unsorted/inference_enum_list_test: Skip # Issue 35885

[ $compiler == dartk && $mode == product && $runtime == vm ]
vm/lazy_async_exception_stack2_test: SkipByDesign
vm/lazy_async_exception_stack_test: SkipByDesign

# ===== dartk + vm status lines =====
[ $compiler == dartk && $runtime == vm ]
const/const2_test: Crash # Flaky
main/no_main_test/01: Skip
mixin/illegal_super_use_test: Skip # Issues 24478 and 23773
mixin/illegal_superclass_test: Skip # Issues 24478 and 23773
unsorted/disassemble_test: Slow, Crash # dartbug.com/34971
vm/closure_memory_retention_test: Skip # KernelVM bug: Hits OOM
vm/regress_29145_test: Skip # Issue 29145
web_int_literals_test/*: SkipByDesign # Test applies only to JavaScript targets

[ $compiler == dartk && $hot_reload_rollback ]
symbol/conflict_test: Slow, Pass

[ $compiler == dartk && ($hot_reload || $hot_reload_rollback) ]
type_constants_test/none: Skip # Deferred libraries and hot reload.

[ $compiler == dartkp && $mode == debug && $runtime == dart_precompiled ]
vm/precompiled_static_initializer_test: Slow, Pass

# ==== dartkp + dart_precompiled status lines ====
[ $compiler == dartkp && $runtime == dart_precompiled ]
assert/with_type_test_or_cast_test: Crash
const/const2_test: Skip # Incompatible flag: --compile_all
const/evaluation_test: SkipByDesign
deferred/redirecting_factory_test: Crash # Issue 23408, KernelVM bug: Deferred loading kernel issue 30273.
export/ambiguous_main_test: Skip # Issue 29895 Fail Issue 14763
export/double_same_main_test: Skip # Issue 29895 Crash Issue 29895
field/increment_bailout_test: SkipByDesign
generic_methods_recursive_bound_test/03: Crash
main/no_main_test/01: Skip
main/not_a_function_test: Skip
mixin/illegal_super_use_test: Skip # Issues 24478 and 23773
mixin/illegal_superclass_test: Skip # Issues 24478 and 23773
no_such_method/many_overridden_test.dart: SkipByDesign
null_test/mirrors: Skip # Uses mirrors.
null_test/none: SkipByDesign
optimize/deopt_inlined_function_lazy_test: Skip # Incompatible flag: --deoptimize-alot
unsorted/hello_dart_test: Skip # Incompatible flag: --compile_all
unsorted/invocation_mirror2_test: SkipByDesign
vm/closure_memory_retention_test: Skip # KernelVM bug: Hits OOM
vm/lazy_async_exception_stack2_test: SkipByDesign
vm/lazy_async_exception_stack_test: SkipByDesign
vm/reflect_core_vm_test: SkipByDesign
vm/regress_27671_test: Skip # Unsupported
vm/regress_29145_test: Skip # Issue 29145

[ $compiler == dartkp && $runtime == dart_precompiled && $checked ]
assert/initializer_const_error2_test/cc01: Crash
assert/initializer_const_error2_test/cc02: Crash
assert/initializer_const_error2_test/cc03: Crash
assert/initializer_const_error2_test/cc04: Crash
assert/initializer_const_error2_test/cc05: Crash
assert/initializer_const_error2_test/cc06: Crash
assert/initializer_const_error2_test/cc07: Crash
assert/initializer_const_error2_test/cc08: Crash
assert/initializer_const_error2_test/cc09: Crash
assert/initializer_const_error2_test/cc10: Crash
assert/initializer_const_error2_test/cc11: Crash

[ $compiler == dartkp && $system == windows ]
unsorted/disassemble_test: Slow, Pass

[ $mode == debug && $runtime == vm && ($compiler == app_jitk || $compiler == dartk) ]
optimize/deopt_inlined_function_lazy_test: Skip

[ $mode == debug && ($hot_reload || $hot_reload_rollback) ]
regress/regress41983_test: Pass, Slow
