mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
into pilot.blaudden:/home/msvensson/mysql/mysql-5.1-maint mysql-test/lib/mtr_process.pl: Auto merged
This commit is contained in:
commit
3c902fb971
1 changed files with 19 additions and 26 deletions
|
@ -38,8 +38,8 @@ sub mtr_kill_processes ($);
|
|||
sub mtr_ping_with_timeout($);
|
||||
sub mtr_ping_port ($);
|
||||
|
||||
# static in C
|
||||
sub spawn_impl ($$$$$$$$);
|
||||
# Local function
|
||||
sub spawn_impl ($$$$$$$);
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
|
@ -47,18 +47,16 @@ sub spawn_impl ($$$$$$$$);
|
|||
#
|
||||
##############################################################################
|
||||
|
||||
# This function try to mimic the C version used in "netware/mysql_test_run.c"
|
||||
|
||||
sub mtr_run ($$$$$$;$) {
|
||||
my $path= shift;
|
||||
my $arg_list_t= shift;
|
||||
my $input= shift;
|
||||
my $output= shift;
|
||||
my $error= shift;
|
||||
my $pid_file= shift;
|
||||
my $pid_file= shift; # Not used
|
||||
my $spawn_opts= shift;
|
||||
|
||||
return spawn_impl($path,$arg_list_t,'run',$input,$output,$error,$pid_file,
|
||||
return spawn_impl($path,$arg_list_t,'run',$input,$output,$error,
|
||||
$spawn_opts);
|
||||
}
|
||||
|
||||
|
@ -68,10 +66,10 @@ sub mtr_run_test ($$$$$$;$) {
|
|||
my $input= shift;
|
||||
my $output= shift;
|
||||
my $error= shift;
|
||||
my $pid_file= shift;
|
||||
my $pid_file= shift; # Not used
|
||||
my $spawn_opts= shift;
|
||||
|
||||
return spawn_impl($path,$arg_list_t,'test',$input,$output,$error,$pid_file,
|
||||
return spawn_impl($path,$arg_list_t,'test',$input,$output,$error,
|
||||
$spawn_opts);
|
||||
}
|
||||
|
||||
|
@ -81,28 +79,22 @@ sub mtr_spawn ($$$$$$;$) {
|
|||
my $input= shift;
|
||||
my $output= shift;
|
||||
my $error= shift;
|
||||
my $pid_file= shift;
|
||||
my $pid_file= shift; # Not used
|
||||
my $spawn_opts= shift;
|
||||
|
||||
return spawn_impl($path,$arg_list_t,'spawn',$input,$output,$error,$pid_file,
|
||||
return spawn_impl($path,$arg_list_t,'spawn',$input,$output,$error,
|
||||
$spawn_opts);
|
||||
}
|
||||
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# If $join is set, we return the error code, else we return the PID
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
sub spawn_impl ($$$$$$$$) {
|
||||
sub spawn_impl ($$$$$$$) {
|
||||
my $path= shift;
|
||||
my $arg_list_t= shift;
|
||||
my $mode= shift;
|
||||
my $input= shift;
|
||||
my $output= shift;
|
||||
my $error= shift;
|
||||
my $pid_file= shift; # FIXME
|
||||
my $spawn_opts= shift;
|
||||
|
||||
if ( $::opt_script_debug )
|
||||
|
@ -155,10 +147,6 @@ sub spawn_impl ($$$$$$$$) {
|
|||
else
|
||||
{
|
||||
# Child, redirect output and exec
|
||||
# FIXME I tried POSIX::setsid() here to detach and, I hoped,
|
||||
# avoid zombies. But everything went wild, somehow the parent
|
||||
# became a deamon as well, and was hard to kill ;-)
|
||||
# Need to catch SIGCHLD and do waitpid or something instead......
|
||||
|
||||
$SIG{INT}= 'DEFAULT'; # Parent do some stuff, we don't
|
||||
|
||||
|
@ -196,7 +184,15 @@ sub spawn_impl ($$$$$$$$) {
|
|||
}
|
||||
else
|
||||
{
|
||||
if ( ! open(STDERR,$log_file_open_mode,$error) )
|
||||
if ( $::glob_win32_perl )
|
||||
{
|
||||
# Don't redirect stdout on ActiveState perl since this is
|
||||
# just another thread in the same process.
|
||||
# Should be fixed so that the thread that is created with fork
|
||||
# executes the exe in another process and wait's for it to return.
|
||||
# In the meanwhile, we get all the output from mysqld's to screen
|
||||
}
|
||||
elsif ( ! open(STDERR,$log_file_open_mode,$error) )
|
||||
{
|
||||
mtr_child_error("can't redirect STDERR to \"$error\": $!");
|
||||
}
|
||||
|
@ -259,9 +255,7 @@ sub spawn_parent_impl {
|
|||
# We do blocking waitpid() until we get the return from the
|
||||
# "mysqltest" call. But if a mysqld process dies that we
|
||||
# started, we take this as an error, and kill mysqltest.
|
||||
#
|
||||
# FIXME is this as it should be? Can't mysqld terminate
|
||||
# normally from running a test case?
|
||||
|
||||
|
||||
my $exit_value= -1;
|
||||
my $saved_exit_value;
|
||||
|
@ -450,7 +444,6 @@ sub mtr_kill_leftovers () {
|
|||
|
||||
# We scan the "var/run/" directory for other process id's to kill
|
||||
|
||||
# FIXME $path_run_dir or something
|
||||
my $rundir= "$::opt_vardir/run";
|
||||
|
||||
mtr_debug("Processing PID files in directory '$rundir'...");
|
||||
|
|
Loading…
Reference in a new issue