oktest.sh 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. echo "" > changed.log
  2. parseargs() {
  3. while [[ "$*" != "" ]]; do
  4. if [[ "$1" == "init=no" ]]; then
  5. noinit=1
  6. fi
  7. shift
  8. done
  9. }
  10. parseargs "$@"
  11. last_odbserver=`/opt/matrix/odbserver/odbserver -version`
  12. keyspace=`./mql keyspace? log.level=error "$@"`
  13. logfile="${keyspace}.test.log"
  14. n=0
  15. while [[ $n -lt 1000 ]]; do
  16. n=`expr $n + 1`
  17. odbserver=`~/odbserver/odbserver -version`
  18. if [[ "$odbserver" != "$last_odbserver" ]]; then
  19. echo "odbserver changed" >> changed.log
  20. echo "$last_odbserver" >> changed.log
  21. echo "$odbserver" >> changed.log
  22. ./sync.sh
  23. last_odbserver="$odbserver"
  24. if [[ "noinit" != "1" ]]; then
  25. ./initkeyspace.sh $keyspace
  26. ret=$?
  27. if [[ "$ret" != "0" ]]; then
  28. exit $ret
  29. fi
  30. fi
  31. n=1
  32. fi
  33. cd /opt/matrix/test
  34. PREFIX="test $n"
  35. endflag="$odbserver end of test $n return"
  36. ttt=`date +'%Y%m%d%H%M%S'`
  37. check_odbserver() {
  38. sleep 10
  39. while true; do
  40. mglproc=`ps -ef | grep -v grep | grep mql | grep "log.prefix=${PREFIX}"`
  41. if [[ "$mqlproc" == "" ]]; then
  42. exit 0
  43. fi
  44. odbserver=`~/odbserver/odbserver -version`
  45. if [[ "$odbserver" != "$last_odbserver" ]]; then
  46. ps -ef | grep -v grep | grep mql | grep "log.prefix=${PREFIX}" | awk '{print $2}' | xargs kill -9
  47. exit 0
  48. fi
  49. sleep 10
  50. done
  51. }
  52. run() {
  53. ret=0
  54. ./mqltest.sh "$@"
  55. lastline=`tail -n 1 $logfile`
  56. if [[ "$lastline" != "PASS" ]]; then
  57. ret=1
  58. if [[ `echo "$lastline" | grep './mqltest.sh:' | grep "已杀死"` != "" ]]; then
  59. ret=0
  60. elif [[ `echo "$lastline" | grep './mqltest.sh:' | grep "killed"` != "" ]]; then
  61. ret=0
  62. fi
  63. fi
  64. echo "$endflag $ret" >> $logfile
  65. if [[ "$ret" != "0" ]]; then
  66. exit $ret
  67. fi
  68. }
  69. check_odbserver &
  70. run
  71. if [[ "$ret" != "0" ]]; then
  72. exit $ret
  73. fi
  74. done