ootest.sh 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. #改变工作目录到当前脚本所在路径
  2. if [[ "$0" =~ / ]]; then cd "${0%/*}"; fi
  3. export CWD=`pwd`
  4. echo "check params ..."
  5. filescount=`./mql files? log.level=error "$@" | wc -l`
  6. if [[ "${filescount}" == "0" || "${filescount}" == "1" ]]; then
  7. ./mql "$@"
  8. exit $?
  9. fi
  10. keyspace=`./mql keyspace? log.level=error "$@"`
  11. if [[ `echo "${keyspace}" | wc -w` == "1" ]]; then
  12. logfile="${keyspace}.test.log"
  13. else
  14. logfile="test.log"
  15. fi
  16. if [[ "$bgmode" == "" ]]; then
  17. ps -ef | grep -v grep | grep "$0 bgmode=1" | awk '{print $2}' | xargs kill -9
  18. echo "" > changed.log
  19. echo mql test running in background mode
  20. export bgmode=1
  21. nohup "$0" bgmode=1 "$@" 2>&1 >/dev/null &
  22. tail -F $logfile
  23. exit 0
  24. fi
  25. parseargs() {
  26. while [[ "$*" != "" ]]; do
  27. if [[ "$1" == "init=no" ]]; then
  28. noinit=1
  29. fi
  30. shift
  31. done
  32. }
  33. parseargs "$@"
  34. odbver=`./mql odbver? log.level=error "$@"`
  35. odbpath=`./mql odbpath? log.level=error "$@"`
  36. last_odbserver="$odbver"
  37. echo "odbver=$last_odbserver" >> changed.log
  38. wait_odbserver_change() {
  39. while true; do
  40. odbver=`./mql odbver? log.level=error "$@"`
  41. if [[ "$odbver" != "$last_odbserver" ]]; then
  42. # wait for sync files complete
  43. sleep 10
  44. return 0
  45. fi
  46. sleep 2
  47. done
  48. }
  49. n=0
  50. while [[ true ]]; do
  51. ret=0
  52. n=`expr $n + 1`
  53. odbver=`./mql odbver? log.level=error "$@"`
  54. echo "$odbver" >> changed.log
  55. if [[ "$odbver" != "$last_odbserver" ]]; then
  56. echo "odbserver changed" >> changed.log
  57. echo "$last_odbserver" >> changed.log
  58. echo "$odbver" >> changed.log
  59. last_odbserver="$odbver"
  60. if [[ "$noinit" != "1" ]]; then
  61. ./initkeyspace.sh $keyspace
  62. ret=$?
  63. if [[ "$ret" != "0" ]]; then
  64. # init error
  65. n=0
  66. else
  67. n=1
  68. fi
  69. else
  70. n=1
  71. fi
  72. fi
  73. if [[ "$n" != "0" ]]; then
  74. cd "$CWD"
  75. PROCFLAG="ootest$n"
  76. endflag="$odbver end of test $n return"
  77. ttt=`date +'%Y%m%d%H%M%S'`
  78. check_odbserver() {
  79. sleep 10
  80. while true; do
  81. mqlproc=`ps -ef | grep -v grep | grep mql | grep "proc.flag=${PROCFLAG}"`
  82. if [[ "$mqlproc" == "" ]]; then
  83. return 0
  84. fi
  85. odbver=`./mql odbver? log.level=error "$@"`
  86. if [[ "$odbver" != "$last_odbserver" ]]; then
  87. echo "$odbver" >> changed.log
  88. echo "kill last process" >> changed.log
  89. ps -ef | grep -v grep | grep mql | grep "proc.flag=${PROCFLAG}" | awk '{print $2}' | xargs kill -9
  90. return 0
  91. fi
  92. sleep 10
  93. done
  94. }
  95. run() {
  96. ./mqltest.sh "proc.flag=${PROCFLAG}" "$@"
  97. ret=$?
  98. echo "$endflag $ret" >> $logfile
  99. if [[ "$ret" == "0" ]]; then
  100. sleep 5
  101. fi
  102. return $ret
  103. }
  104. check_odbserver "$@" &
  105. run "$@"
  106. ret=$?
  107. fi
  108. if [[ "$ret" != "0" && "$ret" != "99" ]]; then
  109. echo "wait for odbserver upgrad" | tee -a $logfile
  110. wait_odbserver_change
  111. fi
  112. done