Add ARM files
[dh-make-perl] / dev / arm / libmodule-build-perl / libmodule-build-perl-0.2808.01 / t / signature.t
diff --git a/dev/arm/libmodule-build-perl/libmodule-build-perl-0.2808.01/t/signature.t b/dev/arm/libmodule-build-perl/libmodule-build-perl-0.2808.01/t/signature.t
new file mode 100644 (file)
index 0000000..ef57558
--- /dev/null
@@ -0,0 +1,77 @@
+#!/usr/bin/perl -w
+
+use strict;
+use lib $ENV{PERL_CORE} ? '../lib/Module/Build/t/lib' : 't/lib';
+use MBTest;
+
+if ( $ENV{TEST_SIGNATURE} ) {
+  if ( have_module( 'Module::Signature' ) ) {
+    plan tests => 7;
+  } else {
+    plan skip_all => '$ENV{TEST_SIGNATURE} is set, but Module::Signature not found';
+  }
+} else {
+  plan skip_all => '$ENV{TEST_SIGNATURE} is not set';
+}
+
+#########################
+
+use Cwd ();
+my $cwd = Cwd::cwd;
+my $tmp = MBTest->tmpdir;
+
+use DistGen;
+my $dist = DistGen->new( dir => $tmp );
+$dist->change_build_pl
+({
+  module_name => $dist->name,
+  license     => 'perl',
+  sign        => 1,
+});
+$dist->regen;
+
+chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+
+#########################
+
+use Module::Build;
+
+my $mb = Module::Build->new_from_context;
+
+
+{
+  eval {$mb->dispatch('distdir')};
+  is $@, '';
+  chdir( $mb->dist_dir ) or die "Can't chdir to '@{[$mb->dist_dir]}': $!";
+  ok -e 'SIGNATURE';
+  
+  # Make sure the signature actually verifies
+  ok Module::Signature::verify() == Module::Signature::SIGNATURE_OK();
+  chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+}
+
+{
+  # 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 { $mb->dispatch('distdir') };
+  }
+  is $@, '';
+  is $run_order[0], 'distmeta';
+  is $run_order[1], 'sign';
+}
+
+eval { $mb->dispatch('realclean') };
+is $@, '';
+
+
+# cleanup
+chdir( $cwd ) or die "Can''t chdir to '$cwd': $!";
+$dist->remove;
+
+use File::Path;
+rmtree( $tmp );