Blame t/02_distdir.t

Packit e8529c
use strict;
Packit e8529c
use warnings;
Packit e8529c
use Test::More; #tests => 1;
Packit e8529c
use File::Temp      qw[tempdir];
Packit e8529c
use File::Path      qw[rmtree];
Packit e8529c
use Capture::Tiny   qw[capture_merged];
Packit e8529c
use Config;
Packit e8529c
Packit e8529c
unless ( -e 'have_make' ) {
Packit e8529c
  plan skip_all => 'No network tests';
Packit e8529c
}
Packit e8529c
Packit e8529c
plan tests => 6;
Packit e8529c
Packit e8529c
{
Packit e8529c
my $make = $Config{make};
Packit e8529c
mkdir 'dist';
Packit e8529c
my $tmpdir = tempdir( DIR => 'dist', CLEANUP => 1 );
Packit e8529c
chdir $tmpdir or die "$!\n";
Packit e8529c
open MFPL, '>Makefile.PL' or die "$!\n";
Packit e8529c
print MFPL <<'EOF';
Packit e8529c
use if ! ( grep { $_ eq '.' } @INC ), qw[lib .];
Packit e8529c
use strict;
Packit e8529c
use inc::Module::Install;
Packit e8529c
name 'Foo-Bar';
Packit e8529c
version '0.01';
Packit e8529c
author 'Foo Bar';
Packit e8529c
abstract 'This module does something';
Packit e8529c
license 'perl';
Packit e8529c
auto_license;
Packit e8529c
WriteAll;
Packit e8529c
EOF
Packit e8529c
close MFPL;
Packit e8529c
my $merged = capture_merged { system "$^X Makefile.PL" };
Packit e8529c
diag("$merged");
Packit e8529c
# Copied /usr/lib/perl5/site_perl/5.8.8/Devel/CheckOS.pm to
Packit e8529c
#        inc/Devel/CheckOS.pm
Packit e8529c
# Copied /usr/lib/perl5/site_perl/5.8.8/Devel/AssertOS.pm to
Packit e8529c
#        inc/Devel/AssertOS.pm
Packit e8529c
# Copied /usr/lib/perl5/site_perl/5.8.8/Devel/AssertOS/NetBSD.pm to
Packit e8529c
#        inc/Devel/AssertOS/NetBSD.pm
Packit e8529c
my @tests = (
Packit e8529c
'inc/Module/Install/AutoLicense.pm',
Packit e8529c
);
Packit e8529c
ok( -e $_, "Exists: '$_'" ) for @tests;
Packit e8529c
ok( -e 'LICENSE', 'There is a LICENSE file' );
Packit e8529c
Packit e8529c
{
Packit e8529c
  open my $license, '<', 'LICENSE' or die "$!\n";
Packit e8529c
  local $/;
Packit e8529c
  my $contents = <$license>;
Packit e8529c
  close $license;
Packit e8529c
  like( $contents, qr/Foo Bar/s, 'Foo Bar is contained in the license file' );
Packit e8529c
}
Packit e8529c
Packit e8529c
# Need to make a manifest
Packit e8529c
Packit e8529c
my $manifest = capture_merged { system "$make manifest" };
Packit e8529c
diag("$manifest");
Packit e8529c
Packit e8529c
my $distdir = capture_merged { system "$make distdir" };
Packit e8529c
diag("$distdir");
Packit e8529c
Packit e8529c
chdir 'Foo-Bar-0.01' or die "$!\n!";
Packit e8529c
ok( -e 'LICENSE', 'There is a LICENSE file' );
Packit e8529c
my $foobar = capture_merged { system "$^X Makefile.PL" };
Packit e8529c
diag("$foobar");
Packit e8529c
my $distclean = capture_merged { system "$make distclean" };
Packit e8529c
diag("$distclean");
Packit e8529c
ok( -e 'LICENSE', 'There is a LICENSE file' );
Packit e8529c
Packit e8529c
{
Packit e8529c
  open my $license, '<', 'LICENSE' or die "$!\n";
Packit e8529c
  local $/;
Packit e8529c
  my $contents = <$license>;
Packit e8529c
  close $license;
Packit e8529c
  like( $contents, qr/Foo Bar/s, 'Foo Bar is contained in the license file' );
Packit e8529c
}
Packit e8529c
Packit e8529c
}