From: Vincent Pit Date: Fri, 13 Nov 2015 12:46:44 +0000 (-0200) Subject: Make sure the fake valgrind test executables are not opened when used X-Git-Tag: rt108873^0 X-Git-Url: http://git.vpit.fr/?a=commitdiff_plain;h=ad66f34b791e73c7e29655f84566b5021272ae4a;p=perl%2Fmodules%2FTest-Valgrind.git Make sure the fake valgrind test executables are not opened when used This fixes RT #108873. --- diff --git a/t/lib/Test/Valgrind/FakeValgrind.pm b/t/lib/Test/Valgrind/FakeValgrind.pm index ec3abd4..71077bd 100644 --- a/t/lib/Test/Valgrind/FakeValgrind.pm +++ b/t/lib/Test/Valgrind/FakeValgrind.pm @@ -47,8 +47,15 @@ sub new { $self->{tmp_dir} = $self->{tmp_dir_obj}->dirname; $self->{tmp_file} = File::Spec->catfile($self->{tmp_dir}, $exe_name); } else { - $self->{tmp_file_obj} = File::Temp->new(UNLINK => 1); - $self->{tmp_file} = $self->{tmp_file_obj}->filename; + # Can't use the OO interface if we don't wan't the file to be opened by + # default, but then we have to deal with cleanup ourselves. + (undef, my $tmp_file) = File::Temp::tempfile( + TEMPLATE => 'fakevgXXXX', + TMPDIR => 1, + CLEANUP => 0, + OPEN => 0, + ); + $self->{tmp_file} = $tmp_file; my ($vol, $dir) = File::Spec->splitpath($self->{tmp_file}); $self->{tmp_dir} = File::Spec->catpath($vol, $dir, ''); } @@ -68,8 +75,10 @@ sub new { bless $self, $class; } -sub path { $_[0]->{tmp_file} } +sub path { $_[0]->{tmp_file} } -sub dir { $_[0]->{tmp_dir} } +sub dir { $_[0]->{tmp_dir} } + +sub DESTROY { 1 while unlink $_[0]->{tmp_file} } 1;