1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-11 15:22:09 +03:00
Files
mariadb/mysql-test/mysql-test-run
mwagner@evoq.home.mwagner.org 06641fd079 run.test mysql-test -> mysqltest
run-all-tests	mysql-test -> mysqltest
README  	mysql-test -> mysqltest
Makefile.am	Retargetted mysql-test to mysqltest.
.del-mysql-test.c	Delete: client/mysql-test.c
mysql-test-run	Added program definitions.
mysqltest.c	BitKeeper file /home/mwagner/work/bk/mysql/client/mysqltest.c
2000-10-10 03:42:07 -05:00

270 lines
4.7 KiB
Bash
Executable File

#! /bin/sh
#++
# Access Definitions
#--
DB=test
USER=test
PASSWD=
#++
# Misc. Definitions
#--
CWD=`pwd`
cd ..
BASEDIR=`pwd`
cd $CWD
MYBIN="$CWD/mybin"
TESTVER=3.23
TESTDIR="$CWD/t/$TESTVER"
TESTSUFFIX=test
TOT_PASS=0
TOT_FAIL=0
TOT_TEST=0
TIME_FORMAT='%U\t%S\t%E\t%P'
DASHBLANK="----\t----\t-------\t----"
[ -z $COLUMNS ] && COLUMNS=80
E=`expr $COLUMNS - 8`
C=0
while [ $C != $E ]
do
DASH72="${DASH72}-"
C=`expr $C + 1`
done
#++
# mysqld Environment Parameters
#--
MYPORT=9306
MYDDIR="$CWD/var/lib"
MYSOCK="$CWD/var/tmp/mysql.sock"
MYPID="$CWD/var/run/mysqld.pid"
MYLOG="$CWD/var/log/mysqld.log"
MYERR="$CWD/var/log/mysqld.err"
#++
# Program Definitions
#--
ECHO=/bin/echo
EXPR=/usr/bin/expr
PRINTF=/usr/bin/printf
TIME=/usr/bin/time
MYSQLD="$BASEDIR/sql/mysqld"
MYSQL_TEST="$BASEDIR/client/mysqltest"
MYSQLADMIN="$BASEDIR/client/mysqladmin"
MYSQL_TEST="$MYSQL_TEST --socket=$MYSOCK --database=$DB --user=$USER --password=$PASSWD --silent"
INSTALL_DB="$MYBIN/mysql-test_install_db"
#++
# Terminal Modifications
#--
MOVE_TO_COL="$ECHO -en \\033[300C\\033[20D"
SETCOLOR_SUCCESS="$ECHO -en \\033[1;32m"
SETCOLOR_FAILURE="$ECHO -en \\033[1;31m"
SETCOLOR_WARNING="$ECHO -en \\033[1;33m"
SETCOLOR_NORMAL="$ECHO -en \\033[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
}
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` # My God
raw=`$PRINTF %.4d $raw` # This is such a ...
whole=`$PRINTF %.2s $raw` # Narttu!!
xwhole=`$EXPR $whole \* 100` # Hynda!!!
deci=`$EXPR $raw - $xwhole` #
$ECHO "${whole}.${deci}% successful."
fi
}
mysql_install_db () {
`$INSTALL_DB`
if [ $? != 0 ]; then
error "Could not install tmp DBs"
exit 1
fi
return 0
}
mysql_start () {
`$MYSQLD --no-defaults \
--skip-networking \
--basedir=$CWD \
--datadir=$MYDDIR \
--pid-file=$MYPID \
--socket=$MYSOCK \
--log=$MYLOG \
--language=english >> $MYERR 2>&1 &`
return 1
}
mysql_stop () {
`$MYSQLADMIN --socket=$MYSOCK -u root shutdown`
return 1
}
mysql_restart () {
mysql_stop
res=$?
[ $res != 1 ] && echo_notok && error "Stopping mysqld"
mysql_start
res=$?
[ $res != 1 ] && echo_notok && error "Starting mysqld"
return 1
}
mysql_loadstd () {
sleep 2
return 1
}
mysql_install_db
$SETCOLOR_NORMAL && $ECHO -n "Starting mysqld for Testing"
mysql_start
res=$?
res=1
[ $res != 1 ] && echo_notok && error "Starting mysqld"
[ $res = 1 ] && echo_ok
$SETCOLOR_NORMAL && $ECHO -n "Loading Standard Test Database"
mysql_loadstd
res=$?
[ $res != 1 ] && echo_notok && error "Loading STD"
[ $res = 1 ] && echo_ok
$SETCOLOR_NORMAL && $ECHO -n "Starting Tests for MySQL $TESTVER Series"
$SETCOLOR_SUCCESS && echo_ok
$ECHO
$ECHO -e " TEST\t\t\tUSER\tSYSTEM\tELAPSED\t%CPU\t RESULT"
$ECHO $DASH72
for tf in $TESTDIR/*.$TESTSUFFIX
do
if [ -f $tf ] ; then
mytime=`$TIME -f $TIME_FORMAT $MYSQL_TEST < $tf 2>&1`
res=$?
tf=`basename $tf`
[ $res = 1 ] && mytime=`$ECHO -ne $mytime | cut -b 39-`
$SETCOLOR_NORMAL && $ECHO -ne "$tf\t$mytime"
[ $res = 1 ] && fail_inc && echo_fail
[ $res != 1 ] && pass_inc && echo_pass
total_inc
if [ $res != 0 ]; then
$ECHO
$SETCOLOR_NORMAL && $ECHO -ne "Restarting mysqld\t$DASHBLANK"
mysql_restart
$SETCOLOR_SUCCESS && echo_ok
$SETCOLOR_NORMAL && $ECHO -ne "Resuming Tests\t\t$DASHBLANK"
$SETCOLOR_SUCCESS && echo_ok
$ECHO
fi
fi
done
$ECHO $DASH72
$ECHO
$SETCOLOR_NORMAL && $ECHO -n "Ending Tests for MySQL $TESTVER Series"
$SETCOLOR_SUCCESS && echo_ok
$SETCOLOR_NORMAL && $ECHO -n "Shutdown mysqld"
mysql_stop
res=$?
res=1
[ $res != 1 ] && echo_notok && error "Shutdown mysqld"
[ $res = 1 ] && echo_ok
$SETCOLOR_NORMAL
$ECHO
report_stats
$ECHO
exit 0