Commit effadd7c authored by unknown's avatar unknown
Browse files

Merge neptunus.(none):/home/msvensson/mysql/bug18969/my51-bug18969

into  neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint


mysql-test/mysql-test-run.pl:
  Auto merged
parents 29ebdae0 014e0d41
Loading
Loading
Loading
Loading
+38 −12
Original line number Diff line number Diff line
@@ -256,7 +256,7 @@ our $opt_result_ext;

our $opt_skip;
our $opt_skip_rpl;
our $use_slaves;
our $max_slave_num= 0;
our $use_innodb;
our $opt_skip_test;
our $opt_skip_im;
@@ -427,7 +427,13 @@ sub main () {
    {
      $need_ndbcluster||= $test->{ndb_test};
      $need_im||= $test->{component_id} eq 'im';
      $use_slaves||= $test->{slave_num};

      # Count max number of slaves used by a test case
      if ( $test->{slave_num} > $max_slave_num)
      {
	$max_slave_num= $test->{slave_num};
	mtr_error("Too many slaves") if $max_slave_num > 3;
      }
      $use_innodb||= $test->{'innodb_test'};
    }
    $opt_skip_ndbcluster= $opt_skip_ndbcluster_slave= 1
@@ -1122,11 +1128,9 @@ sub snapshot_setup () {
    $master->[0]->{'path_myddir'},
    $master->[1]->{'path_myddir'});

  if ($use_slaves)
  for (my $idx= 0; $idx < $max_slave_num; $idx++)
  {
    push @data_dir_lst, ($slave->[0]->{'path_myddir'},
                         $slave->[1]->{'path_myddir'},
                         $slave->[2]->{'path_myddir'});
    push(@data_dir_lst, $slave->[$idx]->{'path_myddir'});
  }

  unless ($opt_skip_im)
@@ -2260,11 +2264,10 @@ sub mysql_install_db () {
  # FIXME check if testcase really is using second master
  copy_install_db('master', $master->[1]->{'path_myddir'});

  if ( $use_slaves )
  # Install the number of slave databses needed
  for (my $idx= 0; $idx < $max_slave_num; $idx++)
  {
    install_db('slave1',  $slave->[0]->{'path_myddir'});
    install_db('slave2',  $slave->[1]->{'path_myddir'});
    install_db('slave3',  $slave->[2]->{'path_myddir'});
    copy_install_db("slave".($idx+1), $slave->[$idx]->{'path_myddir'});
  }

  if ( ! $opt_skip_im )
@@ -2275,7 +2278,7 @@ sub mysql_install_db () {
  my $cluster_started_ok= 1; # Assume it can be started

  if (ndbcluster_start_install($clusters->[0]) ||
      $use_slaves && ndbcluster_start_install($clusters->[1]))
      $max_slave_num && ndbcluster_start_install($clusters->[1]))
  {
    mtr_warning("Failed to start install of cluster");
    $cluster_started_ok= 0;
@@ -2495,6 +2498,28 @@ sub im_prepare_data_dir($) {
  }
}



#
# Restore snapshot of the installed slave databases
# if the snapshot exists
#
sub restore_slave_databases ($) {
  my ($num_slaves)= @_;

  if ( -d $path_snapshot)
  {
    for (my $idx= 0; $idx < $num_slaves; $idx++)
    {
      my $data_dir= $slave->[$idx]->{'path_myddir'};
      my $name= basename($data_dir);
      rmtree($data_dir);
      mtr_copy_dir("$path_snapshot/$name", $data_dir);
    }
  }
}


sub run_testcase_check_skip_test($)
{
  my ($tinfo)= @_;
@@ -2602,7 +2627,6 @@ sub run_testcase ($) {
  {
    run_testcase_stop_servers($tinfo, $master_restart, $slave_restart);
  }

  my $died= mtr_record_dead_children();
  if ($died or $master_restart or $slave_restart)
  {
@@ -3629,6 +3653,8 @@ sub run_testcase_start_servers($) {
  {
    mtr_tofile($slave->[0]->{'path_myerr'},"CURRENT_TEST: $tname\n");

    restore_slave_databases($tinfo->{'slave_num'});

    do_before_start_slave($tname,$tinfo->{'slave_sh'});

    if ( ! $opt_skip_ndbcluster_slave and