summaryrefslogtreecommitdiff
path: root/mysql-test/mysql-test-run-shell.sh
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/mysql-test-run-shell.sh')
-rw-r--r--mysql-test/mysql-test-run-shell.sh519
1 files changed, 413 insertions, 106 deletions
diff --git a/mysql-test/mysql-test-run-shell.sh b/mysql-test/mysql-test-run-shell.sh
index 92c64260112..f2b92f6aab0 100644
--- a/mysql-test/mysql-test-run-shell.sh
+++ b/mysql-test/mysql-test-run-shell.sh
@@ -19,6 +19,8 @@ TZ=$MY_TZ; export TZ # for UNIX_TIMESTAMP tests to work
LOCAL_SOCKET=@MYSQL_UNIX_ADDR@
MYSQL_TCP_PORT=@MYSQL_TCP_PORT@
+umask 022
+
# For query_cache test
case `uname` in
SCO_SV | UnixWare | OpenUNIX )
@@ -110,6 +112,20 @@ wait_for_pid()
#$WAIT_PID pid $SLEEP_TIME_FOR_DELETE
}
+# Check that valgrind is installed
+find_valgrind()
+{
+ FIND_VALGRIND=`which valgrind` # this will print an error if not found
+ # Give good warning to the user and stop
+ if [ -z "$FIND_VALGRIND" ] ; then
+ $ECHO "You need to have the 'valgrind' program in your PATH to run mysql-test-run with option --valgrind. Valgrind's home page is http://valgrind.kde.org ."
+ exit 1
+ fi
+ # >=2.1.2 requires the --tool option, some versions write to stdout, some to stderr
+ valgrind --help 2>&1 | grep "\-\-tool" > /dev/null && FIND_VALGRIND="$FIND_VALGRIND --tool=memcheck"
+ FIND_VALGRIND="$FIND_VALGRIND --alignment=8 --leak-check=yes --num-callers=16 --suppressions=$MYSQL_TEST_DIR/valgrind.supp"
+}
+
# No paths below as we can't be sure where the program is!
SED=sed
@@ -166,19 +182,14 @@ if [ -d ./sql ] ; then
SOURCE_DIST=1
else
BINARY_DIST=1
-fi
-# ... one level for tar.gz, two levels for a RPM installation
-if [ -d ./bin ] ; then
- # this is not perfect: we have
- # /usr/share/mysql/ # mysql-test-run is here, so this is "$MYSQL_TEST_DIR"
- # /usr/bin/ # with MySQL client programs
- # so the existence of "/usr/share/bin/" would make this test fail.
- BASEDIR=`pwd`
-else
- cd ..
- BASEDIR=`pwd`
+ # ... one level for tar.gz, two levels for a RPM installation
+ if [ ! -f ./bin/mysql_upgrade ] ; then
+ # Has to be RPM installation
+ cd ..
+ fi
fi
+BASEDIR=`pwd`
cd $MYSQL_TEST_DIR
MYSQL_TEST_WINDIR=$MYSQL_TEST_DIR
@@ -194,14 +205,23 @@ TOT_SKIP=0
TOT_PASS=0
TOT_FAIL=0
TOT_TEST=0
+GOT_WARNINGS=0
USERT=0
SYST=0
REALT=0
FAST_START=""
MYSQL_TMP_DIR=$MYSQL_TEST_DIR/var/tmp
-SLAVE_LOAD_TMPDIR=../tmp #needs to be same length to test logging
+export MYSQL_TMP_DIR
+
+# Use a relative path for where the slave will find the dumps
+# generated by "LOAD DATA" on the master. The path is relative
+# since it must have fixed length to test logging
+# i.e otherwise the output from "SHOW MASTER STATUS" will vary
+# with the strlen() of MYSQL_TEST_DIR
+SLAVE_LOAD_TMPDIR=../tmp
+
RES_SPACE=" "
-MYSQLD_SRC_DIRS="strings mysys include extra regex isam merge myisam \
+MYSQLD_SRC_DIRS="strings mysys include extra regex myisam \
myisammrg heap sql"
MY_LOG_DIR="$MYSQL_TEST_DIR/var/log"
#
@@ -211,6 +231,13 @@ LD_LIBRARY_PATH="$BASEDIR/lib:$BASEDIR/libmysql/.libs:$BASEDIR/zlib/.libs:$LD_LI
DYLD_LIBRARY_PATH="$BASEDIR/lib:$BASEDIR/libmysql/.libs:$BASEDIR/zlib/.libs:$DYLD_LIBRARY_PATH"
export LD_LIBRARY_PATH DYLD_LIBRARY_PATH
+#
+# Allow anyone in the group to see the generated database files
+#
+UMASK=0660
+UMASK_DIR=0770
+export UMASK UMASK_DIR
+
MASTER_RUNNING=0
MASTER1_RUNNING=0
MASTER_MYPORT=9306
@@ -251,9 +278,11 @@ FAILED_CASES=
EXTRA_MASTER_OPT=""
EXTRA_MYSQL_TEST_OPT=""
+EXTRA_MYSQLCHECK_OPT=""
EXTRA_MYSQLDUMP_OPT=""
+EXTRA_MYSQLSHOW_OPT=""
EXTRA_MYSQLBINLOG_OPT=""
-USE_RUNNING_SERVER=""
+USE_RUNNING_SERVER=0
USE_NDBCLUSTER=@USE_NDBCLUSTER@
USE_NDBCLUSTER_ONLY=0
USE_RUNNING_NDBCLUSTER=""
@@ -283,6 +312,17 @@ NDB_MGM_EXTRA_OPTS=
NDB_MGMD_EXTRA_OPTS=
NDBD_EXTRA_OPTS=
+DO_STRESS=""
+STRESS_SUITE="main"
+STRESS_MODE="random"
+STRESS_THREADS=5
+STRESS_TEST_COUNT=""
+STRESS_LOOP_COUNT=""
+STRESS_TEST_DURATION=""
+STRESS_INIT_FILE=""
+STRESS_TEST_FILE=""
+STRESS_TEST=""
+
$ECHO "Logging: $0 $*" # To ensure we see all arguments in the output, for the test analysis tool
while test $# -gt 0; do
@@ -290,13 +330,13 @@ while test $# -gt 0; do
--embedded-server)
USE_EMBEDDED_SERVER=1
USE_MANAGER=0 NO_SLAVE=1
- USE_RUNNING_SERVER=""
+ USE_RUNNING_SERVER=0
USE_NDBCLUSTER=""
TEST_MODE="$TEST_MODE embedded" ;;
--purify)
USE_PURIFY=1
USE_MANAGER=0
- USE_RUNNING_SERVER=""
+ USE_RUNNING_SERVER=0
TEST_MODE="$TEST_MODE purify" ;;
--user=*) DBUSER=`$ECHO "$1" | $SED -e "s;--user=;;"` ;;
--force) FORCE=1 ;;
@@ -307,8 +347,8 @@ while test $# -gt 0; do
MASTER_MYSQLD=`$ECHO "$1" | $SED -e "s;--master-binary=;;"` ;;
--slave-binary=*)
SLAVE_MYSQLD=`$ECHO "$1" | $SED -e "s;--slave-binary=;;"` ;;
- --local) USE_RUNNING_SERVER="" ;;
- --extern) USE_RUNNING_SERVER="1" ;;
+ --local) USE_RUNNING_SERVER=0 ;;
+ --extern) USE_RUNNING_SERVER=1 ;;
--with-ndbcluster)
USE_NDBCLUSTER="--ndbcluster" ;;
--with-ndbcluster-only)
@@ -336,20 +376,20 @@ while test $# -gt 0; do
--ndbcluster_port=*) NDBCLUSTER_PORT=`$ECHO "$1" | $SED -e "s;--ndbcluster_port=;;"` ;;
--with-openssl)
EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT \
- --ssl-ca=$BASEDIR/SSL/cacert.pem \
- --ssl-cert=$BASEDIR/SSL/server-cert.pem \
- --ssl-key=$BASEDIR/SSL/server-key.pem"
+ --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem \
+ --ssl-cert=$MYSQL_TEST_DIR/std_data/server-cert.pem \
+ --ssl-key=$MYSQL_TEST_DIR/std_data/server-key.pem"
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT \
- --ssl-ca=$BASEDIR/SSL/cacert.pem \
- --ssl-cert=$BASEDIR/SSL/server-cert.pem \
- --ssl-key=$BASEDIR/SSL/server-key.pem"
- MYSQL_TEST_SSL_OPTS="--ssl-ca=$BASEDIR/SSL/cacert.pem \
- --ssl-cert=$BASEDIR/SSL/client-cert.pem \
- --ssl-key=$BASEDIR/SSL/client-key.pem" ;;
+ --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem \
+ --ssl-cert=$MYSQL_TEST_DIR/std_data/server-cert.pem \
+ --ssl-key=$MYSQL_TEST_DIR/std_data/server-key.pem"
+ MYSQL_TEST_SSL_OPTS="--ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem \
+ --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem \
+ --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem" ;;
--no-manager | --skip-manager) USE_MANAGER=0 ;;
--manager)
USE_MANAGER=1
- USE_RUNNING_SERVER=
+ USE_RUNNING_SERVER=0
;;
--start-and-exit)
START_AND_EXIT=1
@@ -378,6 +418,35 @@ while test $# -gt 0; do
DO_BENCH=1
NO_SLAVE=1
;;
+ --stress)
+ DO_STRESS=1
+ NO_SLAVE=1
+ SKIP_SLAVE=1
+ ;;
+ --stress-suite=*)
+ STRESS_SUITE=`$ECHO "$1" | $SED -e "s;--stress-suite=;;"`
+ ;;
+ --stress-threads=*)
+ STRESS_THREADS=`$ECHO "$1" | $SED -e "s;--stress-threads=;;"`
+ ;;
+ --stress-test-file=*)
+ STRESS_TEST_FILE=`$ECHO "$1" | $SED -e "s;--stress-test-file=;;"`
+ ;;
+ --stress-init-file=*)
+ STRESS_INIT_FILE=`$ECHO "$1" | $SED -e "s;--stress-init-file=;;"`
+ ;;
+ --stress-mode=*)
+ STRESS_MODE=`$ECHO "$1" | $SED -e "s;--stress-mode=;;"`
+ ;;
+ --stress-loop-count=*)
+ STRESS_LOOP_COUNT=`$ECHO "$1" | $SED -e "s;--stress-loop-count=;;"`
+ ;;
+ --stress-test-count=*)
+ STRESS_TEST_COUNT=`$ECHO "$1" | $SED -e "s;--stress-test-count=;;"`
+ ;;
+ --stress-test-duration=*)
+ STRESS_TEST_DURATION=`$ECHO "$1" | $SED -e "s;--stress-test-duration=;;"`
+ ;;
--big*) # Actually --big-test
EXTRA_MYSQL_TEST_OPT="$EXTRA_MYSQL_TEST_OPT $1" ;;
--compress)
@@ -418,7 +487,7 @@ while test $# -gt 0; do
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --gdb"
# This needs to be checked properly
# USE_MANAGER=1
- USE_RUNNING_SERVER=""
+ USE_RUNNING_SERVER=0
;;
--client-gdb )
if [ x$BINARY_DIST = x1 ] ; then
@@ -431,7 +500,7 @@ while test $# -gt 0; do
--manual-gdb )
DO_GDB=1
MANUAL_GDB=1
- USE_RUNNING_SERVER=""
+ USE_RUNNING_SERVER=0
EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --gdb"
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --gdb"
;;
@@ -440,25 +509,18 @@ while test $# -gt 0; do
$ECHO "Note: you will get more meaningful output on a source distribution compiled with debugging option when running tests with --ddd option"
fi
DO_DDD=1
- USE_RUNNING_SERVER=""
+ USE_RUNNING_SERVER=0
EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --gdb"
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --gdb"
;;
--valgrind | --valgrind-all)
- VALGRIND=`which valgrind` # this will print an error if not found
- # Give good warning to the user and stop
- if [ -z "$VALGRIND" ] ; then
- $ECHO "You need to have the 'valgrind' program in your PATH to run mysql-test-run with option --valgrind. Valgrind's home page is http://valgrind.kde.org ."
- exit 1
- fi
- # >=2.1.2 requires the --tool option, some versions write to stdout, some to stderr
- valgrind --help 2>&1 | grep "\-\-tool" > /dev/null && VALGRIND="$VALGRIND --tool=memcheck"
- VALGRIND="$VALGRIND --alignment=8 --leak-check=yes --num-callers=16"
+ find_valgrind;
+ VALGRIND=$FIND_VALGRIND
EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --skip-safemalloc --skip-bdb"
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --skip-safemalloc --skip-bdb"
SLEEP_TIME_AFTER_RESTART=10
SLEEP_TIME_FOR_DELETE=60
- USE_RUNNING_SERVER=""
+ USE_RUNNING_SERVER=0
if test "$1" = "--valgrind-all"
then
VALGRIND="$VALGRIND -v --show-reachable=yes"
@@ -468,6 +530,14 @@ while test $# -gt 0; do
TMP=`$ECHO "$1" | $SED -e "s;--valgrind-options=;;"`
VALGRIND="$VALGRIND $TMP"
;;
+ --valgrind-mysqltest | --valgrind-mysqltest-all)
+ find_valgrind;
+ VALGRIND_MYSQLTEST=$FIND_VALGRIND
+ if test "$1" = "--valgrind-mysqltest-all"
+ then
+ VALGRIND_MYSQLTEST="$VALGRIND_MYSQLTEST -v --show-reachable=yes"
+ fi
+ ;;
--skip-ndbcluster | --skip-ndb)
USE_NDBCLUSTER=""
EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --skip-ndbcluster"
@@ -481,14 +551,18 @@ while test $# -gt 0; do
STRACE_CLIENT=1
;;
--debug)
- EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT \
+ EXTRA_MASTER_MYSQLD_TRACE=" \
--debug=d:t:i:A,$MYSQL_TEST_DIR/var/log/master.trace"
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT \
--debug=d:t:i:A,$MYSQL_TEST_DIR/var/log/slave.trace"
EXTRA_MYSQL_TEST_OPT="$EXTRA_MYSQL_TEST_OPT \
--debug=d:t:A,$MYSQL_TEST_DIR/var/log/mysqltest.trace"
+ EXTRA_MYSQLCHECK_OPT="$EXTRA_MYSQLCHECK_OPT \
+ --debug=d:t:A,$MYSQL_TEST_DIR/var/log/mysqlcheck.trace"
EXTRA_MYSQLDUMP_OPT="$EXTRA_MYSQLDUMP_OPT \
--debug=d:t:A,$MYSQL_TEST_DIR/var/log/mysqldump.trace"
+ EXTRA_MYSQLSHOW_OPT="$EXTRA_MYSQLSHOW_OPT \
+ --debug=d:t:A,$MYSQL_TEST_DIR/var/log/mysqlshow.trace"
EXTRA_MYSQLBINLOG_OPT="$EXTRA_MYSQLBINLOG_OPT \
--debug=d:t:A,$MYSQL_TEST_DIR/var/log/mysqlbinlog.trace"
EXTRA_MYSQL_CLIENT_TEST_OPT="--debug=d:t:A,$MYSQL_TEST_DIR/var/log/mysql_client_test.trace"
@@ -496,6 +570,9 @@ while test $# -gt 0; do
--fast)
FAST_START=1
;;
+ --use-old-data)
+ USE_OLD_DATA=1
+ ;;
--comment=*)
TMP=`$ECHO "$1" | $SED -e "s;--comment=;;"`
echo
@@ -540,10 +617,9 @@ SLAVE_MYERR="$MYSQL_TEST_DIR/var/log/slave.err"
CURRENT_TEST="$MYSQL_TEST_DIR/var/log/current_test"
SMALL_SERVER="--key_buffer_size=1M --sort_buffer=256K --max_heap_table_size=1M"
-export MASTER_MYPORT MASTER_MYPORT1 SLAVE_MYPORT MYSQL_TCP_PORT MASTER_MYSOCK MASTER_MYSOCK1
+export MASTER_MYPORT SLAVE_MYPORT MYSQL_TCP_PORT MASTER_MYSOCK MASTER_MYSOCK1
-NDBCLUSTER_BASE_PORT=`expr $NDBCLUSTER_PORT + 2`
-NDBCLUSTER_OPTS="--port=$NDBCLUSTER_PORT --port-base=$NDBCLUSTER_BASE_PORT --data-dir=$MYSQL_TEST_DIR/var --ndb_mgm-extra-opts=$NDB_MGM_EXTRA_OPTS --ndb_mgmd-extra-opts=$NDB_MGMD_EXTRA_OPTS --ndbd-extra-opts=$NDBD_EXTRA_OPTS"
+NDBCLUSTER_OPTS="--port=$NDBCLUSTER_PORT --data-dir=$MYSQL_TEST_DIR/var --ndb_mgm-extra-opts=$NDB_MGM_EXTRA_OPTS --ndb_mgmd-extra-opts=$NDB_MGMD_EXTRA_OPTS --ndbd-extra-opts=$NDBD_EXTRA_OPTS"
NDB_BACKUP_DIR=$MYSQL_TEST_DIR/var/ndbcluster-$NDBCLUSTER_PORT
NDB_TOOLS_OUTPUT=$MYSQL_TEST_DIR/var/log/ndb_tools.log
@@ -563,6 +639,11 @@ fi
[ -d $MYSQL_TEST_DIR/var/run ] || mkdir $MYSQL_TEST_DIR/var/run
[ -d $MYSQL_TEST_DIR/var/log ] || mkdir $MYSQL_TEST_DIR/var/log
+# Use 'test', not '[' as the shell builtin might not have '-L
+if test ! -L "$MYSQL_TEST_DIR/var/std_data_ln" ; then
+ ln -s $MYSQL_TEST_DIR/std_data/ $MYSQL_TEST_DIR/var/std_data_ln
+fi
+
if test ${COLUMNS:-0} -lt 80 ; then COLUMNS=80 ; fi
E=`$EXPR $COLUMNS - 8`
DASH72=`$ECHO '-------------------------------------------------------'|$CUT -c 1-$E`
@@ -572,7 +653,7 @@ DASH72=`$ECHO '-------------------------------------------------------'|$CUT -c
if [ x$SOURCE_DIST = x1 ] ; then
if [ "x$USE_EMBEDDED_SERVER" = "x1" ] ; then
if [ -f "$BASEDIR/libmysqld/examples/mysqltest_embedded" ] ; then
- MYSQL_TEST="$VALGRIND $BASEDIR/libmysqld/examples/mysqltest_embedded"
+ MYSQL_TEST="$BASEDIR/libmysqld/examples/mysqltest_embedded"
else
echo "Fatal error: Cannot find embedded server 'mysqltest_embedded'" 1>&2
exit 1
@@ -592,6 +673,11 @@ if [ x$SOURCE_DIST = x1 ] ; then
fi
MYSQL_CLIENT_TEST="$BASEDIR/tests/mysql_client_test"
fi
+ if [ -f "$BASEDIR/client/.libs/mysqlcheck" ] ; then
+ MYSQL_CHECK="$BASEDIR/client/.libs/mysqlcheck"
+ else
+ MYSQL_CHECK="$BASEDIR/client/mysqlcheck"
+ fi
if [ -f "$BASEDIR/client/.libs/mysqldump" ] ; then
MYSQL_DUMP="$BASEDIR/client/.libs/mysqldump"
else
@@ -602,6 +688,11 @@ if [ x$SOURCE_DIST = x1 ] ; then
else
MYSQL_IMPORT="$BASEDIR/client/mysqlimport"
fi
+ if [ -f "$BASEDIR/client/.libs/mysqlshow" ] ; then
+ MYSQL_SHOW="$BASEDIR/client/.libs/mysqlshow"
+ else
+ MYSQL_SHOW="$BASEDIR/client/mysqlshow"
+ fi
if [ -f "$BASEDIR/client/.libs/mysqlbinlog" ] ; then
MYSQL_BINLOG="$BASEDIR/client/.libs/mysqlbinlog"
else
@@ -615,9 +706,9 @@ if [ x$SOURCE_DIST = x1 ] ; then
MYSQLADMIN="$CLIENT_BINDIR/mysqladmin"
WAIT_PID="$BASEDIR/extra/mysql_waitpid"
MYSQL_MY_PRINT_DEFAULTS="$BASEDIR/extra/my_print_defaults"
- MYSQL_MANAGER_CLIENT="$CLIENT_BINDIR/mysqlmanagerc"
- MYSQL_MANAGER="$BASEDIR/tools/mysqlmanager"
- MYSQL_MANAGER_PWGEN="$CLIENT_BINDIR/mysqlmanager-pwgen"
+ MYSQL_MANAGER_CLIENT="$CLIENT_BINDIR/mysqltestmanagerc"
+ MYSQL_MANAGER="$BASEDIR/tools/mysqltestmanager"
+ MYSQL_MANAGER_PWGEN="$CLIENT_BINDIR/mysqltestmanager-pwgen"
MYSQL="$CLIENT_BINDIR/mysql"
LANGUAGE="$BASEDIR/sql/share/english/"
CHARSETSDIR="$BASEDIR/sql/share/charsets"
@@ -677,15 +768,17 @@ else
TESTS_BINDIR="$BASEDIR/bin"
fi
MYSQL_TEST="$CLIENT_BINDIR/mysqltest"
+ MYSQL_CHECK="$CLIENT_BINDIR/mysqlcheck"
MYSQL_DUMP="$CLIENT_BINDIR/mysqldump"
+ MYSQL_SHOW="$CLIENT_BINDIR/mysqlshow"
MYSQL_IMPORT="$CLIENT_BINDIR/mysqlimport"
MYSQL_BINLOG="$CLIENT_BINDIR/mysqlbinlog"
MYSQLADMIN="$CLIENT_BINDIR/mysqladmin"
WAIT_PID="$CLIENT_BINDIR/mysql_waitpid"
MYSQL_MY_PRINT_DEFAULTS="$CLIENT_BINDIR/my_print_defaults"
- MYSQL_MANAGER="$CLIENT_BINDIR/mysqlmanager"
- MYSQL_MANAGER_CLIENT="$CLIENT_BINDIR/mysqlmanagerc"
- MYSQL_MANAGER_PWGEN="$CLIENT_BINDIR/mysqlmanager-pwgen"
+ MYSQL_MANAGER="$CLIENT_BINDIR/mysqltestmanager"
+ MYSQL_MANAGER_CLIENT="$CLIENT_BINDIR/mysqltestmanagerc"
+ MYSQL_MANAGER_PWGEN="$CLIENT_BINDIR/mysqltestmanager-pwgen"
MYSQL="$CLIENT_BINDIR/mysql"
INSTALL_DB="./install_test_db --bin"
MYSQL_FIX_SYSTEM_TABLES="$CLIENT_BINDIR/mysql_fix_privilege_tables"
@@ -701,7 +794,7 @@ else
fi
if [ "x$USE_EMBEDDED_SERVER" = "x1" ] ; then
if [ -f "$CLIENT_BINDIR/mysqltest_embedded" ] ; then
- MYSQL_TEST="$VALGRIND $CLIENT_BINDIR/mysqltest_embedded"
+ MYSQL_TEST="$CLIENT_BINDIR/mysqltest_embedded"
else
echo "Fatal error: Cannot find embedded server 'mysqltest_embedded'" 1>&2
exit 1
@@ -729,11 +822,11 @@ fi
# If we should run all tests cases, we will use a local server for that
-if [ -z "$1" ]
+if [ -z "$1" -a -z "$DO_STRESS" ]
then
- USE_RUNNING_SERVER=""
+ USE_RUNNING_SERVER=0
fi
-if [ -n "$USE_RUNNING_SERVER" ]
+if [ $USE_RUNNING_SERVER -eq 1 ]
then
MASTER_MYSOCK=$LOCAL_SOCKET;
DBUSER=${DBUSER:-test}
@@ -758,12 +851,14 @@ fi
# Save path and name of mysqldump
MYSQL_DUMP_DIR="$MYSQL_DUMP"
export MYSQL_DUMP_DIR
+MYSQL_CHECK="$MYSQL_CHECK --no-defaults -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLCHECK_OPT"
MYSQL_DUMP="$MYSQL_DUMP --no-defaults -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT"
+MYSQL_SHOW="$MYSQL_SHOW -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLSHOW_OPT"
+MYSQL_BINLOG="$MYSQL_BINLOG --no-defaults --local-load=$MYSQL_TMP_DIR --character-sets-dir=$CHARSETSDIR $EXTRA_MYSQLBINLOG_OPT"
MYSQL_IMPORT="$MYSQL_IMPORT -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT"
-MYSQL_BINLOG="$MYSQL_BINLOG --no-defaults --local-load=$MYSQL_TMP_DIR $EXTRA_MYSQLBINLOG_OPT"
MYSQL_FIX_SYSTEM_TABLES="$MYSQL_FIX_SYSTEM_TABLES --no-defaults --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD --basedir=$BASEDIR --bindir=$CLIENT_BINDIR --verbose"
MYSQL="$MYSQL --no-defaults --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD"
-export MYSQL MYSQL_DUMP MYSQL_IMPORT MYSQL_BINLOG MYSQL_FIX_SYSTEM_TABLES
+export MYSQL MYSQL_CHECK MYSQL_DUMP MYSQL_SHOW MYSQL_BINLOG MYSQL_FIX_SYSTEM_TABLES MYSQL_IMPORT
export CLIENT_BINDIR MYSQL_CLIENT_TEST CHARSETSDIR MYSQL_MY_PRINT_DEFAULTS
export NDB_TOOLS_DIR
export NDB_MGM
@@ -781,7 +876,10 @@ if [ x$USE_TIMER = x1 ] ; then
fi
MYSQL_TEST_BIN=$MYSQL_TEST
MYSQL_TEST="$MYSQL_TEST $MYSQL_TEST_ARGS"
+
+# Export MYSQL_TEST variable for use from .test files
export MYSQL_TEST
+
GDB_CLIENT_INIT=$MYSQL_TMP_DIR/gdbinit.client
GDB_MASTER_INIT=$MYSQL_TMP_DIR/gdbinit.master
GDB_SLAVE_INIT=$MYSQL_TMP_DIR/gdbinit.slave
@@ -791,10 +889,13 @@ GPROF_DIR=$MYSQL_TMP_DIR/gprof
GPROF_MASTER=$GPROF_DIR/master.gprof
GPROF_SLAVE=$GPROF_DIR/slave.gprof
TIMEFILE="$MYSQL_TEST_DIR/var/log/mysqltest-time"
+MYSQLTEST_LOG="$MYSQL_TEST_DIR/var/log/mysqltest.log"
if [ -n "$DO_CLIENT_GDB" -o -n "$DO_GDB" ] ; then
XTERM=`which xterm`
fi
+export MYSQL MYSQL_CHECK MYSQL_DUMP MYSQL_SHOW MYSQL_BINLOG MYSQL_FIX_SYSTEM_TABLES CLIENT_BINDIR MASTER_MYSOCK
+
#++
# Function Definitions
#--
@@ -905,6 +1006,7 @@ report_current_test () {
fi
}
+
report_stats () {
if [ $TOT_FAIL = 0 ]; then
$ECHO "All $TOT_TEST tests were successful."
@@ -918,12 +1020,12 @@ report_stats () {
$ECHO "Failed ${TOT_FAIL}/${TOT_TEST} tests, ${whole}.${deci}% were successful."
$ECHO ""
$ECHO "The log files in $MY_LOG_DIR may give you some hint"
- $ECHO "of what when wrong."
+ $ECHO "of what went wrong."
$ECHO "If you want to report this error, please read first the documentation at"
$ECHO "http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html"
fi
- if test -z "$USE_RUNNING_SERVER"
+ if [ $USE_RUNNING_SERVER -eq 0 ]
then
# Report if there was any fatal warnings/errors in the log files
@@ -935,32 +1037,45 @@ report_stats () {
| $SED -e 's!Warning: Table:.* on rename!!g' \
> $MY_LOG_DIR/warnings.tmp
- found_error=0
# Find errors
- for i in "^Warning:" "^Error:" "^==.* at 0x"
+ for i in "^Warning:" "^Error:" "^==.* at 0x" "InnoDB: Warning"
do
if $GREP "$i" $MY_LOG_DIR/warnings.tmp >> $MY_LOG_DIR/warnings
then
- found_error=1
+ GOT_WARNINGS=1
fi
done
$RM -f $MY_LOG_DIR/warnings.tmp
- if [ $found_error = "1" ]
+ if [ $GOT_WARNINGS = "1" ]
then
echo "WARNING: Got errors/warnings while running tests. Please examine"
echo "$MY_LOG_DIR/warnings for details."
fi
+
+ fi # USE_RUNNING_SERVER
+
+ # Check valgrind errors from mysqltest
+ if [ ! -z "$VALGRIND_MYSQLTEST" ]
+ then
+ if $GREP "ERROR SUMMARY" $MYSQLTEST_LOG | $GREP -v "0 errors" > /dev/null
+ then
+ $ECHO "Valgrind detected errors!"
+ $GREP "ERROR SUMMARY" $MYSQLTEST_LOG | $GREP -v "0 errors"
+ $ECHO "See $MYSQLTEST_LOG"
+ fi
fi
}
mysql_install_db () {
$ECHO "Removing Stale Files"
- $RM -rf $MASTER_MYDDIR $MASTER_MYDDIR"1" $SLAVE_MYDDIR $MY_LOG_DIR/*
- $ECHO "Installing Master Databases"
- $INSTALL_DB
- if [ $? != 0 ]; then
+ if [ -z "$USE_OLD_DATA" ]; then
+ $RM -rf $MASTER_MYDDIR $MASTER_MYDDIR"1"
+ $ECHO "Installing Master Databases"
+ $INSTALL_DB
+ if [ $? != 0 ]; then
error "Could not install master test DBs"
- exit 1
+ exit 1
+ fi
fi
if [ ! -z "$USE_NDBCLUSTER" ]
then
@@ -972,6 +1087,7 @@ mysql_install_db () {
fi
fi
$ECHO "Installing Slave Databases"
+ $RM -rf $SLAVE_MYDDIR $MY_LOG_DIR/*
$INSTALL_DB -slave
if [ $? != 0 ]; then
error "Could not install slave test DBs"
@@ -1140,7 +1256,7 @@ start_ndbcluster()
else
NDBCLUSTER_EXTRA_OPTS="--small"
fi
- ./ndb/ndbcluster $NDBCLUSTER_OPTS $NDBCLUSTER_EXTRA_OPTS --initial || NDB_STATUS_OK=0
+ ./ndb/ndbcluster $NDBCLUSTER_OPTS --character-sets-dir=$CHARSETSDIR $NDBCLUSTER_EXTRA_OPTS --initial || NDB_STATUS_OK=0
if [ x$NDB_STATUS_OK != x1 ] ; then
if [ x$FORCE != x1 ] ; then
exit 1
@@ -1207,12 +1323,17 @@ start_master()
this_master_myport=$MASTER_MYPORT
NOT_FIRST_MASTER_EXTRA_OPTS=""
fi
- if [ -z "$DO_BENCH" ]
+ if [ -n "$EXTRA_MASTER_MYSQLD_TRACE" ]
+ then
+ CURR_MASTER_MYSQLD_TRACE="$EXTRA_MASTER_MYSQLD_TRACE$1"
+ fi
+ if [ -z "$DO_BENCH" -a -z "$DO_STRESS" ]
then
master_args="--no-defaults --log-bin=$MYSQL_TEST_DIR/var/log/master-bin$1 \
--server-id=$id \
--basedir=$MY_BASEDIR \
--port=$this_master_myport \
+ --port-open-timeout=380 \
--local-infile \
--exit-info=256 \
--core \
@@ -1225,17 +1346,19 @@ start_master()
--default-character-set=$CHARACTER_SET \
--tmpdir=$MYSQL_TMP_DIR \
--language=$LANGUAGE \
- --innodb_data_file_path=ibdata1:50M \
+ --innodb_data_file_path=ibdata1:128M:autoextend \
--open-files-limit=1024 \
+ --log-bin-trust-function-creators \
$MASTER_40_ARGS \
$SMALL_SERVER \
$EXTRA_MASTER_OPT $EXTRA_MASTER_MYSQLD_OPT \
- $NOT_FIRST_MASTER_EXTRA_OPTS"
+ $NOT_FIRST_MASTER_EXTRA_OPTS $CURR_MASTER_MYSQLD_TRACE"
else
master_args="--no-defaults --log-bin=$MYSQL_TEST_DIR/var/log/master-bin$1 \
--server-id=$id --rpl-recovery-rank=1 \
--basedir=$MY_BASEDIR --init-rpl-role=master \
--port=$this_master_myport \
+ --port-open-timeout=380 \
--local-infile \
--datadir=$MASTER_MYDDIR$1 \
--pid-file=$MASTER_MYPID$1 \
@@ -1246,7 +1369,8 @@ start_master()
$USE_NDBCLUSTER \
--tmpdir=$MYSQL_TMP_DIR \
--language=$LANGUAGE \
- --innodb_data_file_path=ibdata1:50M \
+ --innodb_data_file_path=ibdata1:128M:autoextend \
+ --log-bin-trust-function-creators \
$MASTER_40_ARGS \
$SMALL_SERVER \
$EXTRA_MASTER_OPT $EXTRA_MASTER_MYSQLD_OPT \
@@ -1367,6 +1491,7 @@ start_slave()
--datadir=$slave_datadir \
--pid-file=$slave_pid \
--port=$slave_port \
+ --port-open-timeout=380 \
--socket=$slave_sock \
--character-sets-dir=$CHARSETSDIR \
--default-character-set=$CHARACTER_SET \
@@ -1379,6 +1504,7 @@ start_slave()
--report-port=$slave_port \
--master-retry-count=10 \
-O slave_net_timeout=10 \
+ --log-bin-trust-function-creators \
$SMALL_SERVER \
$EXTRA_SLAVE_OPT $EXTRA_SLAVE_MYSQLD_OPT"
CUR_MYERR=$slave_err
@@ -1507,18 +1633,21 @@ stop_master ()
mysql_stop ()
{
- $ECHO "Ending Tests"
- $ECHO "Shutting-down MySQL daemon"
- $ECHO ""
- stop_master
- stop_master 1
- $ECHO "Master shutdown finished"
- stop_slave
- stop_slave 1
- stop_slave 2
- $ECHO "Slave shutdown finished"
- stop_ndbcluster
- return 1
+ if [ "$MASTER_RUNNING" = 1 ]
+ then
+ $ECHO "Ending Tests"
+ $ECHO "Shutting-down MySQL daemon"
+ $ECHO ""
+ stop_master
+ stop_master 1
+ $ECHO "Master shutdown finished"
+ stop_slave
+ stop_slave 1
+ stop_slave 2
+ $ECHO "Slave shutdown finished"
+ stop_ndbcluster
+ fi
+ return 1
}
mysql_restart ()
@@ -1546,13 +1675,7 @@ run_testcase ()
tsrcdir=$TESTDIR/$tname-src
result_file="r/$tname.result"
echo $tname > $CURRENT_TEST
- SKIP_SLAVE=`$EXPR \( $tname : rpl \) = 0`
- if [ -f "$TESTDIR/$tname.disabled" ]
- then
- comment=`$CAT $TESTDIR/$tname.disabled`;
- disable_test $tname "$comment"
- return
- fi
+ SKIP_SLAVE=`$EXPR \( $tname : rpl \) = 0 \& \( $tname : federated \) = 0`
NDBCLUSTER_TEST=`$EXPR \( $tname : '.*ndb.*' \) != 0`
if [ "x$USE_NDBCLUSTER_ONLY" = "x1" -a "x$NDBCLUSTER_TEST" != "x1" ] ; then
skip_test $tname
@@ -1587,6 +1710,22 @@ run_testcase ()
return
fi
+# if [ -f "$TESTDIR/$tname.disabled" ]
+# then
+# comment=`$CAT $TESTDIR/$tname.disabled`;
+# disable_test $tname "$comment"
+# return
+# fi
+ if [ -f "$TESTDIR/disabled.def" ] ; then
+ comment=`$GREP "^$tname *: *" $TESTDIR/disabled.def`;
+ if [ -n "$comment" ]
+ then
+ comment=`echo $comment | sed 's/^[^:]*: *//'`
+ disable_test $tname "$comment"
+ return
+ fi
+ fi
+
if [ "x$USE_EMBEDDED_SERVER" != "x1" ] ; then
# Stop all slave threads, so that we don't have useless reconnection
# attempts and error messages in case the slave and master servers restart.
@@ -1609,7 +1748,7 @@ run_testcase ()
done
fi
- if [ -z "$USE_RUNNING_SERVER" ] ;
+ if [ $USE_RUNNING_SERVER -eq 0 ] ;
then
if [ -f $master_opt_file ] ;
then
@@ -1636,7 +1775,7 @@ run_testcase ()
stop_master 1
report_current_test $tname
start_master
- if [ -n "$USE_NDBCLUSTER" -a -z "$DO_BENCH" ] ; then
+ if [ -n "$USE_NDBCLUSTER" -a -z "$DO_BENCH" -a -z "$DO_STRESS" ] ; then
start_master 1
fi
TZ=$MY_TZ; export TZ
@@ -1652,7 +1791,7 @@ run_testcase ()
stop_master 1
report_current_test $tname
start_master
- if [ -n "$USE_NDBCLUSTER" -a -z "$DO_BENCH" ] ; then
+ if [ -n "$USE_NDBCLUSTER" -a -z "$DO_BENCH" -a -z "$DO_STRESS" ] ; then
start_master 1
fi
else
@@ -1711,13 +1850,17 @@ run_testcase ()
$RM -f r/$tname.*reject
mysql_test_args="-R $result_file $EXTRA_MYSQL_TEST_OPT"
if [ -z "$DO_CLIENT_GDB" ] ; then
- `$MYSQL_TEST $mysql_test_args < $tf 2> $TIMEFILE`;
+ `$VALGRIND_MYSQLTEST $MYSQL_TEST $mysql_test_args < $tf 2> $TIMEFILE`;
else
do_gdb_test "$mysql_test_args" "$tf"
fi
res=$?
+ # Save the testcase log to mysqltest log file
+ echo "CURRENT_TEST: $tname" >> $MYSQLTEST_LOG
+ cat $TIMEFILE >> $MYSQLTEST_LOG
+
pname=`$ECHO "$tname "|$CUT -c 1-24`
RES="$pname"
@@ -1754,7 +1897,7 @@ run_testcase ()
if [ x$FORCE != x1 ] ; then
$ECHO "Aborting: $tname failed in $TEST_MODE mode. To continue, re-run with '--force'."
$ECHO
- if [ -z "$DO_GDB" ] && [ -z "$USE_RUNNING_SERVER" ] && \
+ if [ -z "$DO_GDB" ] && [ $USE_RUNNING_SERVER -eq 0 ] && \
[ -z "$DO_DDD" ] && [ -z "$USE_EMBEDDED_SERVER" ]
then
mysql_stop
@@ -1763,18 +1906,143 @@ run_testcase ()
exit 1
fi
FAILED_CASES="$FAILED_CASES $tname"
- if [ -z "$DO_GDB" ] && [ -z "$USE_RUNNING_SERVER" ] && \
+ if [ -z "$DO_GDB" ] && [ $USE_RUNNING_SERVER -eq 0 ] && \
[ -z "$DO_DDD" ] && [ -z "$USE_EMBEDDED_SERVER" ]
then
mysql_restart
fi
- $ECHO "Resuming Tests"
- $ECHO ""
fi
fi
fi
}
+run_stress_test()
+{
+
+ STRESS_BASEDIR="$MYSQL_TEST_DIR/var/stress"
+
+ #Clean-up old stress test basedir
+ if [ -d $STRESS_BASEDIR ] ; then
+ $RM -rf $STRESS_BASEDIR
+ fi
+ #Create stress test basedir
+ mkdir $STRESS_BASEDIR
+
+ if [ "$STRESS_SUITE" != "main" -a "$STRESS_SUITE" != "default" ] ; then
+ STRESS_SUITE_DIR="$MYSQL_TEST_DIR/suite/$STRESS_SUITE"
+ else
+ STRESS_SUITE_DIR="$MYSQL_TEST_DIR"
+ fi
+
+ if [ -d "$STRESS_SUITE_DIR" ] ; then
+ STRESS_SUITE_T_DIR="$STRESS_SUITE_DIR/t"
+ STRESS_SUITE_R_DIR="$STRESS_SUITE_DIR/r"
+ #FIXME: check that dirs above are exist
+ else
+ echo "Directory $STRESS_SUITE_DIR with test suite doesn't exists. Abort stress testing"
+ exit 1
+ fi
+
+ if [ -n "$STRESS_TEST" ] ; then
+ STRESS_TEST_FILE="$STRESS_BASEDIR/stress_tests.txt"
+ echo $STRESS_TEST > $STRESS_TEST_FILE
+ elif [ -n "$STRESS_TEST_FILE" ] ; then
+ STRESS_TEST_FILE="$STRESS_SUITE_DIR/$STRESS_TEST_FILE"
+ if [ ! -f "$STRESS_TEST_FILE" ] ; then
+ echo "Specified file $STRESS_TEST_FILE with list of tests does not exist"
+ echo "Please ensure that file exists and has proper permissions"
+ exit 1
+ fi
+ else
+ STRESS_TEST_FILE="$STRESS_SUITE_DIR/stress_tests.txt"
+ if [ ! -f "$STRESS_TEST_FILE" ] ; then
+ echo "Default file $STRESS_TEST_FILE with list of tests does not exist."
+ echo "Please use --stress-test-file option to specify custom one or you can"
+ echo "just specify name of test for testing as last argument in command line"
+ exit 1
+ fi
+ fi
+
+ if [ -n "$STRESS_INIT_FILE" ] ; then
+ STRESS_INIT_FILE="$STRESS_SUITE_DIR/$STRESS_INIT_FILE"
+ if [ ! -f "$STRESS_INIT_FILE" ] ; then
+ echo "Specified file $STRESS_INIT_FILE with list of tests doesn't exist."
+ echo "Please ensure that file exists and has proper permissions"
+ exit 1
+ fi
+ else
+ STRESS_INIT_FILE="$STRESS_SUITE_DIR/stress_init.txt"
+ #Check for default init file
+ if [ ! -f "$STRESS_INIT_FILE" ] ; then
+ STRESS_INIT_FILE=""
+ fi
+ fi
+
+ if [ "$STRESS_MODE" != "random" -a "$STRESS_MODE" != "seq" ] ; then
+ echo "You specified wrong mode '$STRESS_MODE' for stress test."
+ echo "Correct values are 'random' or 'seq'"
+ exit 1
+ fi
+
+ STRESS_TEST_ARGS="--server-socket=$MASTER_MYSOCK \
+ --server-user=$DBUSER \
+ --server-database=$DB \
+ --stress-suite-basedir=$MYSQL_TEST_DIR \
+ --suite=$STRESS_SUITE \
+ --stress-tests-file=$STRESS_TEST_FILE \
+ --stress-basedir=$STRESS_BASEDIR \
+ --server-logs-dir=$STRESS_BASEDIR \
+ --stress-mode=$STRESS_MODE \
+ --mysqltest=$CLIENT_BINDIR/mysqltest \
+ --threads=$STRESS_THREADS \
+ --verbose \
+ --cleanup \
+ --log-error-details \
+ --abort-on-error"
+
+ if [ -n "$STRESS_INIT_FILE" ] ; then
+ STRESS_TEST_ARGS="$STRESS_TEST_ARGS --stress-init-file=$STRESS_INIT_FILE"
+ fi
+
+ if [ -z "$STRESS_LOOP_COUNT" -a -z "$STRESS_TEST_COUNT" -a
+ -z "$STRESS_TEST_DURATION" ] ; then
+
+ #Limit stress testing with 20 loops in case when any limit parameter
+ #was specified
+ STRESS_TEST_COUNT=20
+ fi
+
+ if [ -n "$STRESS_LOOP_COUNT" ] ; then
+ STRESS_TEST_ARGS="$STRESS_TEST_ARGS --loop-count=$STRESS_LOOP_COUNT"
+ fi
+
+ if [ -n "$STRESS_TEST_COUNT" ] ; then
+ STRESS_TEST_ARGS="$STRESS_TEST_ARGS --test-count=$STRESS_TEST_COUNT"
+ fi
+
+ if [ -n "$STRESS_TEST_DURATION" ] ; then
+ STRESS_TEST_ARGS="$STRESS_TEST_ARGS --test-duration=$STRESS_TEST_DURATION"
+ fi
+
+ echo "Stress test related variables:"
+ echo "TESTS - $1"
+ echo "STRESS - $DO_STRESS"
+ echo "STRESS_SUITE - $STRESS_SUITE"
+ echo "STRESS_TEST_FILE - $STRESS_TEST_FILE"
+ echo "STRESS_INIT_FILE - $STRESS_INIT_FILE"
+ echo "STRESS_THREADS - $STRESS_THREADS"
+ echo "STRESS_MODE - $STRESS_MODE"
+ echo "STRESS_TEST_COUNT - $STRESS_TEST_COUNT"
+ echo "STRESS_LOOP_COUNT - $STRESS_LOOP_COUNT"
+ echo "STRESS_TEST_DURATION - $STRESS_TEST_DURATION"
+
+ #echo "$STRESS_TEST_ARGS";
+ #Run stress test
+ $MYSQL_TEST_DIR/mysql-stress-test.pl $STRESS_TEST_ARGS
+
+
+}
+
######################################################################
# Main script starts here
######################################################################
@@ -1784,7 +2052,7 @@ run_testcase ()
[ "$DO_GCOV" ] && gcov_prepare
[ "$DO_GPROF" ] && gprof_prepare
-if [ -z "$USE_RUNNING_SERVER" ]
+if [ $USE_RUNNING_SERVER -eq 0 ]
then
if [ -z "$FAST_START" ]
then
@@ -1819,17 +2087,25 @@ then
# Remove files that can cause problems
$RM -rf $MYSQL_TEST_DIR/var/ndbcluster
- $RM -f $MYSQL_TEST_DIR/var/run/* $MYSQL_TEST_DIR/var/tmp/*
+ $RM -rf $MYSQL_TEST_DIR/var/run/* $MYSQL_TEST_DIR/var/tmp/*
# Remove old berkeley db log files that can confuse the server
$RM -f $MASTER_MYDDIR/log.*
$RM -f $MASTER_MYDDIR"1"/log.*
+ # Remove old log and reject files
+ $RM -f r/*.reject r/*.progress r/*.log r/*.warnings
+
wait_for_master=$SLEEP_TIME_FOR_FIRST_MASTER
wait_for_slave=$SLEEP_TIME_FOR_FIRST_SLAVE
$ECHO "Installing Test Databases"
mysql_install_db
+ if [ -n "$1" -a `expr "X$*" : '.*ndb'` -eq 0 ]
+ then
+ USE_NDBCLUSTER=""
+ fi
+
start_manager
mysql_start
$ECHO "Loading Standard Test Databases"
@@ -1838,6 +2114,9 @@ fi
$ECHO "Starting Tests"
+# Some test cases need USE_RUNNING_SERVER
+export USE_RUNNING_SERVER
+
#
# This can probably be deleted
#
@@ -1875,6 +2154,32 @@ then
exit
fi
+#
+# Stress testing
+#
+if [ "$DO_STRESS" = 1 ]
+then
+
+ if [ -n "$1" ] ; then
+ STRESS_TEST="$1";
+ fi
+
+ if [ $USE_RUNNING_SERVER -eq 0 ] ; then
+ start_master
+ fi
+
+ run_stress_test
+
+ if [ $USE_RUNNING_SERVER -eq 0 ] ; then
+ mysql_stop
+ stop_manager
+ fi
+
+ exit
+
+fi
+
+
$ECHO
if [ x$USE_TIMER = x1 ] ; then
$ECHO "TEST RESULT TIME (ms)"
@@ -1910,7 +2215,7 @@ fi
$ECHO $DASH72
$ECHO
-if [ -z "$DO_GDB" ] && [ -z "$USE_RUNNING_SERVER" ] && [ -z "$DO_DDD" ]
+if [ -z "$DO_GDB" ] && [ $USE_RUNNING_SERVER -eq 0 ] && [ -z "$DO_DDD" ]
then
mysql_stop
fi
@@ -1925,6 +2230,8 @@ if [ $TOT_FAIL -ne 0 ]; then
$ECHO "mysql-test-run in $TEST_MODE mode: *** Failing the test(s):$FAILED_CASES"
$ECHO
exit 1
-else
- exit 0
fi
+if [ $GOT_WARNINGS -ne 0 ]; then
+ exit 1
+fi
+exit 0