oktest.sh 2.5 KB

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