# 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
vm_timeline_flags_test: Pass, RuntimeError # Issue 26483
gc_test: Pass, RuntimeError # Issue 26490
pause_on_start_and_exit_test: Pass, RuntimeError # Issue 26470
pause_on_start_then_step_test: Pass, RuntimeError # Issue 26470
# Reload is slow on the bots
reload_sources_test: Pass, Slow

[ ($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
isolate_lifecycle_test: Pass, RuntimeError # Issue 24174

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


# Disable on simulators.
[ $arch == simarm || $arch == simmips || $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

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

[ ($noopt || $compiler == precompiler) ]
*: Skip # Issue 24651

[ $runtime == vm ]
coverage_test: Pass, Slow
developer_extension_test: Pass, Fail # Issue 27225

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

# Service protocol is not supported when running a full application snapshot.
[ $runtime == dart_app ]
*: SkipByDesign

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

[ $arch == simdbc || $arch == simdbc64 ]
get_allocation_samples_test: RuntimeError # Profiling unimplemented.
get_cpu_profile_timeline_rpc_test: RuntimeError # Profiling unimplemented.
implicit_getter_setter_test: RuntimeError # Field guards unimplemented.
debugger_location_second_test: Skip # Issue #27746
debugger_location_test: Skip # Issue #27746

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