| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- #改变工作目录到当前脚本所在路径
- if [[ "$0" =~ / ]]; then cd "${0%/*}"; fi
- export CWD=`pwd`
- echo "" > changed.log
- parseargs() {
- while [[ "$*" != "" ]]; do
- if [[ "$1" == "init=no" ]]; then
- noinit=1
- fi
- shift
- done
- }
- parseargs "$@"
- if [[ -e /opt/matrix/odbserver/odbserver ]]; then
- last_odbserver=`/opt/matrix/odbserver/odbserver -version`
- 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 [[ true ]]; do
- ret=0
- n=`expr $n + 1`
- if [[ -e ~/odbserver/odbserver ]]; then
- odbserver=`~/odbserver/odbserver -version`
- if [[ "$odbserver" != "$last_odbserver" ]]; then
- echo "odbserver changed" >> changed.log
- echo "$last_odbserver" >> changed.log
- echo "$odbserver" >> changed.log
- ./sync.sh
- cp -pf ~/odbserver/odbserver /opt/matrix/odbserver/odbserver
- last_odbserver="$odbserver"
- if [[ "noinit" != "1" ]]; then
- ./initkeyspace.sh $keyspace
- ret=$?
- if [[ "$ret" != "0" ]]; then
- n=0
- else
- n=1
- fi
- else
- n=1
- fi
- fi
- 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
- 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
- echo "$endflag $ret" >> $logfile
- if [[ "$ret" != "0" ]]; then
- return $ret
- fi
- }
- check_odbserver &
- run "$@"
- ret=$?
- fi
-
- if [[ "$ret" != "0" ]]; then
- echo "wait for odbserver upgrad"
- wait_odbserver_change
- fi
- done
|