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

[ $builder_tag == msan ]
vmspecific_handle_test: Skip # https://dartbug.com/42314

[ $compiler == app_jitk ]
vmspecific_leaf_call_test: Skip # https://dartbug.com/46125: Snapshot fails to generate.

[ $mode == debug ]
function_callbacks_structs_by_value_generated_test: Pass, Slow

[ $system == android ]
*: Pass, Slow # https://github.com/dart-lang/sdk/issues/38489

[ $arch == arm && $system == linux ]
function_callbacks_structs_by_value_test: Slow # QEMU https://dartbug.com/45007

[ $compiler != dart2analyzer && $compiler != fasta && $runtime != dart_precompiled && $runtime != vm ]
*: SkipByDesign # FFI is a VM-only feature. (This test suite is part of the default set.)

[ $compiler == dartkp && $system == windows ]
vmspecific_handle_test: SkipByDesign # Symbols are not exposed on purpose and are not linked in Windows Precompiled. dartbug.com/40579

[ $system != android && $system != linux && $system != macos && $system != windows ]
*: Skip # FFI not yet supported on other OSes.

[ $arch == simarm || $arch == simarm64 || $arch == simarm64c ]
*: Skip # FFI not yet supported on the arm simulator.

[ $builder_tag == asan || $builder_tag == msan || $builder_tag == tsan ]
data_not_asan_test: SkipByDesign # This test tries to allocate too much memory on purpose.

# These tests trigger and catch an abort (intentionally) and terminate the VM.
# They're incompatible with ASAN because not all memory is freed when aborting and
# with AppJit because the abort the VM before it can generate a snapshot.
[ $builder_tag == asan || $compiler == app_jitk ]
vmspecific_function_callbacks_exit_test: SkipByDesign

[ $compiler == dart2analyzer || $compiler == fasta ]
vmspecific_enable_ffi_test: SkipByDesign # This is a check for VM only.

[ $hot_reload || $hot_reload_rollback ]
snapshot_test: Skip # https://dartbug.com/36097: Ongoing concurrency work.
vmspecific_function_callbacks_test: Skip # https://dartbug.com/36097: Ongoing concurrency work.
