Commit abd4974f authored by unknown's avatar unknown

Improve error / process handling in the Perl script to run the test suite (patch supplied by Kent).


mysql-test/lib/mtr_process.pl:
  Handle errors in child processes separate from the parent process (patch supplied by Kent).
mysql-test/lib/mtr_report.pl:
  New function to handle errors in child processes separate from the parent process (patch supplied by Kent).
  Expected to avoid HUP signals.
parent a5903ed9
...@@ -166,7 +166,7 @@ sub spawn_impl ($$$$$$$$) { ...@@ -166,7 +166,7 @@ sub spawn_impl ($$$$$$$$) {
{ {
if ( ! open(STDOUT,$log_file_open_mode,$output) ) if ( ! open(STDOUT,$log_file_open_mode,$output) )
{ {
mtr_error("can't redirect STDOUT to \"$output\": $!"); mtr_child_error("can't redirect STDOUT to \"$output\": $!");
} }
} }
...@@ -176,14 +176,14 @@ sub spawn_impl ($$$$$$$$) { ...@@ -176,14 +176,14 @@ sub spawn_impl ($$$$$$$$) {
{ {
if ( ! open(STDERR,">&STDOUT") ) if ( ! open(STDERR,">&STDOUT") )
{ {
mtr_error("can't dup STDOUT: $!"); mtr_child_error("can't dup STDOUT: $!");
} }
} }
else else
{ {
if ( ! open(STDERR,$log_file_open_mode,$error) ) if ( ! open(STDERR,$log_file_open_mode,$error) )
{ {
mtr_error("can't redirect STDERR to \"$error\": $!"); mtr_child_error("can't redirect STDERR to \"$error\": $!");
} }
} }
} }
...@@ -192,13 +192,13 @@ sub spawn_impl ($$$$$$$$) { ...@@ -192,13 +192,13 @@ sub spawn_impl ($$$$$$$$) {
{ {
if ( ! open(STDIN,"<",$input) ) if ( ! open(STDIN,"<",$input) )
{ {
mtr_error("can't redirect STDIN to \"$input\": $!"); mtr_child_error("can't redirect STDIN to \"$input\": $!");
} }
} }
if ( ! exec($path,@$arg_list_t) ) if ( ! exec($path,@$arg_list_t) )
{ {
mtr_error("failed to execute \"$path\": $!"); mtr_child_error("failed to execute \"$path\": $!");
} }
} }
} }
......
...@@ -19,6 +19,7 @@ sub mtr_print_header (); ...@@ -19,6 +19,7 @@ sub mtr_print_header ();
sub mtr_report (@); sub mtr_report (@);
sub mtr_warning (@); sub mtr_warning (@);
sub mtr_error (@); sub mtr_error (@);
sub mtr_child_error (@);
sub mtr_debug (@); sub mtr_debug (@);
...@@ -286,6 +287,11 @@ sub mtr_error (@) { ...@@ -286,6 +287,11 @@ sub mtr_error (@) {
mtr_exit(1); mtr_exit(1);
} }
sub mtr_child_error (@) {
print STDERR "mysql-test-run: *** ERROR(child): ",join(" ", @_),"\n";
exit(1);
}
sub mtr_debug (@) { sub mtr_debug (@) {
if ( $::opt_script_debug ) if ( $::opt_script_debug )
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment