# Copyright (c) 2012, 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.

[ $arch == arm ]
sample_extension/test/*: Skip # Issue 14705

[ $builder_tag == optimization_counter_threshold ]
sample_extension/test/sample_extension_app_snapshot_test: SkipByDesign # This test is too slow for testing with low optimization counter threshold.

[ $compiler == app_jit ]
sample_extension/test/sample_extension_app_snapshot_test: RuntimeError

[ $compiler == dart2analyzer ]
build_dart: Skip

[ $compiler == precompiler ]
sample_extension/test/*: Skip # These tests attempt to spawn another script using the precompiled runtime.

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

[ $compiler == dart2js && $runtime == none ]
*: Fail, Pass # TODO(ahe): Triage these tests.

[ $compiler == none && $mode == debug && $runtime == vm && $system == windows ]
sample_extension/test/sample_extension_app_snapshot_test: Pass, RuntimeError # Issue 28842

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

[ $compiler == app_jitk || $compiler == dartk || $compiler == dartkp ]
sample_extension/test/sample_extension_app_snapshot_test: RuntimeError
sample_extension/test/sample_extension_script_snapshot_test: RuntimeError
sample_extension/test/sample_extension_test: RuntimeError

# Skip tests that use dart:io
[ $runtime == d8 || $browser ]
build_dart/*: Skip
build_dart_simple/*: Skip
sample_extension/*: Skip

[ $hot_reload || $hot_reload_rollback ]
sample_extension/test/sample_extension_script_snapshot_test: SkipByDesign # This test makes a script snapshot, which implies not exercising Dart code.
