ASPEER-MakeMaker
view release on metacpan or search on metacpan
lib/ASPEER/MakeMaker.pm view on Meta::CPAN
my $dest_dir=dirname($dest_pn);
die "destination directory not found: $dest_dir\n"
unless -d $dest_dir;
my $srce_abs=File::Spec->rel2abs($srce_pn);
my $dest_abs=File::Spec->rel2abs($dest_pn);
die "source and destination are the same path: $srce_abs\n"
if $srce_abs eq $dest_abs;
my @srce_stat=stat($srce_pn)
or die "stat failed for source $srce_pn: $!\n";
if (-e $dest_pn) {
my @dest_stat=stat($dest_pn)
or die "stat failed for destination $dest_pn: $!\n";
die "source and destination are the same file: $srce_pn -> $dest_pn\n"
if $srce_stat[0] == $dest_stat[0] && $srce_stat[1] == $dest_stat[1];
}
my ($tmp_fh, $tmp_fn)=tempfile('.util_sync.XXXXXXXX', DIR => $dest_dir);
close($tmp_fh)
or die "close failed for temporary file $tmp_fn: $!\n";
t/02-mm-integration.t view on Meta::CPAN
if (length($git_sha)) {
is(slurp('lib/Sample.pm.sha'), "$git_sha\n",
'Git-SHA provenance is generated');
like($makefile, qr/lib\/Sample\.pm\.sha/,
'Git-SHA provenance is included in install map');
utime(1000000000, 1000000000, 'lib/Sample.pm.sha') ||
die("unable to set Git-SHA fixture timestamp, $!");
is(system($^X, "-I$local_lib_dn", '-MASPEER::MakeMaker', 'Makefile.PL'), 0,
'Makefile.PL can be regenerated');
is((stat('lib/Sample.pm.sha'))[9], 1000000000,
'unchanged Git-SHA provenance is not rewritten');
}
else {
ok(!-e 'lib/Sample.pm.sha', 'Git-SHA generation is skipped without Git');
pass('Git-SHA install-map test skipped without Git');
pass('Git-SHA regeneration test skipped without Git');
pass('Git-SHA rewrite test skipped without Git');
}
t/ASPEER-MakeMaker.t view on Meta::CPAN
like(
ASPEER::MakeMaker::MM::Util::slurp($dest_fn),
qr/\$VERSION='0\.777'/,
'util_sync applies the version parsed from VERSION_FROM'
);
my $source_size=-s $UPDATE_SOURCE_UTIL_FN;
my $dest_size=-s $dest_fn;
is($dest_size, $source_size, 'trial destination has source size');
my $source_mtime=(stat($UPDATE_SOURCE_UTIL_FN))[9];
utime($source_mtime + 100, $source_mtime + 100, $dest_fn)
or die "utime failed for $dest_fn: $!";
ok(
ASPEER::MakeMaker->util_sync(target_args($dest_fn, $UPDATE_SOURCE_UTIL_FN)),
'util_sync overwrites existing destination'
);
is((stat($dest_fn))[9], $source_mtime, 'util_sync preserves the source timestamp');
like(
do {
local $@;
eval { ASPEER::MakeMaker->util_sync(target_args($UPDATE_SOURCE_UTIL_FN, $UPDATE_SOURCE_UTIL_FN)) };
$@;
},
qr/source and destination are the same/,
'util_sync refuses same source and destination'
);
( run in 1.183 second using v1.01-cache-2.11-cpan-3b040b67cf0 )