📄 mysql-test-run-shell
字号:
;; --big*) # Actually --big-test EXTRA_MYSQL_TEST_OPT="$EXTRA_MYSQL_TEST_OPT $1" ;; --compress) EXTRA_MYSQL_TEST_OPT="$EXTRA_MYSQL_TEST_OPT $1" ;; --sleep=*) EXTRA_MYSQL_TEST_OPT="$EXTRA_MYSQL_TEST_OPT $1" SLEEP_TIME_AFTER_RESTART=`$ECHO "$1" | $SED -e "s;--sleep=;;"` ;; --ps-protocol) TEST_MODE="$TEST_MODE ps-protocol" EXTRA_MYSQL_TEST_OPT="$EXTRA_MYSQL_TEST_OPT $1" ;; --user-test=*) USER_TEST=`$ECHO "$1" | $SED -e "s;--user-test=;;"` ;; --mysqld=*) TMP=`$ECHO "$1" | $SED -e "s;--mysqld=;;"` EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT $TMP" EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT $TMP" ;; --gcov ) if [ x$BINARY_DIST = x1 ] ; then $ECHO "Cannot do coverage test without the source - please use source dist" exit 1 fi DO_GCOV=1 GCOV=`which gcov` ;; --gprof ) DO_GPROF=1 ;; --gdb ) START_WAIT_TIMEOUT=300 STOP_WAIT_TIMEOUT=300 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 EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --gdb" EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --gdb" # This needs to be checked properly # USE_MANAGER=1 USE_RUNNING_SERVER=0 ;; --client-gdb ) 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 --client-gdb option" fi DO_CLIENT_GDB=1 EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --gdb" EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --gdb" ;; --manual-gdb ) DO_GDB=1 MANUAL_GDB=1 USE_RUNNING_SERVER=0 EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --gdb" EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --gdb" ;; --ddd ) 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 --ddd option" fi DO_DDD=1 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) 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=0 if test "$1" = "--valgrind-all" then VALGRIND="$VALGRIND -v --show-reachable=yes" fi ;; --valgrind-options=*) 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" EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --skip-ndbcluster" ;; --skip-*) EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT $1" EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT $1" ;; --strace-client ) STRACE_CLIENT=1 ;; --debug) 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" ;; --fast) FAST_START=1 ;; --use-old-data) USE_OLD_DATA=1 ;; --comment=*) TMP=`$ECHO "$1" | $SED -e "s;--comment=;;"` echo echo '############################################' echo "# $TMP" echo '############################################' ;; -- ) shift; break ;; --* ) $ECHO "Unrecognized option: $1"; exit 1 ;; * ) break ;; esac shiftdoneif [ -z "$TEST_MODE" ] ; then TEST_MODE="default"else # Remove the leading space if any TEST_MODE=`echo $TEST_MODE | sed 's/^ *//'`fi#++# mysqld Environment Parameters#--MYRUN_DIR=$MYSQL_TEST_DIR/var/runMANAGER_PID_FILE="$MYRUN_DIR/manager.pid"MASTER_MYDDIR="$MYSQL_TEST_DIR/var/master-data"MASTER_MYSOCK="$MYSQL_TMP_DIR/master.sock"MASTER_MYSOCK1=$MYSQL_MYSOCK"1"MASTER_MYPID="$MYRUN_DIR/master.pid"MASTER_MYLOG="$MYSQL_TEST_DIR/var/log/master.log"MASTER_MYERR="$MYSQL_TEST_DIR/var/log/master.err"SLAVE_MYDDIR="$MYSQL_TEST_DIR/var/slave-data"SLAVE_MYSOCK="$MYSQL_TMP_DIR/slave.sock"SLAVE_MYPID="$MYRUN_DIR/slave.pid"SLAVE_MYLOG="$MYSQL_TEST_DIR/var/log/slave.log"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 SLAVE_MYPORT MYSQL_TCP_PORT MASTER_MYSOCK MASTER_MYSOCK1NDBCLUSTER_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_PORTNDB_TOOLS_OUTPUT=$MYSQL_TEST_DIR/var/log/ndb_tools.logif [ x$SOURCE_DIST = x1 ] ; then MY_BASEDIR=$MYSQL_TEST_DIRelse MY_BASEDIR=$BASEDIRfi# Create the directories# This should be fixed to be not be dependent on the contence of MYSQL_TMP_DIR# or MYRUN_DIR# (mkdir -p is not portable)[ -d $MYSQL_TEST_DIR/var ] || mkdir $MYSQL_TEST_DIR/var[ -d $MYSQL_TEST_DIR/var/tmp ] || mkdir $MYSQL_TEST_DIR/var/tmp[ -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 '-Lif test ! -L "$MYSQL_TEST_DIR/var/std_data_ln" ; then ln -s $MYSQL_TEST_DIR/std_data/ $MYSQL_TEST_DIR/var/std_data_lnfiif test ${COLUMNS:-0} -lt 80 ; then COLUMNS=80 ; fiE=`$EXPR $COLUMNS - 8`DASH72=`$ECHO '-------------------------------------------------------'|$CUT -c 1-$E`# on source dist, we pick up freshly build executables# on binary, use what is installedif [ x$SOURCE_DIST = x1 ] ; then if [ "x$USE_EMBEDDED_SERVER" = "x1" ] ; then if [ -f "$BASEDIR/libmysqld/examples/mysqltest_embedded" ] ; then MYSQL_TEST="$BASEDIR/libmysqld/examples/mysqltest_embedded" else echo "Fatal error: Cannot find embedded server 'mysqltest_embedded'" 1>&2 exit 1 fi MYSQL_CLIENT_TEST="$BASEDIR/libmysqld/examples/mysql_client_test_embedded" else MYSQLD="$BASEDIR/sql/mysqld" if [ -n "$VALGRIND" ] ; then MYSQLD="$VALGRIND $MYSQLD" fi if [ -f "$BASEDIR/client/.libs/lt-mysqltest" ] ; then MYSQL_TEST="$BASEDIR/client/.libs/lt-mysqltest" elif [ -f "$BASEDIR/client/.libs/mysqltest" ] ; then MYSQL_TEST="$BASEDIR/client/.libs/mysqltest" else MYSQL_TEST="$BASEDIR/client/mysqltest" 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 MYSQL_DUMP="$BASEDIR/client/mysqldump" fi if [ -f "$BASEDIR/client/.libs/mysqlimport" ] ; then MYSQL_IMPORT="$BASEDIR/client/.libs/mysqlimport" 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 MYSQL_BINLOG="$BASEDIR/client/mysqlbinlog" fi if [ -n "$STRACE_CLIENT" ]; then MYSQL_TEST="strace -o $MYSQL_TEST_DIR/var/log/mysqltest.strace $MYSQL_TEST" fi CLIENT_BINDIR="$BASEDIR/client" MYSQLADMIN="$CLIENT_BINDIR/mysqladmin" WAIT_PID="$BASEDIR/extra/mysql_waitpid" MYSQL_MY_PRINT_DEFAULTS="$BASEDIR/extra/my_print_defaults" 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" INSTALL_DB="./install_test_db" MYSQL_FIX_SYSTEM_TABLES="$BASEDIR/scripts/mysql_fix_privilege_tables" NDB_TOOLS_DIR="$BASEDIR/ndb/tools" NDB_MGM="$BASEDIR/ndb/src/mgmclient/ndb_mgm" if [ -n "$USE_PURIFY" ] ; then PSUP="$MYSQL_TEST_DIR/suppress.purify" PURIFYOPTIONS="-windows=no -log-file=%v.purifylog -append-logfile -add-suppression-files=$PSUP" if [ -f "${MYSQL_TEST}-purify" ] ; then MYSQL_TEST="${MYSQL_TEST}-purify" PLOG="$MYSQL_TEST.purifylog" if [ -f $PLOG ]; then mv $PLOG $PLOG.$$ fi PURIFY_LOGS="$PLOG" fi if [ -f "${MYSQLD}-purify" ] ; then MYSQLD="${MYSQLD}-purify" PLOG="$MYSQLD.purifylog" if [ -f $PLOG ]; then mv $PLOG $PLOG.$$ fi PURIFY_LOGS="$PURIFY_LOGS $PLOG" fi fielse # We have a binary installation. Note that this can be both from # unpacking a MySQL AB binary distribution (created using # "scripts/make_binary_distribution", and from a "make install". # Unfortunately the structure differs a bit, for a "make install" # currently all binaries are in "bin", for a MySQL AB packaging # some are in "tests". if test -x "$BASEDIR/libexec/mysqld" then MYSQLD="$VALGRIND $BASEDIR/libexec/mysqld" elif test -x "$BASEDIR/bin/mysqld" then 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 CLIENT_BINDIR="$BASEDIR/bin" if test -d "$BASEDIR/tests" then TESTS_BINDIR="$BASEDIR/tests" 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/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" NDB_TOOLS_DIR="$CLIENT_BINDIR" NDB_MGM="$CLIENT_BINDIR/ndb_mgm" if test -d "$BASEDIR/share/mysql/english" then LANGUAGE="$BASEDIR/share/mysql/english/" CHARSETSDIR="$BASEDIR/share/mysql/charsets" else LANGUAGE="$BASEDIR/share/english/" CHARSETSDIR="$BASEDIR/share/charsets" fi if [ "x$USE_EMBEDDED_SERVER" = "x1" ] ; then if [ -f "$CLIENT_BINDIR/mysqltest_embedded" ] ; then MYSQL_TEST="$CLIENT_BINDIR/mysqltest_embedded" else echo "Fatal error: Cannot find embedded server 'mysqltest_embedded'" 1>&2 exit 1 fi if [ -d "$BASEDIR/tests/mysql_client_test_embedded" ] ; then MYSQL_CLIENT_TEST="$TESTS_BINDIR/mysql_client_test_embedded" else MYSQL_CLIENT_TEST="$CLIENT_BINDIR/mysql_client_test_embedded" fi else MYSQL_TEST="$CLIENT_BINDIR/mysqltest" MYSQL_CLIENT_TEST="$CLIENT_BINDIR/mysql_client_test" fifiif [ -z "$MASTER_MYSQLD" ]thenMASTER_MYSQLD=$MYSQLDfiif [ -z "$SLAVE_MYSQLD" ]thenSLAVE_MYSQLD=$MYSQLDfi# If we should run all tests cases, we will use a local server for thatif [ -z "$1" -a -z "$DO_STRESS" ]then USE_RUNNING_SERVER=0fiif [ $USE_RUNNING_SERVER -eq 1 ]then MASTER_MYSOCK=$LOCAL_SOCKET; DBUSER=${DBUSER:-test}else DBUSER=${DBUSER:-root} # We want to do FLUSH xxx commandsfiif [ -w / ]then # We are running as root; We need to add the --root argument EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --user=root" EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --user=root"fiMYSQL_CLIENT_TEST="$MYSQL_CLIENT_TEST --no-defaults --testcase --user=root --socket=$MASTER_MYSOCK --port=$MYSQL_TCP_PORT --silent $EXTRA_MYSQL_CLIENT_TEST_OPT"# Need to pass additional arguments to MYSQL_CLIENT_TEST for embedded server# -A marks each argument for passing to the function which initializes the# embedded libraryif [ "x$USE_EMBEDDED_SERVER" = "x1" ]; then MYSQL_CLIENT_TEST="$MYSQL_CLIENT_TEST -A --language=$LANGUAGE -A --datadir=$SLAVE_MYDDIR -A --character-sets-dir=$CHARSETSDIR"fi# Save path and name of mysqldumpMYSQL_DUMP_DIR="$MYSQL_DUMP"export MYSQL_DUMP_DIRMYSQL_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_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_CHECK MYSQL_DUMP MYSQL_SHOW MYSQL_BINLOG MYSQL_FIX_SYSTEM_TABLES MYSQL_IMPORTexport CLIENT_BINDIR MYSQL_CLIENT_TEST CHARSETSDIR MYSQL_MY_PRINT_DEFAULTSexport NDB_TOOLS_DIRexport NDB_MGMexport NDB_BACKUP_DIRexport NDB_TOOLS_OUTPUTexport PURIFYOPTIONSNDB_STATUS_OK=1export NDB_STATUS_OKMYSQL_TEST_ARGS="--no-defaults --socket=$MASTER_MYSOCK --database=$DB \ --user=$DBUSER --password=$DBPASSWD --silent -v --skip-safemalloc \ --tmpdir=$MYSQL_TMP_DIR --port=$MASTER_MYPORT $MYSQL_TEST_SSL_OPTS"if [ x$USE_TIMER = x1 ] ; then MYSQL_TEST_ARGS="$MYSQL_TEST_ARGS --timer-file=$MY_LOG_DIR/timer"fiMYSQL_TEST_BIN=$MYSQL_TESTMYSQL_TEST="$MYSQL_TEST $MYSQL_TEST_ARGS"# Export MYSQL_TEST variable for use from .test filesexport MYSQL_TESTGDB_CLIENT_INIT=$MYSQL_TMP_DIR/gdbinit.clientGDB_MASTER_INIT=$MYSQL_TMP_DIR/gdbinit.masterGDB_SLAVE_INIT=$MYSQL_TMP_DIR/gdbinit.slaveGCOV_MSG=$MYSQL_TMP_DIR/mysqld-gcov.outGCOV_ERR=$MYSQL_TMP_DIR/mysqld-gcov.errGPROF_DIR=$MYSQL_TMP_DIR/gprofGPROF_MASTER=$GPROF_DIR/master.gprofGPROF_SLAVE=$GPROF_DIR/slave.gprofTIMEFILE="$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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -