|
Packit |
b8b726 |
#!/usr/bin/perl
|
|
Packit |
b8b726 |
|
|
Packit |
b8b726 |
use strict;
|
|
Packit |
b8b726 |
BEGIN {
|
|
Packit |
b8b726 |
$| = 1;
|
|
Packit |
b8b726 |
$^W = 1;
|
|
Packit |
b8b726 |
}
|
|
Packit |
b8b726 |
|
|
Packit |
b8b726 |
use Test::More;
|
|
Packit |
b8b726 |
use File::Spec::Functions ':ALL';
|
|
Packit |
b8b726 |
use File::Remove ();
|
|
Packit |
b8b726 |
|
|
Packit |
b8b726 |
unless( eval { symlink("",""); 1 } ) {
|
|
Packit |
b8b726 |
plan("skip_all" => "No Unix-like symlinks");
|
|
Packit |
b8b726 |
exit(0);
|
|
Packit |
b8b726 |
}
|
|
Packit |
b8b726 |
|
|
Packit |
b8b726 |
plan( tests => 8 );
|
|
Packit |
b8b726 |
|
|
Packit |
b8b726 |
# Set up the tests
|
|
Packit |
b8b726 |
my $testdir = catdir( 't', 'linktest' );
|
|
Packit |
b8b726 |
if ( -d $testdir ) {
|
|
Packit |
b8b726 |
File::Remove::remove( \1, $testdir );
|
|
Packit |
b8b726 |
die "Failed to clear test directory '$testdir'" if -d $testdir;
|
|
Packit |
b8b726 |
}
|
|
Packit |
b8b726 |
ok( ! -d $testdir, 'Cleared testdir' );
|
|
Packit |
b8b726 |
unless( mkdir($testdir, 0777) ) {
|
|
Packit |
b8b726 |
die("Cannot create test directory '$testdir': $!");
|
|
Packit |
b8b726 |
}
|
|
Packit |
b8b726 |
ok( -d $testdir, 'Created testdir' );
|
|
Packit |
b8b726 |
my %links = (
|
|
Packit |
b8b726 |
l_ex => curdir(),
|
|
Packit |
b8b726 |
# l_ex_a => rootdir(),
|
|
Packit |
b8b726 |
l_nex => 'does_not_exist'
|
|
Packit |
b8b726 |
);
|
|
Packit |
b8b726 |
my $errs = 0;
|
|
Packit |
b8b726 |
foreach my $link (keys %links) {
|
|
Packit |
b8b726 |
my $path = catdir( $testdir, $link );
|
|
Packit |
b8b726 |
unless( symlink($links{$link}, $path )) {
|
|
Packit |
b8b726 |
diag("Cannot create symlink $link -> $links{$link}: $!");
|
|
Packit |
b8b726 |
$errs++;
|
|
Packit |
b8b726 |
}
|
|
Packit |
b8b726 |
}
|
|
Packit |
b8b726 |
if ( $errs ) {
|
|
Packit |
b8b726 |
die("Could not create test links");
|
|
Packit |
b8b726 |
}
|
|
Packit |
b8b726 |
|
|
Packit |
b8b726 |
ok( File::Remove::remove(\1, map { catdir($testdir, $_) } keys %links), "remove \\1: all links" );
|
|
Packit |
b8b726 |
|
|
Packit |
b8b726 |
my @entries;
|
|
Packit |
b8b726 |
|
|
Packit |
b8b726 |
ok( opendir(DIR, $testdir) );
|
|
Packit |
b8b726 |
foreach my $dir ( readdir(DIR) ) {
|
|
Packit |
b8b726 |
next if $dir eq curdir();
|
|
Packit |
b8b726 |
next if $dir eq updir();
|
|
Packit |
b8b726 |
push @entries, $dir;
|
|
Packit |
b8b726 |
}
|
|
Packit |
b8b726 |
ok( closedir(DIR) );
|
|
Packit |
b8b726 |
|
|
Packit |
b8b726 |
ok( @entries == 0, "no links remained in directory; found @entries" );
|
|
Packit |
b8b726 |
|
|
Packit |
b8b726 |
ok( File::Remove::remove(\1, $testdir), "remove \\1: $testdir" );
|
|
Packit |
b8b726 |
|
|
Packit |
b8b726 |
ok( ! -e $testdir, "!-e: $testdir" );
|