# 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 == 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_parse_radix_test: Skip # Issue 31659. Issue 34361.
bigint_test: Skip # Issue 31659
integer_parsed_mul_div_vm_test: Slow, Pass # Slow
