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

bigint_parse_radix_test/3: Slow # Issue http://dartbug.com/47050
bigint_test: Pass, Slow

[ $builder_tag == obfuscated ]
apply_generic_function_test: SkipByDesign # Function.apply with named args
apply_test: Skip # Uses new Symbol via symbolToStringMap helper
dynamic_nosuchmethod_test: SkipByDesign # Expects names in NSM
nsm_invocation_test: SkipByDesign # Relies on non-obfuscated symbols
symbol_test: SkipByDesign # Relies on non-obfuscated symbols
type_tostring_test: SkipByDesign # Expects names in Type.toString()

[ $compiler == dart2bytecode ]
core_runtime_types_test: SkipByDesign # Contains dynamic calls.
error_stack_trace2_test: Crash

[ $compiler == dartkp ]
bigint_parse_radix_test: Slow, Pass # --no_intrinsify
bigint_test/03: SkipSlow # --no_intrinsify
bigint_test/15: SkipSlow # --no_intrinsify

[ $compiler == ddc ]
bigint_test/03: SkipSlow # modPow is very slow
bigint_test/15: SkipSlow # modPow is very slow
list_concurrent_modify_self_test: SkipSlow # missing check causes list to grow to whole heap
regexp/lookbehind_test/01: Skip # Flaky in uncatchable way.  Issue 36280
uri_parse_test: Slow, Pass
uri_test: Slow, Pass

[ $mode == debug ]
regexp/pcre_test: Slow, Pass # Issue 22008

[ $system == android ]
throw_half_surrogate_pair_test/*: Skip # Issue http://dartbug.com/42094

[ $simulator ]
bigint_parse_radix_test: Skip # Issue 31659
bigint_test: Skip # Issue 31659

[ $arch == x64 && $system == windows ]
stopwatch_test: Skip # Flaky test due to expected performance behaviour.

[ $compiler != dart2analyzer && $compiler != dart2js && $compiler != ddc ]
bigint_js_test: SkipByDesign # JavaScript-specific test

[ $compiler == dart2js && $runtime != none ]
regexp/pcre_test: Slow, Pass # Issue 21593

[ $compiler == dart2js && $runtime == safari ]
date_time11_test: Skip # evades flake detection https://github.com/dart-lang/sdk/issues/50718
local_date_time_test: Skip # evades flake detection https://github.com/dart-lang/sdk/issues/50718
regexp/unicode-property-char-class_test: Skip # evades flake detection https://github.com/dart-lang/sdk/issues/50718
regexp/unicode-property-invalid_test: Skip # evades flake detection https://github.com/dart-lang/sdk/issues/50718
regexp/unicode-regexp-restricted-syntax_test: Skip # evades flake detection https://github.com/dart-lang/sdk/issues/50718

[ $runtime != dart_precompiled && $runtime != vm ]
reg_exp_receive_port_test: SkipByDesign # uses SendPort/ReceivePort

[ $runtime != none && ($compiler == dart2js || $compiler == ddc) ]
int_parse_with_limited_ints_test: SkipByDesign # Requires fixed-size int64 support.
integer_arith_vm_test: SkipByDesign # Is a VM optimization test that requires int64 support.
iterable_return_type_int64_test: SkipByDesign # Requires int64 support.
typed_data_with_limited_ints_test: SkipByDesign # Requires fixed-size int64 support.

[ $builder_tag == dwarf || $builder_tag == obfuscated ]
error_stack_trace1_test: SkipByDesign # Relies on symbol names in stack traces.

[ $runtime == dart_precompiled || $runtime == vm ]
regexp/global_test: Skip # Issue 21709
regexp/pcre_test: Slow, Pass

[ $hot_reload || $hot_reload_rollback ]
bigint_test: SkipSlow
