Rename directory non_regression_tests to comparison_tests
[SXSI/xpathcomp.git] / tests / comparison_tests / monet.sh
diff --git a/tests/comparison_tests/monet.sh b/tests/comparison_tests/monet.sh
new file mode 100755 (executable)
index 0000000..b662aa2
--- /dev/null
@@ -0,0 +1,91 @@
+#!/bin/bash
+source utils.sh
+#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="$TIME_COUNT
+$tquery"
+
+    NUM_RESULTS="$num"
+    done
+
+    if [ -z "$4" ]
+    then
+    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="$TIME_MAT
+$tquery"
+
+    TIME_PRINT="$TIME_PRINT
+$tprint"
+
+    done
+    else
+       TIME_MAT="999999"
+       TIME_PRINT="0"
+    fi
+    while pidof Mserver >/dev/null
+    do
+
+       sudo killall -TERM Mserver
+       sleep 3
+    done
+
+    echo "$TIME_COUNT" | tail -n +2 | average
+    echo "$TIME_MAT" | tail -n +2   | average
+    echo "$TIME_PRINT" | tail -n +2   | average
+    echo $NUM_RESULTS
+}
+
+do_monet "$@"