Remove showing stderr log files unconditionally for tests 518 and 537.
Add failure checking for servers when fork()ed. Use same code path in 'stopserver' when called with a single or multiple pids.
This commit is contained in:
Родитель
f830d77307
Коммит
17d4f9513e
|
@ -235,8 +235,13 @@ sub startnew {
|
|||
my $child = fork();
|
||||
my $pid2;
|
||||
|
||||
if(not defined $child) {
|
||||
logmsg "fork() failure detected\n";
|
||||
return (-1,-1);
|
||||
}
|
||||
|
||||
if(0 == $child) {
|
||||
# a child, run the given command instead!
|
||||
# Here we are the child. Run the given command.
|
||||
|
||||
# Calling exec() within a pseudo-process actually spawns the requested
|
||||
# executable in a separate process and waits for it to complete before
|
||||
|
@ -244,7 +249,12 @@ sub startnew {
|
|||
# the process ID reported within the running executable will be
|
||||
# different from what the earlier Perl fork() might have returned.
|
||||
|
||||
exec($cmd);
|
||||
# exec() should never return back here to this process. We protect
|
||||
# ourselfs calling die() just in case something goes really bad.
|
||||
|
||||
exec($cmd) || die "Can't exec() $cmd: $!";
|
||||
|
||||
die "error: exec() has returned !!!";
|
||||
}
|
||||
|
||||
my $count=5;
|
||||
|
@ -390,23 +400,24 @@ sub torture {
|
|||
sub stopserver {
|
||||
my ($pid) = @_;
|
||||
|
||||
if($pid <= 0) {
|
||||
return; # this is not a good pid
|
||||
if(not defined $pid) {
|
||||
return; # whad'da'ya wanna'da with no pid ?
|
||||
}
|
||||
|
||||
if($pid =~ / /) {
|
||||
# if it contains space, it might be more than one pid
|
||||
my @pids = split(" ", $pid);
|
||||
for (@pids) {
|
||||
kill (9, $_); # die!
|
||||
# it might be more than one pid
|
||||
|
||||
my @pids = split(/\s+/, $pid);
|
||||
for (@pids) {
|
||||
chomp($_);
|
||||
if($_ =~ /^(\d+)$/) {
|
||||
if(($1 > 0) && kill(0, $1)) {
|
||||
if($verbose) {
|
||||
logmsg "RUN: Test server pid $1 signalled to die\n";
|
||||
}
|
||||
kill(9, $1); # die!
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
my $res = kill (9, $pid); # die!
|
||||
|
||||
if($verbose) {
|
||||
logmsg "RUN: Test server pid $pid signalled to die\n";
|
||||
}
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
|
@ -1216,13 +1227,7 @@ sub singletest {
|
|||
$cmd = $precheck[0];
|
||||
chomp $cmd;
|
||||
if($cmd) {
|
||||
my @o;
|
||||
if(($testnum == 518) || ($testnum == 537)) {
|
||||
@o = `$cmd 2>"$LOGDIR/stderr$testnum"`;
|
||||
}
|
||||
else {
|
||||
@o = `$cmd 2>/dev/null`;
|
||||
}
|
||||
my @o = `$cmd 2>/dev/null`;
|
||||
if($o[0]) {
|
||||
$why = $o[0];
|
||||
chomp $why;
|
||||
|
@ -1231,12 +1236,6 @@ sub singletest {
|
|||
}
|
||||
}
|
||||
|
||||
if(($testnum == 518) || ($testnum == 537)) {
|
||||
logmsg "== Start of file $LOGDIR/stderr$testnum\n";
|
||||
displaylogcontent("$LOGDIR/stderr$testnum");
|
||||
logmsg "== End of file $LOGDIR/stderr$testnum\n";
|
||||
}
|
||||
|
||||
if($why) {
|
||||
# there's a problem, count it as "skipped"
|
||||
$skipped++;
|
||||
|
|
Загрузка…
Ссылка в новой задаче