Alt-FFI-Raw-Platypus

 view release on metacpan or  search on metacpan

t/ffi_raw.t  view on Meta::CPAN

use Test2::V0 -no_srand => 1;
use Test2::Tools::FFI;
use lib 't/lib';
use FFI::Raw;
use Math::BigInt;
use POSIX;
use File::Spec;
use Env qw(@PATH);
use File::Copy qw(cp);
use File::Temp qw(tempdir);

my($shared) = ffi->test->lib;

subtest 'argless' => sub {

  my $argless = FFI::Raw->new($shared, 'argless', FFI::Raw::void);

  $argless->call;
  $argless->();

  ok 1, 'survived the call';

};

subtest 'simple-args' => sub {
  my $take_one_long = FFI::Raw->new(
    $shared, 'take_one_long',
    FFI::Raw::void, FFI::Raw::long
  );

  $take_one_long->call(LONG_MIN);

  my $take_one_ulong = FFI::Raw->new(
    $shared, 'take_one_ulong',
    FFI::Raw::void, FFI::Raw::ulong
  );

  $take_one_ulong->call(ULONG_MAX);

  my $take_one_int = FFI::Raw->new(
    $shared, 'take_one_int',
    FFI::Raw::void, FFI::Raw::int
  );

  $take_one_int->call(INT_MIN);

  my $take_one_uint = FFI::Raw->new(
    $shared, 'take_one_uint',
    FFI::Raw::void, FFI::Raw::uint
  );

  $take_one_uint->call(UINT_MAX);

  my $take_one_short = FFI::Raw->new(
    $shared, 'take_one_short',
    FFI::Raw::void, FFI::Raw::short
  );

  $take_one_short->call(SHRT_MIN);

  my $take_one_ushort = FFI::Raw->new(
    $shared, 'take_one_ushort',
    FFI::Raw::void, FFI::Raw::ushort



( run in 0.699 second using v1.01-cache-2.11-cpan-d7f47b0818f )