summaryrefslogtreecommitdiff
path: root/selftest/target/Samba4.pm
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2012-03-02 18:20:45 +1100
committerAndrew Bartlett <abartlet@samba.org>2012-03-02 12:30:05 +0100
commit5d4144a82674467bccbfe30f42382ed0905026d0 (patch)
tree963b9d0017112adb9f6f682435157f66ad8a5b4e /selftest/target/Samba4.pm
parent0d94d681c4a829b2a0bdadf5800c11c05edd2fa4 (diff)
downloadsamba-5d4144a82674467bccbfe30f42382ed0905026d0.tar.gz
samba-5d4144a82674467bccbfe30f42382ed0905026d0.tar.bz2
samba-5d4144a82674467bccbfe30f42382ed0905026d0.zip
selftest: close stdin and wait with waitpid() for a safer exit
This avoids timelimit sending kill -9 after 1 second, which may disrupt the writing of gcov data. Andrew Bartlett
Diffstat (limited to 'selftest/target/Samba4.pm')
-rw-r--r--selftest/target/Samba4.pm6
1 files changed, 5 insertions, 1 deletions
diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm
index 361152b928..b79e29fad6 100644
--- a/selftest/target/Samba4.pm
+++ b/selftest/target/Samba4.pm
@@ -1363,10 +1363,12 @@ sub teardown_env($$)
my $count = 0;
until (kill(0, $pid) == 0) {
+ my $childpid = waitpid(-1, WNOHANG);
+
# This should give it time to write out the gcov data
sleep(1);
$count++;
- last if $count > 20;
+ last if $childpid == 0 or $count > 20;
}
# If it is still around, kill it
@@ -1409,6 +1411,8 @@ sub check_env($$)
{
my ($self, $envvars) = @_;
+ my $childpid = waitpid(-1, WNOHANG);
+
return (-p $envvars->{SAMBA_TEST_FIFO});
}