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

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

# 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
*: StaticWarning # https://github.com/dart-lang/observe/issues/85
address_mapper_test: Pass # https://github.com/dart-lang/observe/issues/85
command_test: Pass # https://github.com/dart-lang/observe/issues/85
read_stream_test: Pass # https://github.com/dart-lang/observe/issues/85

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

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

[ $runtime == vm ]
coverage_test: Pass, Slow

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

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