# 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

[ $arch == ia32 && $mode == debug ]
*: Pass, Slow # The CFE is not run from AppJit snapshot, JIT warmup in debug mode very slow

[ $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
