Commit 8a076ada authored by sasha@mysql.sashanet.com's avatar sasha@mysql.sashanet.com
Browse files

mysql-test-run added gcov support

sel000003.result	BitKeeper file /home/sasha/src/bk/mysql-gcov/mysql-test/r/3.23/sel000003.result
sel000003.test	BitKeeper file /home/sasha/src/bk/mysql-gcov/mysql-test/t/3.23/sel000003.test
parent 669160b2
Loading
Loading
Loading
Loading
+31 −2
Original line number Diff line number Diff line
@@ -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
+3 −0
Original line number Diff line number Diff line
n	score	
4	10	
2	20	
+7 −0
Original line number Diff line number Diff line
use test;
drop table if exists t;
create table t(name char(20) not null primary key,
  score smallint not null, key(score));
insert into t values ('Sasha', 20), ('Matt', 20), ('Monty', 10),
 ('David', 10), ('Tim', 10),('Jeremy', 10);
@r/3.23/sel000003.result select count(*) as n,score from t group by score;
 No newline at end of file