run-all.sh 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. if ! ./start.sh $VALGRIND $TRACE; then
  41. if ! [ -z "$LOGBASEDIR" ] ; then
  42. echo "Could not start test environment" > $LOGDIR/run
  43. fi
  44. exit 1
  45. fi
  46. ./run-tests.py -D --logdir "$LOGDIR" $TRACE_ARGS -q $DB $@ || errors=1
  47. ./stop.sh
  48. if [ ! -z "$VALGRIND" ] ; then
  49. failures=`grep "ERROR SUMMARY" $LOGDIR/valgrind-* | grep -v " 0 errors" | wc -l`
  50. if [ $failures -gt 0 ]; then
  51. echo "Mark as failed due to valgrind errors"
  52. errors=1
  53. fi
  54. fi
  55. if [ $errors -gt 0 ]; then
  56. tar czf /tmp/hwsim-tests-$DATE-FAILED$SUFFIX.tar.gz $LOGDIR/
  57. exit 1
  58. fi
  59. echo "ALL-PASSED"