Commit dfffd467 authored by unknown's avatar unknown
Browse files

Merge mysql.com:/Users/kent/mysql/bk/mysql-4.1

into mysql.com:/Users/kent/mysql/bk/mysql-5.0


mysql-test/lib/mtr_cases.pl:
  Auto merged
parents 8fd77a04 ee793d03
Loading
Loading
Loading
Loading
+13 −14
Original line number Diff line number Diff line
@@ -53,21 +53,20 @@ sub collect_test_cases ($) {
  else
  {
    # ----------------------------------------------------------------------
    # Skip some tests listed in disabled.def
    # Disable some tests listed in disabled.def
    # ----------------------------------------------------------------------
    my %skiplist;
    my $skipfile= "$testdir/disabled.def";
    if ( open(SKIPFILE, $skipfile) )
    my %disabled;
    if ( open(DISABLED, "$testdir/disabled.def" ) )
    {
      while ( <SKIPFILE> )
      while ( <DISABLED> )
      {
        chomp;
        if ( /^\s*(\S+)\s*:\s*(.*?)\s*$/ )
        {
          $skiplist{$1}= $2;
          $disabled{$1}= $2;
        }
      }
      close SKIPFILE;
      close DISABLED;
    }

    foreach my $elem ( sort readdir(TESTDIR) ) {
@@ -75,7 +74,7 @@ sub collect_test_cases ($) {
      next if ! defined $tname;
      next if $::opt_do_test and ! defined mtr_match_prefix($elem,$::opt_do_test);

      collect_one_test_case($testdir,$resdir,$tname,$elem,$cases,\%skiplist);
      collect_one_test_case($testdir,$resdir,$tname,$elem,$cases,\%disabled);
    }
    closedir TESTDIR;
  }
@@ -119,7 +118,7 @@ sub collect_one_test_case($$$$$$) {
  my $tname=   shift;
  my $elem=    shift;
  my $cases=   shift;
  my $skiplist=shift;
  my $disabled=shift;

  my $path= "$testdir/$elem";

@@ -188,7 +187,7 @@ sub collect_one_test_case($$$$$$) {
  my $slave_mi_file=   "$testdir/$tname.slave-mi";
  my $master_sh=       "$testdir/$tname-master.sh";
  my $slave_sh=        "$testdir/$tname-slave.sh";
  my $disabled=        "$testdir/$tname.disabled";
  my $disabled_file=   "$testdir/$tname.disabled";

  $tinfo->{'master_opt'}= $::glob_win32 ? ["--default-time-zone=+3:00"] : [];
  $tinfo->{'slave_opt'}=  $::glob_win32 ? ["--default-time-zone=+3:00"] : [];
@@ -292,18 +291,18 @@ sub collect_one_test_case($$$$$$) {
  }

  # FIXME why this late?
  if ( $skiplist->{$tname} )
  if ( $disabled->{$tname} )
  {
    $tinfo->{'skip'}= 1;
    $tinfo->{'disable'}= 1;   # Sub type of 'skip'
    $tinfo->{'comment'}= $skiplist->{$tname} if $skiplist->{$tname};
    $tinfo->{'comment'}= $disabled->{$tname} if $disabled->{$tname};
  }

  if ( -f $disabled )
  if ( -f $disabled_file )
  {
    $tinfo->{'skip'}= 1;
    $tinfo->{'disable'}= 1;   # Sub type of 'skip'
    $tinfo->{'comment'}= mtr_fromfile($disabled);
    $tinfo->{'comment'}= mtr_fromfile($disabled_file);
  }

  # We can't restart a running server that may be in use
+26 −11
Original line number Diff line number Diff line
@@ -186,8 +186,8 @@ sub spawn_parent_impl {
  if ( $mode eq 'run' or $mode eq 'test' )
  {
    my $exit_value= -1;
    my $signal_num=  0;
    my $dumped_core= 0;
#    my $signal_num=  0;
#    my $dumped_core= 0;

    if ( $mode eq 'run' )
    {
@@ -199,9 +199,10 @@ sub spawn_parent_impl {
        mtr_error("$path ($pid) got lost somehow");
      }

      $exit_value=  $? >> 8;
      $signal_num=  $? & 127;
      $dumped_core= $? & 128;
      $exit_value=  $?;
#      $exit_value=  $? >> 8;
#      $signal_num=  $? & 127;
#      $dumped_core= $? & 128;

      return $exit_value;
    }
@@ -229,9 +230,10 @@ sub spawn_parent_impl {
        if ( $ret_pid == $pid )
        {
          # We got termination of mysqltest, we are done
          $exit_value=  $? >> 8;
          $signal_num=  $? & 127;
          $dumped_core= $? & 128;
          $exit_value=  $?;
#          $exit_value=  $? >> 8;
#          $signal_num=  $? & 127;
#          $dumped_core= $? & 128;
          last;
        }

@@ -473,6 +475,7 @@ sub mtr_stop_mysqld_servers ($) {
    }
    else
    {
      # Server is dead, we remove the pidfile if any
      # Race, could have been removed between I tested with -f
      # and the unlink() below, so I better check again with -f

@@ -502,10 +505,12 @@ sub mtr_stop_mysqld_servers ($) {
  # that for true Win32 processes, kill(0,$pid) will not return 1.
  # ----------------------------------------------------------------------

  start_reap_all();                     # Avoid zombies

 SIGNAL:
  foreach my $sig (15,9)
  {
    my $retries= 10;                    # 10 seconds
    my $retries= 20;                    # FIXME 20 seconds, this is silly!
    kill($sig, keys %mysqld_pids);
    while ( $retries-- and  kill(0, keys %mysqld_pids) )
    {
@@ -514,6 +519,8 @@ sub mtr_stop_mysqld_servers ($) {
    }
  }

  stop_reap_all();                      # Get into control again

  # ----------------------------------------------------------------------
  # Now, we check if all we can find using kill(0,$pid) are dead,
  # and just assume the rest are. We cleanup socket and PID files.
@@ -632,7 +639,8 @@ sub mtr_mysqladmin_shutdown () {
    $mysql_admin_pids{$pid}= 1;
  }

  # We wait blocking, we wait for the last one anyway
  # As mysqladmin is such a simple program, we trust it to terminate.
  # I.e. we wait blocking, and wait wait for them all before we go on.
  while (keys %mysql_admin_pids)
  {
    foreach my $pid (keys %mysql_admin_pids)
@@ -651,7 +659,8 @@ sub mtr_mysqladmin_shutdown () {

  my $timeout= 20;                      # 20 seconds max
  my $res= 1;                           # If we just fall through, we are done
 
                                        # in the sense that the servers don't
                                        # listen to their ports any longer
 TIME:
  while ( $timeout-- )
  {
@@ -669,6 +678,8 @@ sub mtr_mysqladmin_shutdown () {
    last;                               # If we got here, we are done
  }

  $timeout or mtr_debug("At least one server is still listening to its port");

  sleep(5) if $::glob_win32;            # FIXME next startup fails if no sleep

  return $res;
@@ -794,8 +805,12 @@ sub sleep_until_file_created ($$$) {
#
##############################################################################

# FIXME something is wrong, we sometimes terminate with "Hangup" written
# to tty, and no STDERR output telling us why.

sub mtr_exit ($) {
  my $code= shift;
#  cluck("Called mtr_exit()");
  local $SIG{HUP} = 'IGNORE';
  kill('HUP', -$$);
  exit($code);
+0 −1
Original line number Diff line number Diff line
@@ -10,7 +10,6 @@ sub mtr_report_test_name($);
sub mtr_report_test_passed($);
sub mtr_report_test_failed($);
sub mtr_report_test_skipped($);
sub mtr_report_test_disabled($);

sub mtr_show_failed_diff ($);
sub mtr_report_stats ($);