2226239900e163892df300b4ff61bc1a02c4306b
[SXSI/xpathcomp.git] / tests / non_regression_tests / qizx.sh
1 #!/bin/bash
2 QIZX="/raid0/kn/qizx/qizx-fe-4.1p1/bin/qizx.alarm"
3
4 source utils.sh
5
6 function stop_qizx() {
7     sleep 2
8     rm -rf mat.xq count.xq
9     QIZXPIDS=`ps xwww --format "%p,%a" | grep java | grep qizx | cut -f 1 -d ' '`
10     for i in $QIZXPIDS
11     do
12         kill -TERM "$i"
13         sleep 2
14         KILLED=`ps aux | grep '^'$i`
15         if [ "$KILLED" ]
16         then
17             kill -9 "$i"
18         fi
19         sleep 3
20         rm -f /raid0/kn/qizxlib/*/lock
21         while true
22         do
23             o=/raid0/kn/qizx/qizx-fe-4.1p1/bin/qizx -g /raid0/kn/qizxlib/ -l xmark -check /tmp/log >/dev/null 2>&1
24             sleep 2
25             if [ -z "$o" ]
26             then
27                 break
28             fi
29         done
30     done
31
32 }
33
34 trap stop_qizx INT TERM
35
36 function do_qizx() {
37
38     stop_qizx
39
40     query="$1"
41     doc=`basename "$2"`
42     repeat="$3"
43     echo 'let $doc := collection("'"$doc"'") return count($doc'"$query"')' > count.xq
44     echo 'let $doc := collection("'"$doc"'") return $doc'"$query" > mat.xq
45
46     IT=0
47     while true
48     do
49         OUTPUT=`$QIZX -g /raid0/kn/qizxlib/ -l xmark count.xq 2>&1`
50         if  echo "$OUTPUT" | grep -q 'java' >/dev/null 2>&1
51         then
52             if [ "$IT" = 5 ]
53             then
54                 break
55             fi
56             IT=$(($IT + 1))
57             continue
58         fi
59
60         {
61             read count;
62         } < <(echo "$OUTPUT")
63
64         stop_qizx
65         sleep 3
66         tmp=`echo "$count" | grep -o '[0-9.]\+'`
67         if [ "$tmp" = "$count" ]
68         then
69             break
70         fi
71     done
72
73     IT=0
74     while true
75     do
76
77         OUTPUT=`$QIZX -g /raid0/kn/qizxlib/ -l xmark -r "$repeat" count.xq 2>&1`
78         if  echo "$OUTPUT" | grep -q 'java' >/dev/null 2>&1
79         then
80             if [ "$IT" = 5 ]
81             then
82                 break
83             fi
84             IT=$(($IT + 1))
85             continue
86         fi
87
88         {
89             read time_count;
90         } < <(echo "$OUTPUT" | grep 'display time' | cut -f 3 -d : | grep -o '[0-9]\+'| tail -n +1 | average )
91
92
93         stop_qizx
94         sleep 3
95         if [ -z "$time_count" ]
96         then
97             break
98         fi
99         tmp=`echo "$time_count" | grep -o '[0-9.]\+'`
100         if [ "$tmp" = "$time_count" ]
101         then
102             break
103         fi
104     done
105
106     IT=0
107     while true
108     do
109         OUTPUT=`$QIZX -g /raid0/kn/qizxlib/ -l xmark -r "$repeat" mat.xq -out /dev/null 2>&1`
110         if  echo "$OUTPUT" | grep -q 'java' >/dev/null 2>&1
111         then
112             if [ "$IT" = 5 ]
113             then
114                 break
115             fi
116             IT=$(($IT + 1))
117             continue
118         fi
119
120         {
121             read time_mat;
122         } <  <(echo "$OUTPUT" 2>&1 | grep 'display time' | cut -f 3 -d : | grep -o '[0-9]\+'| tail -n +1 | average)
123
124         stop_qizx
125         sleep 3
126         if [ -z "$time_mat" ]
127         then
128             break
129         fi
130
131
132         tmp=`echo "$time_mat" | grep -o '[0-9.]\+'`
133         if [ "$tmp" = "$time_mat" ]
134         then
135             break
136         fi
137     done
138
139     echo $time_count
140     echo 0
141     echo $time_mat
142     echo $count
143
144 }
145
146 #UGLY HACK TO TRICK QIZX EVALUATION VERSION
147 # OLD_DATE=`date +"%m/%d/%Y"`
148
149 # function reset_time() {
150 #     CUR_TIME=`date +"%H:%M:%S"`
151 #     sudo date -s "$OLD_DATE $CUR_TIME"  >/dev/null 2>&1
152 # }
153 # trap reset_time INT TERM
154
155 #CUR_TIME=`date +"%H:%M:%S"`
156 #sudo date -s "03/11/2011 $CUR_TIME" >/dev/null 2>&1
157 do_qizx "$@"
158 #reset_time