Alien-Build
view release on metacpan or search on metacpan
t/alienfile.t view on Meta::CPAN
my $build = alienfile_ok q{
use alienfile;
share {
before 'gather' => sub {};
gather [];
};
};
is $before_hook[0][0], 'gather_share';
};
subtest 'before gather ffi' => sub {
my $build = alienfile_ok q{
use alienfile;
share {
ffi {
before 'gather' => sub {};
gather [];
};
};
};
is $before_hook[0][0], 'gather_ffi';
};
subtest 'before gather system' => sub {
my $build = alienfile_ok q{
use alienfile;
sys {
before 'gather' => sub {};
gather [];
};
};
is $before_hook[0][0], 'gather_system';
};
subtest 'before build in sys' => sub {
eval {
alienfile q{
use alienfile;
sys {
before 'build' => sub {
return 42;
};
build [];
};
};
};
like $@, qr/before build is not allowed in sys block/, 'not allowed in sys block';
};
subtest 'before second argument must be a code ref' => sub {
eval {
alienfile q{
use alienfile;
share {
before 'build' => 1;
build [];
};
};
};
like $@, qr/before build argument must be a code reference/, 'must be code reference';
};
subtest 'arbitrary stages not allowed' => sub {
eval {
alienfile q{
use alienfile;
share {
before 'bogus' => sub {};
build [];
};
};
};
like $@, qr/No such stage bogus/, 'no bogus allowed';
};
};
subtest 'after' => sub {
my $mock = mock 'Alien::Build::Meta' => (
class => 'Alien::Build::Meta',
);
my @after_hook;
$mock->around(after_hook => sub {
my $orig = shift;
my (undef, $name, $code) = @_;
push @after_hook, [$name, $code];
$orig->(@_);
});
$mock->around(new => sub {
my $orig = shift;
@after_hook = ();
$orig->(@_);
});
subtest 'after build in share' => sub {
my $build = alienfile_ok q{
use alienfile;
t/alienfile.t view on Meta::CPAN
my $build = alienfile_ok q{
use alienfile;
share {
after 'gather' => sub {};
gather [];
};
};
is $after_hook[0][0], 'gather_share';
};
subtest 'after gather ffi' => sub {
my $build = alienfile_ok q{
use alienfile;
share {
ffi {
after 'gather' => sub {};
gather [];
};
};
};
is $after_hook[0][0], 'gather_ffi';
};
subtest 'after gather system' => sub {
my $build = alienfile_ok q{
use alienfile;
sys {
after 'gather' => sub {};
gather [];
};
};
is $after_hook[0][0], 'gather_system';
};
subtest 'after build in sys' => sub {
eval {
alienfile q{
use alienfile;
sys {
after 'build' => sub {
return 42;
};
build [];
};
};
};
like $@, qr/after build is not allowed in sys block/, 'not allowed in sys block';
};
subtest 'after second argument must be a code ref' => sub {
eval {
alienfile q{
use alienfile;
share {
after 'build' => 1;
build [];
};
};
};
like $@, qr/after build argument must be a code reference/, 'must be code reference';
};
subtest 'arbitrary stages not allowed' => sub {
eval {
alienfile q{
use alienfile;
share {
after 'bogus' => sub {};
build [];
};
};
};
like $@, qr/No such stage bogus/, 'no bogus allowed';
};
};
subtest 'digest' => sub {
local $Alien::Build::VERSION = $Alien::Build::VERSION || 2.57;
my $build = alienfile_ok q{
use alienfile;
digest SHA256 => 'a7e79996a02d3dfc47f6f3ec043c67690dc06a10d091bf1d760fee7c8161391a';
plugin 'Fetch::Local';
probe sub { 'share' };
};
alienfile_skip_if_missing_prereqs;
is
$build->fetch('corpus/alien_build_plugin_digest_shapp/foo.txt.gz'),
hash {
field type => 'file';
field filename => 'foo.txt.gz';
etc;
},
'fetch works with good sig';
is
dies { $build->fetch(__FILE__) },
match qr/SHA256 digest does not match/,
'fetch dies with bad sig';
( run in 1.153 second using v1.01-cache-2.11-cpan-39bf76dae61 )