Skip to content

Commit 141edca

Browse files
committed
test that we set api
1 parent 56f921a commit 141edca

File tree

2 files changed

+61
-1
lines changed

2 files changed

+61
-1
lines changed

lib/Test2/Tools/FFI.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ but it is recommended that you use One (1).
7979

8080
sub ffi_options
8181
{
82-
my(undef, %options) = @_;
82+
my(%options) = @_;
8383
Carp::croak("Please call ffi_options before calling ffi")
8484
if defined $singleton;
8585

t/test2_tools_ffi__api1.t

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
use Test2::V0 -no_srand => 1;
2+
use Test2::Plugin::FFI::Package;
3+
use Test2::Tools::FFI;
4+
5+
ffi_options api => 1;
6+
7+
subtest 'ffi->runtime' => sub {
8+
9+
my $ffi = ffi->runtime;
10+
11+
is
12+
$ffi,
13+
object {
14+
call [ isa => 'FFI::Platypus' ] => T();
15+
call api => 1;
16+
call [ symbol_ok => 't2t_simple_init' ] => T();
17+
},
18+
;
19+
20+
};
21+
22+
subtest 'ffi->test' => sub {
23+
24+
my $ffi = ffi->test;
25+
26+
is
27+
$ffi,
28+
object {
29+
call [ isa => 'FFI::Platypus' ] => T();
30+
call api => 1;
31+
call [ function => myanswer => [] => 'int' ] => object {
32+
call call => 42;
33+
};
34+
call [ symbol_ok => 'myanswer' ] => T();
35+
},
36+
;
37+
38+
};
39+
40+
subtest 'ffi->combined' => sub {
41+
42+
my $ffi = ffi->combined;
43+
44+
is
45+
$ffi,
46+
object {
47+
call [ isa => 'FFI::Platypus' ] => T();
48+
call api => 1;
49+
call [ function => 'myanswer' => [] => 'int' ] => object {
50+
call call => 42;
51+
};
52+
call [ symbol_ok => 't2t_simple_init' ] => T();
53+
call [ symbol_ok => 'myanswer' ] => T();
54+
}
55+
;
56+
57+
lives { $ffi->function(t2t_simple_init => [] => 'void') };
58+
};
59+
60+
done_testing

0 commit comments

Comments
 (0)