Omit CVS Id. Update copyright year.
[idzebra-moved-to-github.git] / test / gils / timing2.sh
index 717cef0..56e4b32 100755 (executable)
-# timing2.sh 
-# 2: Test without sleeps, fails around step 1a or 1b.
-
-echo "Testing timings of updates"
-echo "  init..."
-rm -f idx.log log
-rm -f records/esdd000[12].grs # these should not be here, will be created later
-../../index/zebraidx -l idx.log init || exit 1
-
-echo "  killing old server (if any)..."
-test -f zebrasrv.pid && kill -9 `cat zebrasrv.pid`
-rm -f zebrasrv.pid
-rm -f srv.log
-
-echo "  starting server..."
-../../index/zebrasrv -S -c zebra2.cfg -l srv.log tcp:@:9901 &
-sleep 1
-test -f zebrasrv.pid || exit 1
-
-echo "  update 1..."
-../../index/zebraidx -l idx.log -c zebra2.cfg update records || exit 1
-
-echo "  search 1..."
-../testclient localhost:9901 "@attr 1=4 utah" > log || exit 1
-grep "^Result count: 9$" log || exit 1
-
-echo "making a test record..."
-cp records/esdd0006.grs records/esdd0002.grs
+#!/bin/sh
+# Demonstrated that updates depend on file timestamps
 
-echo "  indexing it..."
-../../index/zebraidx -l idx.log -c zebra2.cfg update records || exit 1
+srcdir=${srcdir:-"."}
 
-echo "  search 2..."
-../testclient localhost:9901 "@attr 1=4 utah" > log || exit 1
-grep "^Result count: 10$" log || exit 1
-echo "  1a: modifying a test record (xyz)..."
-sed 's/UTAH/XYZ/g' <records/esdd0002.grs >records/esdd0002x.grs
-mv records/esdd0002x.grs records/esdd0002.grs
+if [ "$srcdir" != "." ]
+    then
+    echo "Jumping over test"
+    exit 0
+fi
 
-echo "    indexing it..."
-../../index/zebraidx -l idx.log -c zebra2.cfg update records || exit 1
+LOG=timing2.log
 
-echo "    search 3..."
-../testclient localhost:9901 "@attr 1=4 utah" > log || exit 1
-echo "    checking..."
-grep "^Result count: 9$" log || exit 1
+rm -f $LOG
 
-echo "  1b: modifying the test record back (utah)..."
-sed 's/XYZ/UTAH/g' <records/esdd0002.grs >records/esdd0002x.grs
-mv records/esdd0002x.grs records/esdd0002.grs
+echo "  init..." >>$LOG
+rm -f log timeref[12]
+# these should not be here, will be created later
+$srcdir/cleanrecords.sh
 
-echo "    indexing it..."
-../../index/zebraidx -l idx.log -c zebra2.cfg update records || exit 1
+../../index/zebraidx -c $srcdir/zebra2.cfg -l $LOG init || exit 1
+touch timeref1  # make an early timestamp
 
-echo "    search 4..."
-../testclient localhost:9901 "@attr 1=4 utah" > log || exit 1
-echo "    checking..."
-grep "^Result count: 10$" log || exit 1
-
-echo "  2a: modifying the test record (xyz)..."
-sed 's/UTAH/XYZ/g' <records/esdd0002.grs >records/esdd0002x.grs
-mv records/esdd0002x.grs records/esdd0002.grs
-
-echo "    indexing it..."
-../../index/zebraidx -l idx.log -c zebra2.cfg update records || exit 1
-
-echo "    search 5..."
-../testclient localhost:9901 "@attr 1=4 utah" > log || exit 1
-echo "    checking..."
-grep "^Result count: 9$" log || exit 1
+echo "  starting server..." >>$LOG
+../../index/zebrasrv -D -p z.pid -S -c $srcdir/zebra2.cfg -l $LOG unix:socket
+test -f z.pid || exit 1
+sleep 1
+touch timeref2  # make a later timestamp
 
-echo "  2b: modifying the test record back (utah)..."
-sed 's/XYZ/UTAH/g' <records/esdd0002.grs >records/esdd0002x.grs
-mv records/esdd0002x.grs records/esdd0002.grs
+echo "  update 1..." >>$LOG
+../../index/zebraidx -l $LOG -c $srcdir/zebra2.cfg update $srcdir/records || exit 1
 
-echo "    indexing it..."
-../../index/zebraidx -l idx.log -c zebra2.cfg update records || exit 1
+echo "  search 1..." >>$LOG
+../api/testclient unix:socket "@attr 1=4 utah" > log || exit 1
+grep "^Result count: 9$" log >/dev/null || exit 1
 
-echo "    search 6..."
-../testclient localhost:9901 "@attr 1=4 utah" > log || exit 1
-echo "    checking..."
-grep "^Result count: 10$" log || exit 1
+echo "making a test record..." >>$LOG
+cp $srcdir/records/esdd0006.grs $srcdir/records/esdd0002.grs
+touch -r timeref1 $srcdir/records/esdd0002.grs
 
+echo "  indexing it..." >>$LOG
+../../index/zebraidx -l $LOG -c $srcdir/zebra2.cfg update $srcdir/records || exit 1
 
-echo "  3a: modifying the test record (xyz)..."
-sed 's/UTAH/XYZ/g' <records/esdd0002.grs >records/esdd0002x.grs
-mv records/esdd0002x.grs records/esdd0002.grs
+echo "  search 2..." >>$LOG
+../api/testclient unix:socket "@attr 1=4 utah" > log || exit 1
+grep "^Result count: 10$" log >/dev/null || exit 1
 
-echo "    indexing it..."
-../../index/zebraidx -l idx.log -c zebra2.cfg update records || exit 1
+echo "  modifying a test record (xyz)..." >>$LOG
+sed 's/UTAH/XYZ/g' <$srcdir/records/esdd0002.grs >$srcdir/records/esdd0002x.grs
+mv $srcdir/records/esdd0002x.grs $srcdir/records/esdd0002.grs
+touch -r timeref1 $srcdir/records/esdd0002.grs # reset timestamp to 'early'
 
-echo "    search 7..."
-../testclient localhost:9901 "@attr 1=4 utah" > log || exit 1
-echo "    checking..."
-grep "^Result count: 9$" log || exit 1
+echo "    not indexing it..." >>$LOG
+../../index/zebraidx -l $LOG -c $srcdir/zebra2.cfg update $srcdir/records || exit 1
 
-echo "  3b: modifying the test record back (utah)..."
-sed 's/XYZ/UTAH/g' <records/esdd0002.grs >records/esdd0002x.grs
-mv records/esdd0002x.grs records/esdd0002.grs
+echo "    search 3..." >>$LOG
+../api/testclient unix:socket "@attr 1=4 utah" > log || exit 1
+echo "    checking..." >>$LOG
+grep "^Result count: 10$" log >/dev/null || exit 1
 
-echo "    indexing it..."
-../../index/zebraidx -l idx.log -c zebra2.cfg update records || exit 1
+echo "  touching its timestamp..." >>$LOG
+touch -r timeref2 $srcdir/records/esdd0002.grs # set timestamp to 'late'
 
-echo "    search 8..."
-../testclient localhost:9901 "@attr 1=4 utah" > log || exit 1
-echo "    checking..."
-grep "^Result count: 10$" log || exit 1
+echo "    indexing it..." >>$LOG
+../../index/zebraidx -l $LOG -c $srcdir/zebra2.cfg update $srcdir/records || exit 1
 
+echo "    search 4..." >>$LOG
+../api/testclient unix:socket "@attr 1=4 utah" > log || exit 1
+echo "    checking..." >>$LOG
+grep "^Result count: 9$" log >/dev/null || exit 1
 
-echo "stopping server..."
-test -f zebrasrv.pid || exit 1
-kill -9 `cat zebrasrv.pid` || exit 1
-rm -f idx.log log
-rm -f records/esdd000[12].grs 
-rm -f zebrasrv.pid
-rm -f srv.log
+echo "stopping server..." >>$LOG
+test -f z.pid || exit 1
+kill `cat z.pid` || exit 1
+rm -f log timeref[12]
+$srcdir/cleanrecords.sh
+rm -f z.pid
 
-echo ok