# Copyright (c) 2014, 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.
# Flaky failures
dds_log_history_size_gigantic_test: Pass, Slow # Involves processing lots of logs
field_script_test: Pass, RuntimeError
get_allocation_samples_test: Pass, RuntimeError # Inconsistent stack trace
get_isolate_rpc_test: Pass, RuntimeError # Issue 29324
isolate_lifecycle_test: Pass, RuntimeError # Issue 24174
pause_on_exceptions_test: Pass, RuntimeError # Issue 33049
pause_on_start_and_exit_with_child_test: Pass, RuntimeError # Issue 33049
reload_sources_test: Pass, Slow # Reload is slow on the bots
valid_source_locations_test: Pass, Slow # Generally slow, even in release-x64.

[ $arch == arm ]
process_service_test: Pass, Fail # Issue 24344

[ $builder_tag == obfuscated ]
*: SkipByDesign # Responses full of obfuscated names

# Tests with known analyzer issues
[ $compiler == dart2analyzer ]
developer_extension_test: SkipByDesign

# The _1 versions of this test can be slow due to stress testing flags.
[ $mode == debug ]
async_generator_breakpoint_test: Pass, Slow

# Service protocol is not supported in product mode.
[ $mode == product ]
*: SkipByDesign

[ $system == android ]
string_escaping_test: Skip # Issue http://dartbug.com/42094
uri_mappings_lookup_test: SkipByDesign # Relies on file paths in the SDK.

[ $system == windows ]
*: Slow
async_generator_breakpoint_test: Skip # Issue 29145
dev_fs_http_put_weird_char_test: Skip # Windows disallows carriage returns in paths
dev_fs_weird_char_test: Skip # Windows disallows question mark in paths
uri_mappings_lookup_test: SkipByDesign # Relies on file paths in the SDK.

[ $compiler == none && $runtime == vm ]
evaluate_activation_test/instance: RuntimeError # http://dartbug.com/20047
evaluate_activation_test/scope: RuntimeError # http://dartbug.com/20047

[ $compiler == none && $runtime == vm && $system == fuchsia ]
*: Skip # Not yet triaged.

[ $mode == debug && $system == windows ]
dds_log_history_size_gigantic_test: Skip # Too slow: dartbug.com/41825

[ $mode == debug && $system == windows && $checked ]
async_scope_test: Pass, Slow

[ $mode == debug && ($arch == simarm || $arch == simarm64 || $arch == simarm64c || $arch == simriscv32 || $arch == simriscv64) ]
*: SkipSlow

# These tests are slow on simulators.
[ $arch == simarm || $arch == simarm64 || $arch == simarm64c || $arch == simriscv32 || $arch == simriscv64 ]
*: Pass, Slow

# All tests use dart:io
[ $compiler == dart2js || $browser ]
*: SkipByDesign

[ $compiler == dartk || $compiler == dartkp ]
rewind_test: Pass, Slow

[ $system != linux || $arch != ia32 && $arch != x64 ]
get_native_allocation_samples_test: Skip # Unsupported.

# Skip all service tests because random reloads interfere.
[ $hot_reload || $hot_reload_rollback ]
*: SkipByDesign # The service tests should run without being reloaded.
