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 )