blob: 8bf0dc0d49bea9f478257ba7bae2e565f1107907 [file] [log] [blame]
// Copyright (c) 2023, 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.
// Tests for NativeFunctionPointer.asFunction transformation.
import 'dart:ffi';
testVoidNoArg() {
final pointer =
Pointer<NativeFunction<Void Function()>>.fromAddress(0xdeadbeef);
final function = pointer.asFunction<void Function()>();
function();
}
testIntInt() {
final pointer =
Pointer<NativeFunction<Int32 Function(Int64)>>.fromAddress(0xdeadbeef);
final function = pointer.asFunction<int Function(int)>();
return function(42);
}
testLeaf5Args() {
final pointer = Pointer<
NativeFunction<
Int32 Function(
Int32, Int32, Int32, Int32, Int32)>>.fromAddress(0xdeadbeef);
final function =
pointer.asFunction<int Function(int, int, int, int, int)>(isLeaf: true);
return function(1, 2, 3, 4, 5);
}
void main() {
testVoidNoArg();
testIntInt();
testLeaf5Args();
}