Merge branch 'local-ocamlbuild' into local-trunk
[SXSI/xpathcomp.git] / tests / non_regression_tests / monet.sh
diff --git a/tests/non_regression_tests/monet.sh b/tests/non_regression_tests/monet.sh
new file mode 100755 (executable)
index 0000000..db76444
--- /dev/null
@@ -0,0 +1,86 @@
+#!/bin/bash
+
+#Mserver and killall must be in /etc/sudoers
+function kmonet() {
+    sudo killall -TERM Mserver
+    sleep 2
+    sudo killall -9 Mserver
+}
+trap kmonet INT TERM
+
+function do_monet(){
+    while pidof Mserver >/dev/null
+    do
+       
+       sudo killall -TERM Mserver
+       sleep 3
+    done
+
+    while ! pidof Mserver >/dev/null
+    do
+    sudo /usr/local/bin/alarm 600 22000000 Mserver --dbinit="module(pathfinder);" >/dev/null 2>&1 &
+    sleep 3
+    done
+    sync
+
+    query="$1"
+    doc="$2"
+    repeat="$3"
+    TIME_MAT=""
+    TIME_COUNT=""
+    TIME_PRINT=""
+    NUM_RESULTS=""
+    for i in `seq 1 "$repeat"` 
+    do
+    {
+       read foo
+       read foo
+       read num
+       read foo
+       read foo
+       read tquery
+       read foo
+       read foo
+    } < <(echo "fn:count(fn:doc(\"$doc\")$query)
+" | mclient -t --interactive 2>&1 | grep -o '[0-9.]*' )
+
+    TIME_COUNT="$tquery
+$TIME_COUNT"
+
+    NUM_RESULTS="$num"
+    done
+
+    for i in `seq 1 "$repeat"` 
+    do
+    {
+       read foo
+       read foo
+       read tquery
+       read tprint
+       read foo
+    } < <(echo "\>/dev/null
+fn:doc(\"$doc\")$query
+" | mclient -t --interactive 2>&1 | grep -o '[0-9.]*' )
+
+    TIME_MAT="$tquery
+$TIME_MAT"
+
+    TIME_PRINT="$tprint
+$TIME_PRINT"
+
+    done
+
+    while pidof Mserver >/dev/null
+    do
+       
+       sudo killall -TERM Mserver
+       sleep 3
+    done
+
+    echo "$TIME_COUNT" | sort -g | head -2 | tail -1
+    echo "$TIME_MAT" | sort -g | head -2 | tail -1
+    echo "$TIME_PRINT" | sort -g | head -2 | tail -1
+    echo $NUM_RESULTS
+}
+
+do_monet "$@"