run-all.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #!/bin/sh
  2. errors=0
  3. umask 0002
  4. DATE="$(date +%s)"
  5. unset LOGBASEDIR
  6. if [ -z "$LOGDIR" ]; then
  7. LOGBASEDIR=logs
  8. LOGDIR=$LOGBASEDIR/$DATE
  9. mkdir -p $LOGDIR
  10. fi
  11. export LOGDIR
  12. if [ -z "$DBFILE" ]; then
  13. DB=""
  14. else
  15. DB="-S $DBFILE --commit $(git rev-parse HEAD)"
  16. if [ -n "$BUILD" ]; then
  17. DB="$DB -b $BUILD"
  18. fi
  19. if [ "$PREFILL_DB" = "y" ] ; then
  20. DB="$DB --prefill-tests"
  21. fi
  22. fi
  23. if [ "x$1" = "xvalgrind" ]; then
  24. VALGRIND=valgrind
  25. SUFFIX=-valgrind
  26. shift
  27. else
  28. unset VALGRIND
  29. SUFFIX=
  30. fi
  31. if [ "x$1" = "xtrace" ] ; then
  32. TRACE=trace
  33. SUFFIX=$SUFFIX-trace
  34. TRACE_ARGS="-T"
  35. shift
  36. else
  37. unset TRACE
  38. unset TRACE_ARGS
  39. fi
  40. NUM_CH=$1
  41. if [ x${NUM_CH%=[0-9]*} = "xchannels" ]; then
  42. shift
  43. else
  44. unset NUM_CH
  45. fi
  46. if ! ./start.sh $VALGRIND $TRACE $NUM_CH; then
  47. if ! [ -z "$LOGBASEDIR" ] ; then
  48. echo "Could not start test environment" > $LOGDIR/run
  49. fi
  50. exit 1
  51. fi
  52. sudo ./run-tests.py -D --logdir "$LOGDIR" $TRACE_ARGS -q $DB $@ || errors=1
  53. ./stop.sh
  54. if [ ! -z "$VALGRIND" ] ; then
  55. failures=`grep "ERROR SUMMARY" $LOGDIR/valgrind-* | grep -v " 0 errors" | wc -l`
  56. if [ $failures -gt 0 ]; then
  57. echo "Mark as failed due to valgrind errors"
  58. errors=1
  59. fi
  60. fi
  61. if [ $errors -gt 0 ]; then
  62. tar czf /tmp/hwsim-tests-$DATE-FAILED$SUFFIX.tar.gz $LOGDIR/
  63. exit 1
  64. fi
  65. echo "ALL-PASSED"