#!perl -w
use strict;
use Test;
use File::Spec;
require File::Spec->catfile('t', 'common.pl');
use Module::Build;
skip_test("Skipping unless \$ENV{TEST_SIGNATURE} is true") unless $ENV{TEST_SIGNATURE};
need_module('Module::Signature');
plan tests => 6;
{
my $base_dir = File::Spec->catdir( Module::Build->cwd, 't', 'Sample' );
chdir $base_dir or die "can't chdir to $base_dir: $!";
}
my $build = new Module::Build( module_name => 'Sample',
requires => { 'File::Spec' => 0 },
license => 'perl',
sign => 1,
);
{
eval {$build->dispatch('distdir')};
ok $@, '';
ok -e File::Spec->catfile($build->dist_dir, 'SIGNATURE');
}
{
# Fake out Module::Signature and Module::Build - the first one to
# run should be distmeta.
my @run_order;
{
local $^W; # Skip 'redefined' warnings
local *Module::Signature::sign = sub { push @run_order, 'sign' };
local *Module::Build::Base::ACTION_distmeta = sub { push @run_order, 'distmeta' };
eval { $build->dispatch('distdir') };
}
ok $@, '';
ok $run_order[0], 'distmeta';
ok $run_order[1], 'sign';
}
eval { $build->dispatch('realclean') };
ok $@, '';