Blame t/05_links.t

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" );