1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
#!/bin/sh
if [ ! -x ./ft-test-run.sh ] ; then
echo "Usage: ./ft-test-run.sh"
exit 1
fi
BASE=`pwd`
DATA=$BASE/var
ROOT=`cd ../..; pwd`
MYSQLD=$ROOT/sql/mysqld
MYSQL=$ROOT/client/mysql
MYSQLADMIN=$ROOT/client/mysqladmin
SOCK=$DATA/mysql.sock
PID=$DATA/mysql.pid
H=../ftdefs.h
OPTS="--no-defaults --socket=$SOCK --character-sets-dir=$ROOT/sql/share/charsets"
DELAY=10
stop_myslqd()
{
[ -S $SOCK ] && $MYSQLADMIN $OPTS shutdown
[ -f $PID ] && kill `cat $PID` && sleep 15 && [ -f $PID ] && kill -9 `cat $PID`
}
if [ ! -d t/BEST ] ; then
echo "No ./t/BEST directory! Aborting..."
exit 1
fi
rm -f t/BEST/report.txt
if [ -w $H ] ; then
echo "$H is writeable! Aborting..."
exit 1
fi
stop_myslqd
rm -rf var > /dev/null 2>&1
mkdir var
mkdir var/test
for batch in t/* ; do
[ ! -d $batch ] && continue
[ $batch -ef t/BEST -a $batch != t/BEST ] && continue
rm -rf var/test/* > /dev/null 2>&1
rm -f $H
if [ -f $BASE/$batch/ftdefs.h ] ; then
cat $BASE/$batch/ftdefs.h > $H
chmod a-wx $H
else
bk get -q $H
fi
OPTS="--defaults-file=$BASE/$batch/my.cnf --socket=$SOCK --character-sets-dir=$ROOT/sql/share/charsets"
stop_myslqd
rm -f $MYSQLD
echo "building $batch"
echo "============== $batch ===============" >> var/ft_test.log
(cd $ROOT; gmake) >> var/ft_test.log 2>&1
for prog in $MYSQLD $MYSQL $MYSQLADMIN ; do
if [ ! -x $prog ] ; then
echo "build failed: no $prog"
exit 1
fi
done
echo "=====================================" >> var/ft_test.log
$MYSQLD $OPTS --basedir=$BASE --pid-file=$PID \
--language=$ROOT/sql/share/english \
--skip-grant-tables --skip-innodb \
--skip-networking --tmpdir=$DATA >> var/ft_test.log 2>&1 &
sleep $DELAY
$MYSQLADMIN $OPTS ping
if [ $? != 0 ] ; then
echo "$MYSQLD refused to start"
exit 1
fi
for test in `cd data; echo *.r|sed "s/\.r//g"` ; do
if [ -f $batch/$test.out ] ; then
echo "skipping $batch/$test.out"
continue
fi
echo "testing $batch/$test"
FT_MODE=`cat $batch/ft_mode 2>/dev/null`
./Ecreate.pl $test "$FT_MODE" | $MYSQL $OPTS --skip-column-names test >var/$test.eval
echo "reporting $batch/$test"
./Ereport.pl var/$test.eval data/$test.r > $batch/$test.out || exit
done
stop_myslqd
rm -f $H
bk get -q $H
if [ ! $batch -ef t/BEST ] ; then
echo "comparing $batch"
./Ecompare.pl t/BEST $batch >> t/BEST/report.txt
fi
done
|