Alien-Build
view release on metacpan or search on metacpan
t/test_alien.t view on Meta::CPAN
call message => match(qr{^value 'bar3' does not match });
};
end;
},
'fail with string match',
);
is(
intercept { interpolate_template_is '%{bogus}', 'bar4' },
array {
event Ok => sub {
call pass => F();
call name => 'template matches';
};
event Diag => sub {};
event Diag => sub {
call message => 'error in evaluation:';
};
event Diag => sub {
call message => match(qr/^ /);
};
end;
},
'bogus helper',
);
};
subtest 'ffi_ok' => sub {
skip_all 'Test requires FFI::Platypus'
unless eval { require FFI::Platypus; 1 };
_reset();
alien_ok synthetic {};
is(
intercept { ffi_ok; },
array {
event Ok => sub {
call pass => T();
call name => 'ffi';
};
end;
},
'empty ffi'
);
ffi_ok {}, 'min version test', with_subtest {
my($ffi) = @_;
my $version = $ffi->VERSION;
$version =~ s/_.*$//;
cmp_ok $version, '>=', 0.12;
};
ffi_ok { ignore_not_found => 1 }, 'ignore not found', with_subtest {
my($ffi) = @_;
my $version = $ffi->VERSION;
$version =~ s/_.*$//;
cmp_ok $version, '>=', 0.15;
eval { $ffi->attach( foo => [] => 'void') };
is $@, '';
is __PACKAGE__->can('foo'), F();
};
ffi_ok { lang => 'Fortran' }, 'lang', with_subtest {
my($ffi) = @_;
my $version = $ffi->VERSION;
$version =~ s/_.*$//;
cmp_ok $version, '>=', 0.18;
is $ffi->lang, 'Fortran';
};
subtest 'find symbols' => sub {
subtest 'good symbols' => sub {
my @symbols;
my $mock = mock 'FFI::Platypus' => (
override => [
find_symbol => sub {
my(undef, $symbol) = @_;
push @symbols, $symbol;
1;
},
],
);
is(
intercept { ffi_ok { symbols => [qw( foo bar baz )] } },
array {
event Ok => sub {
call pass => T();
call name => 'ffi';
};
},
'test passes',
);
is(
\@symbols,
[qw( foo bar baz )],
'tested symbols',
);
};
subtest 'bad symbols' => sub {
is(
intercept { ffi_ok { symbols => [qw( bogus1 bogus2 )] } },
array {
event Ok => sub {
call pass => F();
call name => 'ffi';
};
event Diag => sub {};
event Diag => sub {
call message => ' bogus1 not found';
};
( run in 0.616 second using v1.01-cache-2.11-cpan-e1769b4cff6 )