Commit fc9cf7f4 authored by unknown's avatar unknown
Browse files

Adapt to running from "binary dist"

Add function mtr_exe_maybe_exists to look for binaries that is optional
Skip ndb support if it's a binary dist where mysqld supports ndb but there is no ndbd


mysql-test/lib/mtr_misc.pl:
  Add function mtr_exe_maybe_exists
mysql-test/mysql-test-run.pl:
  Adapt to running from binary dist
  Add function mtr_exe_maybe_exists to look for binaries that is optional
  Skip ndb support if it's a binary dist where mysqld supports ndb but there is no ndbd
parent 9ee71787
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ sub mtr_path_exists(@);
sub mtr_script_exists(@);
sub mtr_file_exists(@);
sub mtr_exe_exists(@);
sub mtr_exe_maybe_exists(@);
sub mtr_copy_dir($$);
sub mtr_same_opts($$);
sub mtr_cmp_opts($$);
@@ -110,8 +111,9 @@ sub mtr_file_exists (@) {
  return "";
}

sub mtr_exe_exists (@) {
sub mtr_exe_maybe_exists (@) {
  my @path= @_;

  map {$_.= ".exe"} @path if $::glob_win32;
  foreach my $path ( @path )
  {
@@ -124,6 +126,16 @@ sub mtr_exe_exists (@) {
      return $path if -x $path;
    }
  }
  return "";
}

sub mtr_exe_exists (@) {
  my @path= @_;
  if (my $path= mtr_exe_maybe_exists(@path))
  {
    return $path;
  }
  # Could not find exe, show error
  if ( @path == 1 )
  {
    mtr_error("Could not find $path[0]");
+33 −33
Original line number Diff line number Diff line
@@ -1313,9 +1313,8 @@ sub executable_setup () {
  }

  # Look for language files and charsetsdir, use same share
  my $path_share=      mtr_path_exists("$glob_basedir/share",
  my $path_share=      mtr_path_exists("$glob_basedir/share/mysql",
				       "$glob_basedir/sql/share",
				       "$glob_basedir/share/mysql",
				       "$glob_basedir/share");

  $path_language=      mtr_path_exists("$path_share/english");
@@ -1373,32 +1372,32 @@ sub executable_setup () {
  {
    # Look for ndb tols and binaries
    my $ndb_path= mtr_path_exists("$glob_basedir/ndb",
				  "$glob_basedir/storage/ndb");
				  "$glob_basedir/storage/ndb",
				  "$glob_basedir/bin");

    $path_ndb_tools_dir= mtr_path_exists("$ndb_path/tools",
					 "$glob_basedir/bin");
					 "$ndb_path");
    $exe_ndb_mgm=
      mtr_exe_exists("$ndb_path/src/mgmclient/ndb_mgm",
		     "$glob_basedir/bin/ndb_mgm");
		     "$ndb_path/ndb_mgm");
    $exe_ndb_mgmd=
      mtr_exe_exists("$ndb_path/src/mgmsrv/ndb_mgmd",
		     "$glob_basedir/bin/ndb_mgmd");
		     "$ndb_path/ndb_mgmd");
    $exe_ndb_waiter=
      mtr_exe_exists("$ndb_path/tools/ndb_waiter",
		     "$glob_basedir/bin/ndb_waiter");
		     "$ndb_path/ndb_waiter");
    $exe_ndbd=
      mtr_exe_exists("$ndb_path/src/kernel/ndbd",
		     "$glob_basedir/bin/ndbd");
		     "$ndb_path/ndbd");

    if ( $mysql_version_id >= 50000 )
    {
    # May not exist
    $path_ndb_examples_dir=
	mtr_path_exists("$ndb_path/ndbapi-examples",
      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");
  }
  }

  # Look for the udf_example library
  $lib_udf_example=
@@ -1420,27 +1419,20 @@ sub executable_setup () {

  }

  if ( $glob_win32 and $mysql_version_id < 50000 )
  {
    # Skip looking for exe_mysql_client_test as its not built by default
    # in 4.1 for windows.
    $exe_mysql_client_test= "unavailable";
  }
  else
  {
    # Look for mysql_client_test executable
  # Look for mysql_client_test executable which may _not_ exist in
  # some versions, test using it should be skipped
  if ( $glob_use_embedded_server )
  {
    $exe_mysql_client_test=
	mtr_exe_exists("$glob_basedir/libmysqld/examples/mysql_client_test_embedded");
      mtr_exe_maybe_exists("$glob_basedir/libmysqld/examples/mysql_client_test_embedded");
  }
  else
  {
    $exe_mysql_client_test=
	  mtr_exe_exists("$glob_basedir/tests/mysql_client_test",
      mtr_exe_maybe_exists("$glob_basedir/tests/mysql_client_test",
			   "$glob_basedir/tests/release/mysql_client_test",
			 "$glob_basedir/tests/debug/mysql_client_test");
      }
			   "$glob_basedir/tests/debug/mysql_client_test",
			   "$glob_basedir/bin");
  }
}

@@ -2045,6 +2037,14 @@ 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");