close $vrdr or die "close(\$vrdr): $!";
fcntl $vwtr, F_SETFD, 0 or die "fcntl(\$vwtr, F_SETFD, 0): $!";
my @args = (
+ $vg,
'--tool=memcheck',
'--leak-check=full',
'--leak-resolution=high',
print STDOUT "valgrind @args\n";
local $ENV{PERL_DESTRUCT_LEVEL} = 3;
local $ENV{PERL_DL_NONLAZY} = 1;
- exec $vg, @args;
+ exec { $args[0] } @args;
+ die "exec @args: $!";
}
local $SIG{INT} = sub { kill -(SIGTERM) => $pid };
$Test->plan(tests => 5) unless $args{no_test} or defined $Test->has_plan;
);
my %res = map { $_ => 0 } @tests;
close $owtr or die "close(\$owtr): $!";
- $Test->diag(do { local $/; <$ordr> }) if $args{diag};
- close $ordr or die "close(\$ordr): $!";
close $vwtr or die "close(\$vwtr): $!";
while (<$vrdr>) {
$Test->diag($_) if $args{diag};
}
}
waitpid $pid, 0;
+ $Test->diag(do { local $/; <$ordr> }) if $args{diag};
+ close $ordr or die "close(\$ordr): $!";
my $failed = 5;
my $cb = ($args{no_test} ? \&_counter
: ($args{cb} ? $args{cb} : \&_tester));