Commit 96a78a63 authored by unknown's avatar unknown

Merge trift2.:/MySQL/M41/bug17194-4.1

into  trift2.:/MySQL/M41/clone-4.1

parents e3fd562c 25b72e97
...@@ -431,7 +431,7 @@ sub initial_setup () { ...@@ -431,7 +431,7 @@ sub initial_setup () {
$glob_hostname= mtr_short_hostname(); $glob_hostname= mtr_short_hostname();
# 'basedir' is always parent of "mysql-test" directory # 'basedir' is always above "mysql-test" directory ...
$glob_mysql_test_dir= cwd(); $glob_mysql_test_dir= cwd();
if ( $glob_cygwin_perl ) if ( $glob_cygwin_perl )
{ {
...@@ -442,8 +442,19 @@ sub initial_setup () { ...@@ -442,8 +442,19 @@ sub initial_setup () {
chomp($glob_mysql_test_dir); chomp($glob_mysql_test_dir);
chomp($glob_cygwin_shell); chomp($glob_cygwin_shell);
} }
# ... direct parent for "tar.gz" installations, ...
$glob_basedir= dirname($glob_mysql_test_dir); $glob_basedir= dirname($glob_mysql_test_dir);
# ... or one more level up, for RPM installations.
if ( ! -d "$glob_basedir/bin" )
{
$glob_basedir= dirname($glob_basedir);
}
# "mysql-bench" might be installed, but need not be.
$glob_mysql_bench_dir= "$glob_basedir/mysql-bench"; # FIXME make configurable $glob_mysql_bench_dir= "$glob_basedir/mysql-bench"; # FIXME make configurable
if ( ! -d "$glob_mysql_bench_dir" )
{
$glob_mysql_bench_dir= undef;
}
# needs to be same length to test logging (FIXME what???) # needs to be same length to test logging (FIXME what???)
$path_slave_load_tmpdir= "../../var/tmp"; $path_slave_load_tmpdir= "../../var/tmp";
...@@ -646,6 +657,13 @@ sub command_line_setup () { ...@@ -646,6 +657,13 @@ sub command_line_setup () {
$opt_vardir= "$glob_mysql_test_dir/$opt_vardir"; $opt_vardir= "$glob_mysql_test_dir/$opt_vardir";
} }
# Ensure a proper error message
mkpath("$opt_vardir");
unless ( -d $opt_vardir and -w $opt_vardir )
{
mtr_error("Writable 'var' directory is needed, use the '--vardir' option");
}
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
# If not set, set these to defaults # If not set, set these to defaults
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
...@@ -984,7 +1002,8 @@ sub executable_setup () { ...@@ -984,7 +1002,8 @@ sub executable_setup () {
else else
{ {
$exe_mysqld= mtr_exe_exists ("$glob_basedir/libexec/mysqld", $exe_mysqld= mtr_exe_exists ("$glob_basedir/libexec/mysqld",
"$glob_basedir/bin/mysqld"); "$glob_basedir/bin/mysqld",
"$glob_basedir/sbin/mysqld");
} }
if ( $glob_use_embedded_server ) if ( $glob_use_embedded_server )
......
...@@ -158,18 +158,29 @@ fi ...@@ -158,18 +158,29 @@ fi
# Misc. Definitions # Misc. Definitions
#-- #--
if [ -d ../sql ] ; then # BASEDIR is always above mysql-test directory ...
MYSQL_TEST_DIR=`pwd`
cd ..
if [ -d ./sql ] ; then
SOURCE_DIST=1 SOURCE_DIST=1
else else
BINARY_DIST=1 BINARY_DIST=1
fi fi
#BASEDIR is always one above mysql-test directory # ... one level for tar.gz, two levels for a RPM installation
CWD=`pwd` if [ -d ./bin ] ; then
cd .. # this is not perfect: we have
BASEDIR=`pwd` # /usr/share/mysql/ # mysql-test-run is here, so this is "$MYSQL_TEST_DIR"
cd $CWD # /usr/bin/ # with MySQL client programs
MYSQL_TEST_DIR=$BASEDIR/mysql-test # so the existence of "/usr/share/bin/" would make this test fail.
BASEDIR=`pwd`
else
cd ..
BASEDIR=`pwd`
fi
cd $MYSQL_TEST_DIR
MYSQL_TEST_WINDIR=$MYSQL_TEST_DIR MYSQL_TEST_WINDIR=$MYSQL_TEST_DIR
MYSQLTEST_VARDIR=$MYSQL_TEST_DIR/var MYSQLTEST_VARDIR=$MYSQL_TEST_DIR/var
export MYSQL_TEST_DIR MYSQL_TEST_WINDIR MYSQLTEST_VARDIR export MYSQL_TEST_DIR MYSQL_TEST_WINDIR MYSQLTEST_VARDIR
...@@ -648,8 +659,15 @@ else ...@@ -648,8 +659,15 @@ else
if test -x "$BASEDIR/libexec/mysqld" if test -x "$BASEDIR/libexec/mysqld"
then then
MYSQLD="$VALGRIND $BASEDIR/libexec/mysqld" MYSQLD="$VALGRIND $BASEDIR/libexec/mysqld"
else elif test -x "$BASEDIR/bin/mysqld"
then
MYSQLD="$VALGRIND $BASEDIR/bin/mysqld" MYSQLD="$VALGRIND $BASEDIR/bin/mysqld"
elif test -x "$BASEDIR/sbin/mysqld"
then
MYSQLD="$VALGRIND $BASEDIR/sbin/mysqld"
else
$ECHO "Fatal error: Cannot find program mysqld in $BASEDIR/{libexec,bin,sbin}" 1>&2
exit 1
fi fi
CLIENT_BINDIR="$BASEDIR/bin" CLIENT_BINDIR="$BASEDIR/bin"
if test -d "$BASEDIR/tests" if test -d "$BASEDIR/tests"
...@@ -1261,7 +1279,7 @@ start_master() ...@@ -1261,7 +1279,7 @@ start_master()
then then
$ECHO "set args $master_args" > $GDB_MASTER_INIT$1 $ECHO "set args $master_args" > $GDB_MASTER_INIT$1
$ECHO "To start gdb for the master , type in another window:" $ECHO "To start gdb for the master , type in another window:"
$ECHO "cd $CWD ; gdb -x $GDB_MASTER_INIT$1 $MASTER_MYSQLD" $ECHO "cd $MYSQL_TEST_DIR ; gdb -x $GDB_MASTER_INIT$1 $MASTER_MYSQLD"
wait_for_master=1500 wait_for_master=1500
else else
( $ECHO set args $master_args; ( $ECHO set args $master_args;
...@@ -1377,7 +1395,7 @@ start_slave() ...@@ -1377,7 +1395,7 @@ start_slave()
then then
$ECHO "set args $slave_args" > $GDB_SLAVE_INIT $ECHO "set args $slave_args" > $GDB_SLAVE_INIT
echo "To start gdb for the slave, type in another window:" echo "To start gdb for the slave, type in another window:"
echo "cd $CWD ; gdb -x $GDB_SLAVE_INIT $SLAVE_MYSQLD" echo "cd $MYSQL_TEST_DIR ; gdb -x $GDB_SLAVE_INIT $SLAVE_MYSQLD"
wait_for_slave=1500 wait_for_slave=1500
else else
( $ECHO set args $slave_args; ( $ECHO set args $slave_args;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment