diff options
author | unknown <sasha@mysql.sashanet.com> | 2000-12-13 10:32:54 -0700 |
---|---|---|
committer | unknown <sasha@mysql.sashanet.com> | 2000-12-13 10:32:54 -0700 |
commit | 855bddabf39ad5d0ac5d1dce694b38899972daf0 (patch) | |
tree | 87852ac9748e81168cda3a32f25f31e644f66001 /mysql-test/mysql-test-run | |
parent | 2d47dfa0ce320bb8d87158b7725e0557fd15909a (diff) | |
download | mariadb-git-855bddabf39ad5d0ac5d1dce694b38899972daf0.tar.gz |
install_test_db.sh fixes for distribution
mysql-test-run.sh fixes for distribution
Makefile.am Fixes for distribution
mysql-test/Makefile.am:
Fixes for distribution
mysql-test/mysql-test-run.sh:
fixes for distribution
mysql-test/install_test_db.sh:
fixes for distribution
Diffstat (limited to 'mysql-test/mysql-test-run')
-rwxr-xr-x | mysql-test/mysql-test-run | 624 |
1 files changed, 0 insertions, 624 deletions
diff --git a/mysql-test/mysql-test-run b/mysql-test/mysql-test-run deleted file mode 100755 index a3c868c5b58..00000000000 --- a/mysql-test/mysql-test-run +++ /dev/null @@ -1,624 +0,0 @@ -#! /bin/sh -# mysql-test-run - originally written by Matt Wagner <matt@mysql.com> -# modified by Sasha Pachev <sasha@mysql.com> - -#++ -# Access Definitions -#-- -DB=test -DBUSER=test -DBPASSWD= - -# Are we on source or binary distribution? - -if [ $0 = scripts/mysql-test-run ] ; -then - BINARY_DIST=1 - cd mysql-test -else - if [ -d mysql-test ] ; then - cd mysql-test - fi - - if [ -f ./mysql-test-run ] && [ -d ../sql ] ; then - SOURCE_DIST=1 - else - echo "If you are using binary distribution, run me from install root as \ - scripts/mysql-test-run. On source distribution run me from source root as \ - mysql-test/mysql-test-run or from mysql-test as ./mysql-test-run" - exit 1 - fi - -fi - - - -#++ -# Misc. Definitions -#-- - -#BASEDIR is always one above mysql-test directory -CWD=`pwd` -cd .. -BASEDIR=`pwd` -cd $CWD -MYSQL_TEST_DIR=$BASEDIR/mysql-test -STD_DATA=$MYSQL_TEST_DIR/std_data - -TESTDIR="$MYSQL_TEST_DIR/t/" -TESTSUFFIX=test -TOT_PASS=0 -TOT_FAIL=0 -TOT_TEST=0 -USERT=0 -SYST=0 -REALT=0 -MY_TMP_DIR=$MYSQL_TEST_DIR/var/tmp -TIMEFILE="$MYSQL_TEST_DIR/var/tmp/mysqltest-time" -DASHBLANK="---- ---- -------" -MYSQLD_SRC_DIRS="strings mysys include extra regex isam merge myisam \ - myisammrg heap sql" -GCOV_MSG=/tmp/mysqld-gcov.out #gcov output -GCOV_ERR=/tmp/mysqld-gcov.err - -MASTER_RUNNING=0 -SLAVE_RUNNING=0 - -[ -d $MY_TMP_DIR ] || mkdir -p $MY_TMP_DIR - -[ -z $COLUMNS ] && COLUMNS=80 -E=`expr $COLUMNS - 8` -C=0 - -while [ $C != $E ] -do - DASH72="${DASH72}-" - C=`expr $C + 1` -done - -#++ -# mysqld Environment Parameters -#-- -MYRUN_DIR=var/run -MASTER_MYPORT=9306 -MASTER_MYDDIR="$MYSQL_TEST_DIR/var/lib" -MASTER_MYSOCK="$MYSQL_TEST_DIR/var/tmp/mysql.sock" -MASTER_MYPID="$MYSQL_TEST_DIR/var/run/mysqld.pid" -MASTER_MYLOG="$MYSQL_TEST_DIR/var/log/mysqld.log" -MASTER_MYERR="$MYSQL_TEST_DIR/var/log/mysqld.err" - - -SLAVE_MYPORT=9307 -SLAVE_MYDDIR="$MYSQL_TEST_DIR/var/slave-data" -SLAVE_MYSOCK="$MYSQL_TEST_DIR/var/tmp/mysql-slave.sock" -SLAVE_MYPID="$MYSQL_TEST_DIR/var/run/mysqld-slave.pid" -SLAVE_MYLOG="$MYSQL_TEST_DIR/var/log/mysqld-slave.log" -SLAVE_MYERR="$MYSQL_TEST_DIR/var/log/mysqld-slave.err" - -if [ x$SOURCE_DIST = x1 ] ; then - MY_BASEDIR=$MYSQL_TEST_DIR -else - MY_BASEDIR=$BASEDIR -fi - -#++ -# Program Definitions -#-- -BASENAME=`which basename | head -1` -CAT=/bin/cat -CUT=/usr/bin/cut -ECHO=/bin/echo -EXPR=`which expr | head -1` -FIND=/usr/bin/find -GCOV=`which gcov | head -1` -PRINTF=/usr/bin/printf -RM=/bin/rm -TIME=/usr/bin/time -TR=/usr/bin/tr -XARGS=`which xargs | head -1` - -# on source dist, we pick up freshly build executables -# on binary, use what is installed -if [ x$SOURCE_DIST = x1 ] ; then - MYSQLD="$BASEDIR/sql/mysqld" - MYSQL_TEST="$BASEDIR/client/mysqltest" - MYSQLADMIN="$BASEDIR/client/mysqladmin" - INSTALL_DB="./install_test_db" -else - MYSQLD="$BASEDIR/bin/mysqld" - MYSQL_TEST="$BASEDIR/bin/mysqltest" - MYSQLADMIN="$BASEDIR/bin/mysqladmin" - INSTALL_DB="../scripts/install_test_db -bin" -fi - - -SLAVE_MYSQLD=$MYSQLD #this will be changed later if we are doing gcov - - -MYSQL_TEST="$MYSQL_TEST --no-defaults --socket=$MASTER_MYSOCK --database=$DB --user=$DBUSER --password=$DBPASSWD --silent" -GDB_MASTER_INIT=/tmp/gdbinit.master -GDB_SLAVE_INIT=/tmp/gdbinit.slave - -if [ "$1" = "-force" ] ; then - FORCE=1 - shift 1 -fi - - -if [ "$1" = "-record" ] ; then - RECORD=1 - shift 1 -fi - - -if [ "$1" = "-gcov" ]; -then - if [ x$BINARY_DIST = x1 ] ; then - echo "Cannot do coverage test without the source - please us source dist" - exit 1 - fi - DO_GCOV=1 - shift 1 -fi - -if [ "$1" = "-gdb" ]; -then -# if the user really wanted to run binary dist in a debugger, he can -# but we should warn him - if [ x$BINARY_DIST = x1 ] ; then - echo "Note: you will get more meaningful output on a source distribution \ - compiled with debugging option when running tests with -gdb option" - fi - DO_GDB=1 - shift 1 -fi - - -#++ -# Terminal Modifications -#-- -MOVE_TO_COL="$ECHO -n [300C[20D" -SETCOLOR_SUCCESS="$ECHO -n [1;32m" -SETCOLOR_FAILURE="$ECHO -n [1;31m" -SETCOLOR_WARNING="$ECHO -n [1;33m" -SETCOLOR_NORMAL="$ECHO -n [0;39m" - -#++ -# Function Definitions -#-- -echo_ok() { - $MOVE_TO_COL && $SETCOLOR_NORMAL - $ECHO -n "[ " - $SETCOLOR_SUCCESS - $ECHO -n "ok" - $SETCOLOR_NORMAL - $ECHO " ]" - return 0 -} - -echo_notok() { - $MOVE_TO_COL && $SETCOLOR_NORMAL - $ECHO -n "[ " - $SETCOLOR_FAILURE - $ECHO -n "not ok" - $SETCOLOR_NORMAL - $ECHO " ]" - return 0 -} - -echo_pass () { - $MOVE_TO_COL && $SETCOLOR_NORMAL - $ECHO -n "[ " - $SETCOLOR_SUCCESS - $ECHO -n "pass" - $SETCOLOR_NORMAL - $ECHO " ]" - return 0 -} - -prompt_user () -{ - echo $1 - read unused -} - -echo_fail () { - $MOVE_TO_COL && $SETCOLOR_NORMAL - $ECHO -n "[ " - $SETCOLOR_FAILURE - $ECHO -n "fail" - $SETCOLOR_NORMAL - $ECHO " ]" - return 0 -} - -error () { - - $SETCOLOR_FAILURE - $ECHO -n "Error: " && $SETCOLOR_NORMAL && $ECHO $1 - $SETCOLOR_NORMAL - exit 1 -} - -pass_inc () { - TOT_PASS=`$EXPR $TOT_PASS + 1` -} - -fail_inc () { - TOT_FAIL=`$EXPR $TOT_FAIL + 1` -} - -total_inc () { - TOT_TEST=`$EXPR $TOT_TEST + 1` -} - -report_stats () { - if [ $TOT_FAIL = 0 ]; then - $ECHO "All tests successful." - else - $ECHO -n "Failed ${TOT_FAIL}/${TOT_TEST} tests, " - - xten=`$EXPR $TOT_PASS \* 10000` - raw=`$EXPR $xten / $TOT_TEST` - raw=`$PRINTF %.4d $raw` - whole=`$PRINTF %.2s $raw` - xwhole=`$EXPR $whole \* 100` - deci=`$EXPR $raw - $xwhole` - - $ECHO "${whole}.${deci}% successful." - fi -} - -mysql_install_db () { - $RM -rf $MASTER_MYDDIR $SLAVE_MYDDIR $SLAVE_MYLOG $MASTER_MYLOG \ - $SLAVE_MYERR $MASTER_MYERR - [ -d $MYRUN_DIR ] || mkdir -p $MYRUN_DIR - $INSTALL_DB - if [ $? != 0 ]; then - error "Could not install master test DBs" - exit 1 - fi - $INSTALL_DB -slave - if [ $? != 0 ]; then - error "Could not install slave test DBs" - exit 1 - fi - return 0 -} - -gcov_prepare () { - $FIND $BASEDIR -name \*.gcov \ - -or -name \*.da | $XARGS $RM -} - -gcov_collect () { - $ECHO "Collecting source coverage info..." - [ -f $GCOV_MSG ] && $RM $GCOV_MSG - [ -f $GCOV_ERR ] && $RM $GCOV_ERR - for d in $MYSQLD_SRC_DIRS; do - cd $BASEDIR/$d - for f in *.h *.cc *.c; do - $GCOV $f 2>>$GCOV_ERR >>$GCOV_MSG - done - cd $MYSQL_TEST_DIR - done - - $ECHO "gcov info in $GCOV_MSG, errors in $GCOV_ERR" -} - -start_master() -{ - [ x$MASTER_RUNNING = 1 ] && return - cd $BASEDIR # for gcov - #start master - master_args="--no-defaults --log-bin=master-bin \ - --server-id=1 \ - --basedir=$MY_BASEDIR \ - --port=$MASTER_MYPORT \ - --exit-info=256 \ - --datadir=$MASTER_MYDDIR \ - --pid-file=$MASTER_MYPID \ - --socket=$MASTER_MYSOCK \ - --log=$MASTER_MYLOG \ - --language=english $EXTRA_MASTER_OPT" - if [ x$DO_GDB = x1 ] - then - echo "set args $master_args" > $GDB_MASTER_INIT - xterm -title "Master" -e gdb -x $GDB_MASTER_INIT $MYSQLD & - prompt_user "Hit enter to continue after you've started the master" - else - $MYSQLD $master_args >> $MASTER_MYERR 2>&1 & - fi - MASTER_RUNNING=1 -} - -start_slave() -{ - [ x$SKIP_SLAVE = x1 ] && return - [ x$SLAVE_RUNNING = 1 ] && return - if [ -z $SLAVE_MASTER_INFO ] ; then - master_info="--master-user=root \ - --master-connect-retry=1 \ - --master-host=127.0.0.1 \ - --master-port=$MASTER_MYPORT \ - --server-id=2" - else - master_info=$SLAVE_MASTER_INFO - fi - - slave_args="--no-defaults $master_info \ - --exit-info=256 \ - --log-bin=slave-bin --log-slave-updates \ - --basedir=$MY_BASEDIR \ - --datadir=$SLAVE_MYDDIR \ - --pid-file=$SLAVE_MYPID \ - --port=$SLAVE_MYPORT \ - --socket=$SLAVE_MYSOCK \ - --log=$SLAVE_MYLOG \ - --language=english $EXTRA_SLAVE_OPT" - if [ x$DO_GDB = x1 ] - then - echo "set args $slave_args" > $GDB_SLAVE_INIT - xterm -title "Slave" -e gdb -x $GDB_SLAVE_INIT $SLAVE_MYSQLD & - prompt_user "Hit enter to continue after you've started the slave" - else - $SLAVE_MYSQLD $slave_args >> $SLAVE_MYERR 2>&1 & - fi - SLAVE_RUNNING=1 -} - -mysql_start () { - start_master - start_slave - cd $MYSQL_TEST_DIR - return 1 -} - -stop_slave () -{ - if [ x$SLAVE_RUNNING = x1 ] - then - $MYSQLADMIN --no-defaults --socket=$SLAVE_MYSOCK -u root shutdown - if [ $? != 0 ] ; then # try harder! - echo "slave not cooperating with mysqladmin, will try manual kill" - kill `cat $SLAVE_MYPID` - sleep 2 - if [ -f $SLAVE_MYPID ] ; then - echo "slave refused to die, resorting to SIGKILL murder" - kill -9 `cat $SLAVE_MYPID` - rm -f $SLAVE_MYPID - else - echo "slave responded to SIGTERM " - fi - fi - SLAVE_RUNNING=0 - fi -} - -stop_master () -{ - if [ x$MASTER_RUNNING = x1 ] - then - $MYSQLADMIN --no-defaults --socket=$MASTER_MYSOCK -u root shutdown - if [ $? != 0 ] ; then # try harder! - echo "master not cooperating with mysqladmin, will try manual kill" - kill `cat $MASTER_MYPID` - sleep 2 - if [ -f $MASTER_MYPID ] ; then - echo "master refused to die, resorting to SIGKILL murder" - kill -9 `cat $MASTER_MYPID` - rm -f $MASTER_MYPID - else - echo "master responded to SIGTERM " - fi - fi - MASTER_RUNNING=0 - fi -} - -mysql_stop () -{ - stop_master - stop_slave - return 1 -} - -mysql_restart () { - - mysql_stop - mysql_start - - return 1 -} - -mysql_loadstd () { - - cp $STD_DATA/*.frm $STD_DATA/*.MRG $MASTER_MYDDIR/test - return 1 -} - -run_testcase () -{ - tf=$1 - tname=`$BASENAME $tf` - tname=`$ECHO $tname | $CUT -d . -f 1` - master_opt_file=$TESTDIR/$tname-master.opt - slave_opt_file=$TESTDIR/$tname-slave.opt - slave_master_info_file=$TESTDIR/$tname-slave-master-info.opt - SKIP_SLAVE=`$EXPR \( $tname : rpl \) = 0` - if [ x$RECORD = x1 ]; then - extra_flags="-r" - else - extra_flags="" - fi - - if [ -f $master_opt_file ] ; - then - EXTRA_MASTER_OPT=`cat $master_opt_file` - stop_master - start_master - else - if [ ! -z $EXTRA_MASTER_OPT ] || [ x$MASTER_RUNNING != x1 ] ; - then - EXTRA_MASTER_OPT="" - stop_master - start_master - fi - fi - do_slave_restart=0 - - if [ -f $slave_opt_file ] ; - then - EXTRA_SLAVE_OPT=`cat $slave_opt_file` - do_slave_restart=1 - else - if [ ! -z $EXTRA_SLAVE_OPT ] || [ x$SLAVE_RUNNING != x1 ] ; - then - EXTRA_SLAVE_OPT="" - do_slave_restart=1 - fi - fi - - if [ -f $slave_master_info_file ] ; then - SLAVE_MASTER_INFO=`cat $slave_master_info_file` - do_slave_restart=1 - else - if [ ! -z $SLAVE_MASTER_INFO ] || [ x$SLAVE_RUNNING != x1 ] ; - then - SLAVE_MASTER_INFO="" - do_slave_restart=1 - fi - fi - - if [ x$do_slave_restart = x1 ] ; then - stop_slave - start_slave - fi - - cd $MYSQL_TEST_DIR - - if [ -f $tf ] ; then - mytime=`$TIME -p $MYSQL_TEST -R r/$tname.result $extra_flags \ - < $tf 2> $TIMEFILE` - res=$? - - if [ $res != 1 ]; then - mytime=`$CAT $TIMEFILE | $TR '\n' '-'` - - USERT=`$ECHO $mytime | $CUT -d - -f 2 | $CUT -d ' ' -f 2` - SYST=`$ECHO $mytime | $CUT -d - -f 3 | $CUT -d ' ' -f 2` - REALT=`$ECHO $mytime | $CUT -d - -f 1 | $CUT -d ' ' -f 2` - else - USERT="...." - SYST="...." - REALT="...." - fi - - timestr="$USERT $SYST $REALT" - $SETCOLOR_NORMAL && $ECHO -n "$tname $timestr" - - [ $res != 1 ] && pass_inc && echo_pass - [ $res = 1 ] && fail_inc && echo_fail - - total_inc - - if [ $res != 0 ]; then - $ECHO "failed output" - $CAT $TIMEFILE - $ECHO - $ECHO - if [ x$FORCE != x1 ] ; then - $SETCOLOR_NORMAL - echo "Aborting, if you want to continue, re-run with -force" - mysql_stop - exit 1 - fi - - $SETCOLOR_NORMAL && $ECHO -n "Restarting mysqld $DASHBLANK" - mysql_restart - $SETCOLOR_SUCCESS && echo_ok - $SETCOLOR_NORMAL && $ECHO -n "Resuming Tests $DASHBLANK" - $SETCOLOR_SUCCESS && echo_ok - $ECHO - fi - fi - -} - - -[ "$DO_GCOV" -a ! -x "$GCOV" ] && error "No gcov found" - -[ "$DO_GCOV" ] && gcov_prepare - - -mysql_install_db - -#do not automagically start deamons if we are in gdb or running only one test -#case -if [ -z $DO_GDB ] && [ -z $1 ] -then - $SETCOLOR_NORMAL && $ECHO -n "Starting mysqld for Testing" - mysql_start - res=$? - res=1 - [ $res != 1 ] && echo_notok && error "Starting mysqld" - [ $res = 1 ] && echo_ok -fi - -$SETCOLOR_NORMAL && $ECHO -n "Loading Standard Test Database" -mysql_loadstd -res=$? -[ x$res != x1 ] && echo_notok && error "Loading STD" -[ x$res = x1 ] && echo_ok - -$SETCOLOR_NORMAL && $ECHO -n "Starting Tests for MySQL $TESTVER Series" -$SETCOLOR_SUCCESS && echo_ok - -$ECHO -$ECHO " TEST USER SYSTEM ELAPSED RESULT" -$ECHO $DASH72 - -if [ -z $1 ] ; -then - if [ x$RECORD = x1 ]; then - echo "Will not run in record mode without a specific test case" - else - for tf in $TESTDIR/*.$TESTSUFFIX - do - run_testcase $tf - done - fi -else - tf=$TESTDIR/$1.$TESTSUFFIX - if [ -f $tf ] ; then - run_testcase $tf - else - echo "Test case $tf does not exist" - fi -fi - -$ECHO $DASH72 -$ECHO -$SETCOLOR_NORMAL && $ECHO -n "Ending Tests for MySQL $TESTVER Series" -$SETCOLOR_SUCCESS && echo_ok -$RM $TIMEFILE - -if [ -z $DO_GDB ] ; -then - $SETCOLOR_NORMAL && $ECHO -n "Shutdown mysqld" - mysql_stop - res=$? - res=1 - [ $res != 1 ] && echo_notok && error "Shutdown mysqld" - [ $res = 1 ] && echo_ok -fi - -$SETCOLOR_NORMAL - -$ECHO -report_stats -$ECHO - -[ "$DO_GCOV" ] && gcov_collect # collect coverage information - -exit 0 |