// 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. // // Dart test program for testing dart:ffi function pointers. // // VMOptions= // VMOptions=--deterministic --optimization-counter-threshold=10 // VMOptions=--use-slow-path // VMOptions=--use-slow-path --stacktrace-every=100 // VMOptions=--write-protect-code --no-dual-map-code // VMOptions=--write-protect-code --no-dual-map-code --use-slow-path // VMOptions=--write-protect-code --no-dual-map-code --stacktrace-every=100 // SharedObjects=ffi_test_functions import 'dart:ffi'; import 'dylib_utils.dart'; import "package:ffi/ffi.dart"; import "package:expect/expect.dart"; void main() { for (int i = 0; i < 100; ++i) { testLookupFunctionPointerNativeType(); } } final ffiTestFunctions = dlopenPlatformSpecific("ffi_test_functions"); typedef NativeTypeNFT = Pointer Function( Pointer>, Int8); typedef NativeTypeFT = Pointer Function( Pointer>, int); void testLookupFunctionPointerNativeType() { // The function signature does not match up, but that does not matter since // this test does not use the trampoline. ffiTestFunctions.lookupFunction("LargePointer"); }