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

function_callbacks_structs_by_value_test: Pass, Slow # https://dartbug.com/47304 https://dartbug.com/45007
function_structs_by_value_generated_test: Pass, Slow # https://dartbug.com/47303 https://dartbug.com/45007

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

[ $mode == product ]
regress_47594_test: Skip # Profiler is not available in Product.

[ $system == android ]
*: Pass, Slow # https://github.com/dart-lang/sdk/issues/38489
regress_47594_test: Skip # DartDev is not available on Android.
vmspecific_native_finalizer_isolate_groups_test: Skip # SpawnUri not available on Android tester.

[ $system == windows ]
regress_47594_test: Skip # DynamicLibrary.process() is not available on Windows.

[ $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 || $arch == simriscv32 || $arch == simriscv64 ]
*: 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.

[ $compiler == dartkp || $arch == arm64 && $system == fuchsia ]
abi_specific_int_incomplete_jit_test: SkipByDesign # Only intended to run in JIT mode.

[ $compiler != dartkp || $arch == arm64 && $system == fuchsia ]
abi_specific_int_incomplete_aot_test: SkipByDesign # Only intended to run in AOT mode.
