Files
sdk/pkg/vm/testcases/transformations/ffi/as_function.dart
T
Daco Harkes 23cde7f4b8 [pkg/vm] Format pkg/vm with new style
TEST=reformatting only

Change-Id: I310e2568661e919a2c8354e01e19d18f7109f54c
Cq-Include-Trybots: luci.dart.try:pkg-linux-debug-try,pkg-linux-release-try,pkg-mac-release-arm64-try,pkg-mac-release-try,pkg-win-release-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/399261
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2025-02-14 07:18:29 -08:00

40 lines
1.0 KiB
Dart

// 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();
}