d1e2c351218957ec1be9bc088d3217a785e76dae
[SXSI/xpathcomp.git] / tests / non_regression_tests / monet.sh
1 #!/bin/bash
2 source utils.sh
3 #Mserver and killall must be in /etc/sudoers
4 function kmonet() {
5     sudo killall -TERM Mserver
6     sleep 2
7     sudo killall -9 Mserver
8 }
9 trap kmonet INT TERM
10
11 function do_monet(){
12     while pidof Mserver >/dev/null
13     do
14
15         sudo killall -TERM Mserver
16         sleep 3
17     done
18
19     while ! pidof Mserver >/dev/null
20     do
21     sudo /usr/local/bin/alarm 600 22000000 Mserver --dbinit="module(pathfinder);" >/dev/null 2>&1 &
22     sleep 3
23     done
24     sync
25
26     query="$1"
27     doc="$2"
28     repeat="$3"
29     TIME_MAT=""
30     TIME_COUNT=""
31     TIME_PRINT=""
32     NUM_RESULTS=""
33     for i in `seq 1 "$repeat"` 
34     do
35     {
36         read foo
37         read foo
38         read num
39         read foo
40         read foo
41         read tquery
42         read foo
43         read foo
44     } < <(echo "fn:count(fn:doc(\"$doc\")$query)
45 " | mclient -t --interactive 2>&1 | grep -o '[0-9.]*' )
46
47     TIME_COUNT="$TIME_COUNT
48 $tquery"
49
50     NUM_RESULTS="$num"
51     done
52
53     for i in `seq 1 "$repeat"` 
54     do
55     {
56         read foo
57         read foo
58         read tquery
59         read tprint
60         read foo
61     } < <(echo "\>/dev/null
62 fn:doc(\"$doc\")$query
63 " | mclient -t --interactive 2>&1 | grep -o '[0-9.]*' )
64
65     TIME_MAT="$TIME_MAT
66 $tquery"
67
68     TIME_PRINT="$TIME_PRINT
69 $tprint"
70
71     done
72
73     while pidof Mserver >/dev/null
74     do
75
76         sudo killall -TERM Mserver
77         sleep 3
78     done
79
80     echo "$TIME_COUNT" | tail -n +2 | average
81     echo "$TIME_MAT" | tail -n +2   | average
82     echo "$TIME_PRINT" | tail -n +2   | average
83     echo $NUM_RESULTS
84 }
85
86 do_monet "$@"