Loading mysql-test/lib/mtr_process.pl +19 −26 Original line number Diff line number Diff line Loading @@ -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 ($$$$$$$); ############################################################################## # Loading @@ -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); } Loading @@ -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); } Loading @@ -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 ) Loading Loading @@ -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 Loading Loading @@ -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\": $!"); } Loading Loading @@ -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; Loading Loading @@ -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 Loading
mysql-test/lib/mtr_process.pl +19 −26 Original line number Diff line number Diff line Loading @@ -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 ($$$$$$$); ############################################################################## # Loading @@ -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); } Loading @@ -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); } Loading @@ -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 ) Loading Loading @@ -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 Loading Loading @@ -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\": $!"); } Loading Loading @@ -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; Loading Loading @@ -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