diff options
Diffstat (limited to 'mysql-test/mysql-test-run')
-rwxr-xr-x | mysql-test/mysql-test-run | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/mysql-test/mysql-test-run b/mysql-test/mysql-test-run index 64b0135d483..279d0af3497 100755 --- a/mysql-test/mysql-test-run +++ b/mysql-test/mysql-test-run @@ -26,6 +26,11 @@ SYST=0 REALT=0 TIMEFILE="$CWD/var/tmp/mysqltest-time" DASHBLANK="---- ---- -------" +MYSQLD_SRC_DIRS="strings mysys include extra regex isam merge myisam \ + myisammrg heap sql" +GCOV=`which gcov` +GCOV_MSG=/tmp/mysqld-gcov.out +GCOV_ERR=/tmp/mysqld-gcov.err [ -z $COLUMNS ] && COLUMNS=80 E=`expr $COLUMNS - 8` @@ -64,7 +69,7 @@ MYSQL_TEST="$BASEDIR/client/mysqltest" MYSQLADMIN="$BASEDIR/client/mysqladmin" MYSQL_TEST="$MYSQL_TEST --socket=$MYSOCK --database=$DB --user=$DBUSER --password=$DBPASSWD --silent" INSTALL_DB="$MYBIN/mysql-test_install_db" - +[ $1 = "-gcov" ] && DO_GCOV=1 #++ # Terminal Modifications @@ -166,8 +171,29 @@ mysql_install_db () { return 0 } +gcov_clean () { + find .. -name -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 ../$d + for f in *.h *.cc *.c; do + $GCOV $f 2>>$GCOV_ERR >>$GCOV_MSG + done + cd ../mysql-test + done + + echo "gcov info in $GCOV_MSG, errors in $GCOV_ERR" +} + mysql_start () { + cd .. # for gcov $MYSQLD --no-defaults \ --skip-networking \ --basedir=$CWD \ @@ -176,7 +202,7 @@ mysql_start () { --socket=$MYSOCK \ --log=$MYLOG \ --language=english >> $MYERR 2>&1 & - + cd mysql-test return 1 } @@ -206,6 +232,7 @@ mysql_loadstd () { return 1 } +[ $DO_GCOV = 1 ] && gcov_clean # clean up stale gcov files if running with gcov mysql_install_db @@ -287,4 +314,6 @@ $ECHO report_stats $ECHO +[ $DO_GCOV = 1 ] && gcov_collect # collect coverage information + exit 0 |