23cde7f4b8
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>
40 lines
1.0 KiB
Dart
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();
|
|
}
|