svn commit: samba r23693 - in branches/SAMBA_4_0/source/selftest: .
abartlet at samba.org
abartlet at samba.org
Wed Jul 4 00:34:18 GMT 2007
Author: abartlet
Date: 2007-07-04 00:34:16 +0000 (Wed, 04 Jul 2007)
New Revision: 23693
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=23693
Log:
Give the process a chance to write out it's coverage data, before we
blast a kill -9 at it.
Andrew Bartlett
Modified:
branches/SAMBA_4_0/source/selftest/Samba4.pm
Changeset:
Modified: branches/SAMBA_4_0/source/selftest/Samba4.pm
===================================================================
--- branches/SAMBA_4_0/source/selftest/Samba4.pm 2007-07-03 23:48:02 UTC (rev 23692)
+++ branches/SAMBA_4_0/source/selftest/Samba4.pm 2007-07-04 00:34:16 UTC (rev 23693)
@@ -514,19 +514,34 @@
sub teardown_env($$)
{
my ($self, $envvars) = @_;
+ my $pid;
close(DATA);
- sleep(2);
-
- my $failed = $? >> 8;
-
if (-f "$envvars->{PIDDIR}/smbd.pid" ) {
open(IN, "<$envvars->{PIDDIR}/smbd.pid") or die("unable to open smbd pid file");
- kill 9, <IN>;
+ $pid = <IN>;
close(IN);
+
+ # Give the process 20 seconds to exit. gcov needs
+ # this time to write out the covarge data
+ my $count = 0;
+ until (kill(0, $pid) == 0) {
+ # if no process sucessfully signalled, then we are done
+ sleep(1);
+ $count++;
+ last if $count > 20;
+ }
+
+ # If it is still around, kill it
+ if ($count > 20) {
+ print "smbd process $pid took more than $count seconds to exit, killing\n";
+ kill 9, $pid;
+ }
}
+ my $failed = $? >> 8;
+
$self->slapd_stop($envvars) if ($self->{ldap});
print $self->getlog_env($envvars);
More information about the samba-cvs
mailing list