Commit d45a6828 authored by unknown's avatar unknown
Browse files

mtr_process.pl:

  Call mtr_timer_stop_all() at exit
mtr_report.pl, mysql-test-run.pl:
  Added default/ps-protocol/embedded to abort and summary line
mtr_timer.pl:
  Added function mtr_timer_stop_all()


mysql-test/mysql-test-run.pl:
  Added default/ps-protocol/embedded to abort and summary line
mysql-test/lib/mtr_timer.pl:
  Added function mtr_timer_stop_all()
mysql-test/lib/mtr_report.pl:
  Added default/ps-protocol/embedded to abort and summary line
mysql-test/lib/mtr_process.pl:
  Call mtr_timer_stop_all() at exit
parent 077c8420
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -841,6 +841,7 @@ sub sleep_until_file_created ($$$) {
sub mtr_exit ($) {
  my $code= shift;
#  cluck("Called mtr_exit()");
  mtr_timer_stop_all($::glob_timers);
  local $SIG{HUP} = 'IGNORE';
  kill('HUP', -$$);
  sleep 2;
+2 −1
Original line number Diff line number Diff line
@@ -223,7 +223,8 @@ sub mtr_report_stats ($) {

  if ( $tot_failed != 0 )
  {
    print "mysql-test-run: *** Failing the test(s):";
    my $test_mode= join(" ", @::glob_test_mode) || "default";
    print "mysql-test-run in $test_mode mode: *** Failing the test(s):";

    foreach my $tinfo (@$tests)
    {
+24 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ use POSIX 'WNOHANG';
sub mtr_init_timers ();
sub mtr_timer_start($$$);
sub mtr_timer_stop($$);
sub mtr_timer_stop_all($);
sub mtr_timer_waitpid($$$);

##############################################################################
@@ -113,6 +114,29 @@ sub mtr_timer_stop ($$) {
}


sub mtr_timer_stop_all ($) {
  my $timers= shift;

  foreach my $name ( keys %{$timers->{'timers'}} )
  {
    my $tpid= $timers->{'timers'}->{$name}->{'pid'};

    # FIXME as Cygwin reuses pids fast, maybe check that is
    # the expected process somehow?!
    kill(9, $tpid);

    # As the timers are so simple programs, we trust them to terminate,
    # and use blocking wait for it. We wait just to avoid a zombie.
    waitpid($tpid,0);

    delete $timers->{'timers'}->{$name}; # Remove the timer information
    delete $timers->{'pids'}->{$tpid};   # and PID reference

    return 1;
  }
}


sub mtr_timer_timeout ($$) {
  my ($timers,$pid)= @_;

+10 −2
Original line number Diff line number Diff line
@@ -142,6 +142,7 @@ our $glob_timers= undef;
our $glob_use_running_server=     0;
our $glob_use_running_ndbcluster= 0;
our $glob_use_embedded_server=    0;
our @glob_test_mode;

our $glob_basedir;

@@ -606,6 +607,7 @@ sub command_line_setup () {
  if ( $opt_embedded_server )
  {
    $glob_use_embedded_server= 1;
    push(@glob_test_mode, "embedded");
    $opt_skip_rpl= 1;              # We never run replication with embedded

    if ( $opt_extern )
@@ -614,6 +616,11 @@ sub command_line_setup () {
    }
  }

  if ( $opt_ps_protocol )
  {
    push(@glob_test_mode, "ps-protocol");
  }

  # FIXME don't understand what this is
#  if ( $opt_local_master )
#  {
@@ -1562,8 +1569,9 @@ sub report_failure_and_restart ($) {
  print "\n";
  if ( ! $opt_force )
  {
    print "Aborting: $tinfo->{'name'} failed. To continue, re-run with '--force'.";
    print "\n";
    my $test_mode= join(" ", @::glob_test_mode) || "default";
    print "Aborting: $tinfo->{'name'} failed in $test_mode mode. ";
    print "To continue, re-run with '--force'.\n";
    if ( ! $opt_gdb and ! $glob_use_running_server and
         ! $opt_ddd and ! $glob_use_embedded_server )
    {