wecisecode 1 giorno fa
parent
commit
09b98db72a
2 ha cambiato i file con 88 aggiunte e 46 eliminazioni
  1. 16 0
      odbctest/mql/basic/00init/01check.mql
  2. 72 46
      odbctest/mql/oktest.sh

+ 16 - 0
odbctest/mql/basic/00init/01check.mql

@@ -0,0 +1,16 @@
+
+
+select * from /matrix/ldap
+/**
+output()
+match("username","admin","fullname","/admin")
+**/
+;
+
+
+select * from /matrix/group
+/**
+output()
+match("name","admin","fullname","/admin")
+**/
+;

+ 72 - 46
odbctest/mql/oktest.sh

@@ -1,4 +1,8 @@
 
+#改变工作目录到当前脚本所在路径
+if [[ "$0" =~ / ]]; then cd "${0%/*}"; fi
+export CWD=`pwd`
+
 echo "" > changed.log
 
 parseargs() {
@@ -17,8 +21,23 @@ fi
 keyspace=`./mql keyspace? log.level=error "$@"`
 logfile="${keyspace}.test.log"
 
+wait_odbserver_change() {
+    while true; do
+        if [[ -e ~/odbserver/odbserver ]]; then
+            odbserver=`~/odbserver/odbserver -version 2>&1`
+            if [[ "${odbserver:0:12}" == "omdb version" ]]; then
+                if [[ "$odbserver" != "$last_odbserver" ]]; then
+                    return 0
+                fi
+            fi
+        fi
+        sleep 2
+    done
+}
+
 n=0
-while [[ $n -lt 1000 ]]; do
+while [[ true ]]; do
+    ret=0
     n=`expr $n + 1`
     if [[ -e ~/odbserver/odbserver ]]; then
         odbserver=`~/odbserver/odbserver -version`
@@ -34,59 +53,66 @@ while [[ $n -lt 1000 ]]; do
                 ./initkeyspace.sh $keyspace
                 ret=$?
                 if [[ "$ret" != "0" ]]; then
-                    exit $ret
+                    n=0
+                else
+                    n=1
                 fi
+            else
+                n=1
             fi
-
-            n=1
         fi
-    fi
-
-    cd /opt/matrix/test
-    PREFIX="test $n"
-    endflag="$odbserver end of test $n return"
-    ttt=`date +'%Y%m%d%H%M%S'`
-    check_odbserver() {
-        sleep 10
-        while true; do
-            mqlproc=`ps -ef | grep -v grep | grep mql | grep "log.prefix=${PREFIX}"`
-            if [[ "$mqlproc" == "" ]]; then
-                exit 0
+    fi 
+    if [[ "$n" != "0" ]]; then
+        cd "$CWD"
+        PREFIX="test $n"
+        endflag="$odbserver end of test $n return"
+        ttt=`date +'%Y%m%d%H%M%S'`
+        check_odbserver() {
+            sleep 10
+            while true; do
+                mqlproc=`ps -ef | grep -v grep | grep mql | grep "log.prefix=${PREFIX}"`
+                if [[ "$mqlproc" == "" ]]; then
+                    return 0
+                fi
+                if [[ -e ~/odbserver/odbserver ]]; then
+                    odbserver=`~/odbserver/odbserver -version`
+                    if [[ "$odbserver" != "$last_odbserver" ]]; then
+                        ps -ef | grep -v grep | grep mql | grep "log.prefix=${PREFIX}" | awk '{print $2}' | xargs kill -9
+                        return 0
+                    fi
+                fi
+                sleep 10
+            done
+        }
+        run() {
+            ./mqltest.sh "log.prefix=${PREFIX}" "$@"
+            ret=$?
+            if [[ "$ret" != "0" ]]; then
+                return $ret
             fi
-            if [[ -e ~/odbserver/odbserver ]]; then
-                odbserver=`~/odbserver/odbserver -version`
-                if [[ "$odbserver" != "$last_odbserver" ]]; then
-                    ps -ef | grep -v grep | grep mql | grep "log.prefix=${PREFIX}" | awk '{print $2}' | xargs kill -9
+            lastline=`tail -n 1 $logfile 2>&1`
+            if [[ "$lastline" != "PASS" ]]; then
+                ret=1
+                if [[ `echo "$lastline" | grep './mqltest.sh:' | grep "已杀死"` != "" ]]; then
+                    ret=0
+                elif [[ `echo "$lastline" | grep './mqltest.sh:' | grep "killed"` != "" ]]; then
+                    ret=0
+                else
                     exit 0
                 fi
             fi
-            sleep 10
-        done
-    }
-
-    run() {
-        ./mqltest.sh "log.prefix=${PREFIX}" "$@"
-        ret=$?
-        if [[ "$ret" != "0" ]]; then
-            exit $ret
-        fi
-        lastline=`tail -n 1 $logfile 2>&1`
-        if [[ "$lastline" != "PASS" ]]; then
-            ret=1
-            if [[ `echo "$lastline" | grep './mqltest.sh:' | grep "已杀死"` != "" ]]; then
-                ret=0
-            elif [[ `echo "$lastline" | grep './mqltest.sh:' | grep "killed"` != "" ]]; then
-                ret=0
+            echo "$endflag $ret" >> $logfile
+            if [[ "$ret" != "0" ]]; then
+                return $ret
             fi
-        fi
-        echo "$endflag $ret" >> $logfile
-        if [[ "$ret" != "0" ]]; then
-            exit $ret
-        fi
-    }
-    check_odbserver &
-    run "$@"
+        }
+        check_odbserver &
+        run "$@"
+        ret=$?
+    fi
+    
     if [[ "$ret" != "0" ]]; then
-        exit $ret
+        echo "wait for odbserver upgrad"
+        wait_odbserver_change
     fi
 done