Bug #43172 MTR leaves test files in /tmp after check_socket_path_length finds path too long

Faulty logic in cleanup
Put test file into tmpdir, cleanup by removing tmpdir
This commit is contained in:
Bjorn Munch 2009-02-25 10:32:13 +01:00
parent 6bd93f6702
commit e0c6aad83a

View File

@ -113,8 +113,8 @@ sub check_socket_path_length {
# Create a tempfile name with same length as "path" # Create a tempfile name with same length as "path"
my $tmpdir = tempdir( CLEANUP => 0); my $tmpdir = tempdir( CLEANUP => 0);
my $len = length($path) - length($tmpdir); my $len = length($path) - length($tmpdir) - 1;
my $testfile = $tmpdir . "x" x ($len > 0 ? $len : 1); my $testfile = $tmpdir . "/" . "x" x ($len > 0 ? $len : 1);
my $sock; my $sock;
eval { eval {
$sock= new IO::Socket::UNIX $sock= new IO::Socket::UNIX
@ -126,17 +126,15 @@ sub check_socket_path_length {
die "Could not create UNIX domain socket: $!" die "Could not create UNIX domain socket: $!"
unless defined $sock; unless defined $sock;
die "UNIX domain socket patch was truncated" die "UNIX domain socket path was truncated"
unless ($testfile eq $sock->hostpath()); unless ($testfile eq $sock->hostpath());
$truncated= 0; # Yes, it worked! $truncated= 0; # Yes, it worked!
}; };
#print "check_socket_path_length, failed: ", $@, '\n' if ($@);
$sock= undef; # Close socket $sock= undef; # Close socket
unlink($testfile); # Remove the physical file rmtree($tmpdir); # Remove the tempdir and any socket file created
rmdir($tmpdir); # Remove the tempdir
return $truncated; return $truncated;
} }