summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2003-10-21 23:44:26 +0200
committerunknown <serg@serg.mylan>2003-10-21 23:44:26 +0200
commit91c57e7ce8d755d6310c50d3dbf7d908825bfda8 (patch)
treedf373ff849bbe1b014a196418c570bbd5e0341ee
parent2ca99a35f75a060ab5344dd39343de0f249c62bc (diff)
downloadmariadb-git-91c57e7ce8d755d6310c50d3dbf7d908825bfda8.tar.gz
ftbench fixes
-rwxr-xr-xmyisam/ftbench/Ereport.pl6
-rw-r--r--myisam/ftbench/README56
-rwxr-xr-xmyisam/ftbench/ft-test-run.sh12
3 files changed, 65 insertions, 9 deletions
diff --git a/myisam/ftbench/Ereport.pl b/myisam/ftbench/Ereport.pl
index aac06503849..761c707fcda 100755
--- a/myisam/ftbench/Ereport.pl
+++ b/myisam/ftbench/Ereport.pl
@@ -41,11 +41,7 @@ sub Favg { my $a=shift; $Pavg*$Ravg ? 1/($a/$Pavg+(1-$a)/$Ravg) : 0; }
$Ravg/=$B*$A if $B;
$Pavg/=$B if $B;
- write;
-format=
-@##### @#.#######
-$qid, Favg(0.5)
-.
+ printf "%5d %1.12f\n", $qid, Favg(0.5);
}
exit 0;
diff --git a/myisam/ftbench/README b/myisam/ftbench/README
new file mode 100644
index 00000000000..649d06d86bb
--- /dev/null
+++ b/myisam/ftbench/README
@@ -0,0 +1,56 @@
+1. should be run from myisam/ftbench/
+2. myisam/ftdefs.h should NOT be locked (bk get, not bk edit!)
+3. there should be ./data/ subdir with test collections, files:
+ test1.test
+ test1.relj
+ test2.test
+ test2.relj
+ where test1, test2, etc - are arbitrary test names
+
+ *.test are SQL files of the structure:
+=====
+DROP TABLE IF EXISTS ft;
+CREATE TABLE ft (
+ id int(10) unsigned NOT NULL,
+ text text NOT NULL,
+ FULLTEXT KEY text (text)
+);
+
+INSERT INTO ft VALUES (1, 'doc1...'),(2, 'doc2...'),...
+...
+
+SELECT COUNT(*) FROM ft;
+SELECT 1, id, MATCH text AGAINST ('query1') FROM ft WHERE MATCH text AGAINST ('query1');
+SELECT 2, id, MATCH text AGAINST ('query2') FROM ft WHERE MATCH text AGAINST ('query2');
+...
+=====
+
+ *.relj files have the structure:
+ 1 16 .....blablabla
+ 1 09 .....blablabla
+ 2 116 .....blablabla
+ ...
+
+ that is /^\d+\s+\d+/
+ and are sorted by the first number (not necessarily by the second)
+
+4. there should be ./t/ subdir with test directories
+
+ ./t
+ ./t/BEST/
+ ./t/testdir1/
+ ./t/testdir2/
+ ...
+
+ there *must* be ./t/BEST/ subdir or a symlink to one of other dirs in ./t
+ all other names (besides BEST) can be arbitrary
+
+ all test results are compared with BEST results.
+
+ test directories *must* contain ftdefs.h, and *may* contain my.cnf
+ NOTE: all *.out files in test directories will NOT be overwritten!
+ delete them to re-test
+
+5. run ./ft-test-run.sh
+6. go make some coffee
+
diff --git a/myisam/ftbench/ft-test-run.sh b/myisam/ftbench/ft-test-run.sh
index 4c81cac6d4f..2c04d24a185 100755
--- a/myisam/ftbench/ft-test-run.sh
+++ b/myisam/ftbench/ft-test-run.sh
@@ -1,4 +1,4 @@
-#!/bin/sh -x
+#!/bin/sh
if [ ! -x ./ft-test-run.sh ] ; then
echo "Usage: ./ft-test-run.sh"
@@ -46,7 +46,7 @@ for batch in t/BEST t/* ; do
touch $H
OPTS="--defaults-file=$BASE/$batch/my.cnf --socket=$SOCK --character-sets-dir=$ROOT/sql/share/charsets"
stop_myslqd
- rm $MYSQLD
+ rm -f $MYSQLD
(cd $ROOT; gmake)
for prog in $MYSQLD $MYSQL $MYSQLADMIN ; do
@@ -65,17 +65,21 @@ for batch in t/BEST t/* ; do
--skip-grant-tables --skip-innodb \
--skip-networking --tmpdir=$DATA &
- $MYSQLADMIN $OPTS --connect_timeout=60 ping
+ sleep 60
+ $MYSQLADMIN $OPTS ping
if [ $? != 0 ] ; then
echo "$MYSQLD refused to start"
exit 1
fi
- for test in `cd data; echo *.test|sed "s/\.test\>//g"` ; do
+ for test in `cd data; echo *.test|sed "s/\.test//g"` ; do
+ echo "test $batch/$test"
$MYSQL $OPTS --skip-column-names test <data/$test.test >var/$test.eval
+ echo "report $batch/$test"
./Ereport.pl var/$test.eval data/$test.relj > $batch/$test.out || exit
done
stop_myslqd
rm -f $H
+ echo "compare $batch"
[ $batch -ef t/BEST ] || ./Ecompare.pl t/BEST $batch >> t/BEST/report.txt
done