Commit 67bd2842 authored by unknown's avatar unknown
Browse files

Merge bk-internal:/home/bk/mysql-4.1-maint

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

parents 6597ef1f 788968a6
Loading
Loading
Loading
Loading
+134 −73
Original line number Diff line number Diff line
@@ -1295,6 +1295,54 @@ sub collect_mysqld_features () {
}


sub executable_setup_im () {

  # Look for instance manager binary - mysqlmanager
  $exe_im=
    mtr_exe_maybe_exists(
      "$glob_basedir/server-tools/instance-manager/mysqlmanager",
      "$glob_basedir/libexec/mysqlmanager");

  return ($exe_im eq "");
}

sub executable_setup_ndb () {

  # Look for ndb tols and binaries
  my $ndb_path= mtr_file_exists("$glob_basedir/ndb",
				"$glob_basedir/storage/ndb",
				"$glob_basedir/bin");

  $exe_ndbd=
    mtr_exe_maybe_exists("$ndb_path/src/kernel/ndbd",
			 "$ndb_path/ndbd");
  $exe_ndb_mgm=
    mtr_exe_maybe_exists("$ndb_path/src/mgmclient/ndb_mgm",
			 "$ndb_path/ndb_mgm");
  $exe_ndb_mgmd=
    mtr_exe_maybe_exists("$ndb_path/src/mgmsrv/ndb_mgmd",
			 "$ndb_path/ndb_mgmd");
  $exe_ndb_waiter=
    mtr_exe_maybe_exists("$ndb_path/tools/ndb_waiter",
			 "$ndb_path/ndb_waiter");

  # May not exist
  $path_ndb_tools_dir= mtr_file_exists("$ndb_path/tools",
				       "$ndb_path");
  # May not exist
  $path_ndb_examples_dir=
    mtr_file_exists("$ndb_path/ndbapi-examples",
		    "$ndb_path/examples");
  # May not exist
  $exe_ndb_example=
    mtr_file_exists("$path_ndb_examples_dir/ndbapi_simple/ndbapi_simple");

  return ( $exe_ndbd eq "" or
	   $exe_ndb_mgm eq "" or
	   $exe_ndb_mgmd eq "" or
	   $exe_ndb_waiter eq "");
}

sub executable_setup () {

  #
@@ -1333,20 +1381,6 @@ sub executable_setup () {
			      "$glob_basedir/extra/release/perror",
			      "$glob_basedir/extra/debug/perror");


  if ( ! $opt_skip_im )
  {
    # Look for instance manager binary - mysqlmanager
    $exe_im=
      mtr_exe_exists(
		     "$glob_basedir/server-tools/instance-manager/mysqlmanager",
		     "$glob_basedir/libexec/mysqlmanager");
  }
  else
  {
    $exe_im= "not_available";
  }

  # Look for the client binaries
  $exe_mysqlcheck=     mtr_exe_exists("$path_client_bindir/mysqlcheck");
  $exe_mysqldump=      mtr_exe_exists("$path_client_bindir/mysqldump");
@@ -1368,35 +1402,25 @@ sub executable_setup () {
			"$path_client_bindir/mysql_fix_privilege_tables");
  }

  if ( ! $opt_skip_ndbcluster)

  if ( ! $opt_skip_ndbcluster and executable_setup_ndb())
  {
    # Look for ndb tols and binaries
    my $ndb_path= mtr_path_exists("$glob_basedir/ndb",
				  "$glob_basedir/storage/ndb",
				  "$glob_basedir/bin");
    mtr_warning("Could not find all required ndb binaries, " .
		"all ndb tests will fail, use --skip-ndbcluster to " .
		"skip testing it.");

    $path_ndb_tools_dir= mtr_path_exists("$ndb_path/tools",
					 "$ndb_path");
    $exe_ndb_mgm=
      mtr_exe_exists("$ndb_path/src/mgmclient/ndb_mgm",
		     "$ndb_path/ndb_mgm");
    $exe_ndb_mgmd=
      mtr_exe_exists("$ndb_path/src/mgmsrv/ndb_mgmd",
		     "$ndb_path/ndb_mgmd");
    $exe_ndb_waiter=
      mtr_exe_exists("$ndb_path/tools/ndb_waiter",
		     "$ndb_path/ndb_waiter");
    $exe_ndbd=
      mtr_exe_exists("$ndb_path/src/kernel/ndbd",
		     "$ndb_path/ndbd");
    foreach my $cluster (@{$clusters})
    {
      $cluster->{"executable_setup_failed"}= 1;
    }
  }

    # May not exist
    $path_ndb_examples_dir=
      mtr_file_exists("$ndb_path/ndbapi-examples",
		      "$ndb_path/examples");
    # May not exist
    $exe_ndb_example=
      mtr_file_exists("$path_ndb_examples_dir/ndbapi_simple/ndbapi_simple");
  if ( ! $opt_skip_im and executable_setup_im())
  {
    mtr_warning("Could not find all required instance manager binaries, " .
		"all im tests will fail, use --skip-im to " .
		"continue without instance manager");
    $instance_manager->{"executable_setup_failed"}= 1;
  }

  # Look for the udf_example library
@@ -1424,7 +1448,8 @@ sub executable_setup () {
  if ( $glob_use_embedded_server )
  {
    $exe_mysql_client_test=
      mtr_exe_maybe_exists("$glob_basedir/libmysqld/examples/mysql_client_test_embedded");
      mtr_exe_maybe_exists(
        "$glob_basedir/libmysqld/examples/mysql_client_test_embedded");
  }
  else
  {
@@ -1567,6 +1592,8 @@ sub environment_setup () {
  # ----------------------------------------------------
  # Setup env for IM
  # ----------------------------------------------------
  if ( ! $opt_skip_im )
  {
    $ENV{'IM_EXE'}=             $exe_im;
    $ENV{'IM_PATH_PID'}=        $instance_manager->{path_pid};
    $ENV{'IM_PATH_ANGEL_PID'}=  $instance_manager->{path_angel_pid};
@@ -1574,12 +1601,19 @@ sub environment_setup () {
    $ENV{'IM_DEFAULTS_PATH'}=   $instance_manager->{defaults_file};
    $ENV{'IM_PASSWORD_PATH'}=   $instance_manager->{password_file};

  $ENV{'IM_MYSQLD1_SOCK'}=    $instance_manager->{instances}->[0]->{path_sock};
  $ENV{'IM_MYSQLD1_PORT'}=    $instance_manager->{instances}->[0]->{port};
  $ENV{'IM_MYSQLD1_PATH_PID'}=$instance_manager->{instances}->[0]->{path_pid};
  $ENV{'IM_MYSQLD2_SOCK'}=    $instance_manager->{instances}->[1]->{path_sock};
  $ENV{'IM_MYSQLD2_PORT'}=    $instance_manager->{instances}->[1]->{port};
  $ENV{'IM_MYSQLD2_PATH_PID'}=$instance_manager->{instances}->[1]->{path_pid};
    $ENV{'IM_MYSQLD1_SOCK'}=
      $instance_manager->{instances}->[0]->{path_sock};
    $ENV{'IM_MYSQLD1_PORT'}=
      $instance_manager->{instances}->[0]->{port};
    $ENV{'IM_MYSQLD1_PATH_PID'}=
      $instance_manager->{instances}->[0]->{path_pid};
    $ENV{'IM_MYSQLD2_SOCK'}=
      $instance_manager->{instances}->[1]->{path_sock};
    $ENV{'IM_MYSQLD2_PORT'}=
      $instance_manager->{instances}->[1]->{port};
    $ENV{'IM_MYSQLD2_PATH_PID'}=
      $instance_manager->{instances}->[1]->{path_pid};
  }

  # ----------------------------------------------------
  # Setup env so childs can execute mysqlcheck
@@ -1834,6 +1868,11 @@ sub kill_running_servers () {

    if ( ! -d $opt_vardir )
    {
      if ( -l $opt_vardir and ! -d readlink($opt_vardir) )
      {
	mtr_report("Removing $opt_vardir symlink without destination");
	unlink($opt_vardir);
      }
      # The "var" dir does not exist already
      # the processes that mtr_kill_leftovers start will write
      # their log files to var/log so it should be created
@@ -2037,14 +2076,6 @@ sub check_ndbcluster_support ($) {
    $opt_skip_ndbcluster_slave= 1;
    return;
  }
  elsif ( -e "$glob_basedir/bin" && ! -f "$glob_basedir/bin/ndbd")
  {
    # Binary dist with a mysqld that supports ndb, but no ndbd found
    mtr_report("Skipping ndbcluster, can't fint binaries");
    $opt_skip_ndbcluster= 1;
    $opt_skip_ndbcluster_slave= 1;
    return;
  }
  $glob_ndbcluster_supported= 1;
  mtr_report("Using ndbcluster when necessary, mysqld supports it");

@@ -2475,7 +2506,8 @@ sub mysql_install_db () {

  my $cluster_started_ok= 1; # Assume it can be started

  if ($opt_skip_ndbcluster || $glob_use_running_ndbcluster)
  if ($opt_skip_ndbcluster || $glob_use_running_ndbcluster ||
      $clusters->[0]->{executable_setup_failed})
  {
    # Don't install master cluster
  }
@@ -2486,7 +2518,8 @@ sub mysql_install_db () {
  }

  if ($max_slave_num == 0 ||
      $opt_skip_ndbcluster_slave || $glob_use_running_ndbcluster_slave)
      $opt_skip_ndbcluster_slave || $glob_use_running_ndbcluster_slave ||
      $clusters->[1]->{executable_setup_failed})
  {
    # Don't install slave cluster
  }
@@ -2760,6 +2793,16 @@ sub run_testcase_check_skip_test($)
      last if ($opt_skip_ndbcluster_slave and
	       $cluster->{'name'} eq 'Slave');

      # If test needs this cluster, check binaries was found ok
      if ( $cluster->{'executable_setup_failed'} )
      {
	mtr_report_test_name($tinfo);
	$tinfo->{comment}=
	  "Failed to find cluster binaries";
	mtr_report_test_failed($tinfo);
	return 1;
      }

      # If test needs this cluster, check it was installed ok
      if ( !$cluster->{'installed_ok'} )
      {
@@ -2769,6 +2812,20 @@ sub run_testcase_check_skip_test($)
	mtr_report_test_failed($tinfo);
	return 1;
      }

    }
  }

  if ( $tinfo->{'component_id'} eq 'im' )
  {
      # If test needs im, check binaries was found ok
    if ( $instance_manager->{'executable_setup_failed'} )
    {
      mtr_report_test_name($tinfo);
      $tinfo->{comment}=
	"Failed to find MySQL manager binaries";
      mtr_report_test_failed($tinfo);
      return 1;
    }
  }

@@ -2880,6 +2937,13 @@ sub find_testcase_skipped_reason($)
sub run_testcase ($) {
  my $tinfo=  shift;

  # -------------------------------------------------------
  # Init variables that can change between each test case
  # -------------------------------------------------------

  $ENV{'TZ'}= $tinfo->{'timezone'};
  mtr_verbose("Starting server with timezone: $tinfo->{'timezone'}");

  my $master_restart= run_testcase_need_master_restart($tinfo);
  my $slave_restart= run_testcase_need_slave_restart($tinfo);

@@ -3409,6 +3473,9 @@ sub mysqld_start ($$$) {
  my $type= $mysqld->{'type'};
  my $idx= $mysqld->{'idx'};

  mtr_error("Internal error: mysqld should never be started for embedded")
    if $glob_use_embedded_server;

  if ( $type eq 'master' )
  {
    $exe= $exe_master_mysqld;
@@ -3849,12 +3916,6 @@ sub run_testcase_start_servers($) {
  my $tinfo= shift;
  my $tname= $tinfo->{'name'};

  # -------------------------------------------------------
  # Init variables that can change between server starts
  # -------------------------------------------------------
  $ENV{'TZ'}= $tinfo->{'timezone'};
  mtr_verbose("Starting server with timezone: $tinfo->{'timezone'}");

  if ( $tinfo->{'component_id'} eq 'mysqld' )
  {
    if ( ! $opt_skip_ndbcluster and
+1 −0
Original line number Diff line number Diff line
@@ -225,6 +225,7 @@ $CP mysql-test/lib/*.sql $BASE/mysql-test/lib
$CP mysql-test/t/*.def $BASE/mysql-test/t
$CP mysql-test/include/*.inc $BASE/mysql-test/include
$CP mysql-test/std_data/*.dat mysql-test/std_data/*.*001 \
    mysql-test/std_data/*.cnf \
    $BASE/mysql-test/std_data
$CP mysql-test/std_data/des_key_file $BASE/mysql-test/std_data
$CP mysql-test/t/*test mysql-test/t/*.opt mysql-test/t/*.slave-mi \