diff options
Diffstat (limited to 'mysql-test/lib')
-rw-r--r-- | mysql-test/lib/My/SafeProcess.pm | 18 | ||||
-rw-r--r-- | mysql-test/lib/mtr_process.pl | 8 |
2 files changed, 14 insertions, 12 deletions
diff --git a/mysql-test/lib/My/SafeProcess.pm b/mysql-test/lib/My/SafeProcess.pm index 4f7464daf44..30c8fe54642 100644 --- a/mysql-test/lib/My/SafeProcess.pm +++ b/mysql-test/lib/My/SafeProcess.pm @@ -395,10 +395,10 @@ sub _collect { # 1 Still running # sub wait_one { - my ($self, $timeout)= @_; - croak "usage: \$safe_proc->wait_one([timeout])" unless ref $self; + my ($self, $timeout, $keep)= @_; + croak "usage: \$safe_proc->wait_one([timeout] [, keep])" unless ref $self; - _verbose("wait_one $self, $timeout"); + _verbose("wait_one $self, $timeout, $keep"); if ( ! defined($self->{SAFE_PID}) ) { # No pid => not running @@ -472,16 +472,16 @@ sub wait_one { return 1; } - if ( not $blocking and $retpid == -1 ) { - # still running - _verbose("still running"); - return 1; - } + #if ( not $blocking and $retpid == -1 ) { + # # still running + # _verbose("still running"); + # return 1; + #} #warn "wait_one: expected pid $pid but got $retpid" # unless( $retpid == $pid ); - $self->_collect($exit_code); + $self->_collect($exit_code) unless $keep; return 0; } diff --git a/mysql-test/lib/mtr_process.pl b/mysql-test/lib/mtr_process.pl index cee9f2b6ed6..2ff78c0e10a 100644 --- a/mysql-test/lib/mtr_process.pl +++ b/mysql-test/lib/mtr_process.pl @@ -40,7 +40,7 @@ BEGIN eval 'sub USE_NETPING { $use_netping }'; } -sub sleep_until_file_created ($$$$); +sub sleep_until_file_created ($$$$$); sub mtr_ping_port ($); sub mtr_ping_port ($) { @@ -102,8 +102,9 @@ sub mtr_ping_port ($) { # FIXME check that the pidfile contains the expected pid! -sub sleep_until_file_created ($$$$) { +sub sleep_until_file_created ($$$$$) { my $pidfile= shift; + my $expectfile = shift; my $timeout= shift; my $proc= shift; my $warn_seconds = shift; @@ -120,8 +121,9 @@ sub sleep_until_file_created ($$$$) { my $seconds= ($loop * $sleeptime) / 1000; # Check if it died after the fork() was successful - if ( defined $proc and ! $proc->wait_one(0) ) + if ( defined $proc and ! $proc->wait_one(0, 1) ) { + return 1 if -r $expectfile; mtr_warning("Process $proc died after mysql-test-run waited $seconds " . "seconds for $pidfile to be created."); return 0; |