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

// SharedObjects=ffi_test_functions

import 'dart:ffi';

import 'package:expect/expect.dart';

import 'dylib_utils.dart';

final ffiTestFunctions = dlopenPlatformSpecific('ffi_test_functions');

void main() {
  dlopenGlobalPlatformSpecific('ffi_test_functions');

  testVariadicAt1Int64x5NativeLeaf();
}

@Native<Int64 Function(Int64, VarArgs<(Int64, Int64, Int64, Int64)>)>(
    symbol: 'VariadicAt1Int64x5', isLeaf: true)
external int variadicAt1Int64x5NativeLeaf(
    int a0, int a1, int a2, int a3, int a4);

void testVariadicAt1Int64x5NativeLeaf() {
  final result = variadicAt1Int64x5NativeLeaf(1, 2, 3, 4, 5);
  Expect.equals(15, result);
}
