# 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
get_allocation_samples_test: Pass, RuntimeError # Inconsistent stack trace
reload_sources_test: Pass, Slow # Reload is slow on the bots
get_retained_size_rpc_test: Pass, RuntimeError # Issue 28193
isolate_lifecycle_test: Pass, RuntimeError # Issue 24174
field_script_test: Pass, RuntimeError
get_isolate_rpc_test: Pass, RuntimeError # Issue 29324

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

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

[ $system == windows ]
async_generator_breakpoint_test: Skip # Issue 29145

# Kernel version of tests
[ $compiler != dartk ]
###
### Skip kernel specific versions.
###
add_breakpoint_rpc_kernel_test: SkipByDesign # kernel specific version of add_breakpoint_rpc_test

[ $compiler == dartk ]
next_through_simple_async_test: Pass, Fail # Issue 29145

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

# Debugger location tests are slow in debug mode.
[ $mode == debug ]
debugger_location_second_test: Pass, Slow
debugger_location_test: Pass, Slow

# These tests are slow on simulators.
[ $arch == simarm || $arch == simarm64 ]
*: Pass, Slow
[ $mode == debug && ($arch == simarm || $arch == simarm64) ]
*: SkipSlow

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

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

[ $compiler == dart2analyzer && $builder_tag == strong ]
*: Skip # Issue 28649

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

[ $compiler == precompiler ]
*: Skip # Issue 24651

[ $compiler == app_jit ]
address_mapper_test: CompileTimeError # Issue 27806
capture_stdio_test: CompileTimeError # Issue 27806
complex_reload_test: RuntimeError # Issue 27806
bad_reload_test: RuntimeError # Issue 27806
evaluate_activation_test/instance: RuntimeError # Issue 27806
evaluate_activation_test/scope: RuntimeError # Issue 27806
get_object_rpc_test: RuntimeError # Issue 27806
get_source_report_test: RuntimeError # Issue 27806
set_name_rpc_test: RuntimeError # Issue 27806
pause_on_unhandled_async_exceptions2_test: Pass, RuntimeError, Timeout, Crash # Issue 29178

debugger_location_second_test: Skip # Issue 28180

# Snapshots don't include source and generated source is not 1-to-1.
# The column offsets are thus off.
next_through_for_each_loop_test: RuntimeError
next_through_create_list_and_map_test: RuntimeError
next_through_closure_test: RuntimeError
step_through_switch_test: RuntimeError
step_through_constructor_calls_test: RuntimeError
step_through_function_test: RuntimeError
step_through_switch_with_continue_test: RuntimeError

[ $compiler == dart2analyzer ]
evaluate_activation_in_method_class_test: CompileTimeError # Issue 24478

[ $arch == simdbc || $arch == simdbc64 ]
implicit_getter_setter_test: RuntimeError # Field guards unimplemented.
async_single_step_exception_test: RuntimeError # Issue 29218

# Debugging StringConcatenation doesn't work the same on simdbc as on other platforms (bug #28975).
next_through_catch_test: RuntimeError
next_through_simple_async_test: RuntimeError
next_through_simple_linear_2_test: RuntimeError
step_through_function_test: RuntimeError
step_through_getter_test: RuntimeError

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

[ $system == windows ]
dev_fs_weird_char_test: Skip # Windows disallows question mark in paths
dev_fs_http_put_weird_char_test: Skip # Windows disallows carriage returns in paths

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

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