2 # Demonstrated that updates depend on file timestamps
6 if [ "$srcdir" != "." ]
8 echo "Jumping over test"
16 echo " init..." >>$LOG
18 # these should not be here, will be created later
19 $srcdir/cleanrecords.sh
21 ../../index/zebraidx -c $srcdir/zebra2.cfg -l $LOG init || exit 1
22 touch timeref1 # make an early timestamp
24 echo " starting server..." >>$LOG
25 ../../index/zebrasrv -D -p z.pid -S -c $srcdir/zebra2.cfg -l $LOG unix:socket
26 test -f z.pid || exit 1
28 touch timeref2 # make a later timestamp
30 echo " update 1..." >>$LOG
31 ../../index/zebraidx -l $LOG -c $srcdir/zebra2.cfg update $srcdir/records || exit 1
33 echo " search 1..." >>$LOG
34 ../api/testclient unix:socket "@attr 1=4 utah" > log || exit 1
35 grep "^Result count: 9$" log >/dev/null || exit 1
37 echo "making a test record..." >>$LOG
38 cp $srcdir/records/esdd0006.grs $srcdir/records/esdd0002.grs
39 touch -r timeref1 $srcdir/records/esdd0002.grs
41 echo " indexing it..." >>$LOG
42 ../../index/zebraidx -l $LOG -c $srcdir/zebra2.cfg update $srcdir/records || exit 1
44 echo " search 2..." >>$LOG
45 ../api/testclient unix:socket "@attr 1=4 utah" > log || exit 1
46 grep "^Result count: 10$" log >/dev/null || exit 1
48 echo " modifying a test record (xyz)..." >>$LOG
49 sed 's/UTAH/XYZ/g' <$srcdir/records/esdd0002.grs >$srcdir/records/esdd0002x.grs
50 mv $srcdir/records/esdd0002x.grs $srcdir/records/esdd0002.grs
51 touch -r timeref1 $srcdir/records/esdd0002.grs # reset timestamp to 'early'
53 echo " not indexing it..." >>$LOG
54 ../../index/zebraidx -l $LOG -c $srcdir/zebra2.cfg update $srcdir/records || exit 1
56 echo " search 3..." >>$LOG
57 ../api/testclient unix:socket "@attr 1=4 utah" > log || exit 1
58 echo " checking..." >>$LOG
59 grep "^Result count: 10$" log >/dev/null || exit 1
61 echo " touching its timestamp..." >>$LOG
62 touch -r timeref2 $srcdir/records/esdd0002.grs # set timestamp to 'late'
64 echo " indexing it..." >>$LOG
65 ../../index/zebraidx -l $LOG -c $srcdir/zebra2.cfg update $srcdir/records || exit 1
67 echo " search 4..." >>$LOG
68 ../api/testclient unix:socket "@attr 1=4 utah" > log || exit 1
69 echo " checking..." >>$LOG
70 grep "^Result count: 9$" log >/dev/null || exit 1
72 echo "stopping server..." >>$LOG
73 test -f z.pid || exit 1
74 kill `cat z.pid` || exit 1
76 $srcdir/cleanrecords.sh