run-all.sh 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. unset VALGRIND
  24. unset TRACE
  25. unset TRACE_ARGS
  26. unset RUN_TEST_ARGS
  27. while [ "$1" != "" ]; do
  28. case $1 in
  29. -v | --valgrind | valgrind)
  30. shift
  31. echo "$0: using valgrind"
  32. VALGRIND=valgrind
  33. ;;
  34. -t | --trace | trace)
  35. shift
  36. echo "$0: using Trace"
  37. TRACE=trace
  38. ;;
  39. -n | --channels)
  40. shift
  41. NUM_CH=$1
  42. shift
  43. echo "$0: using channels=$NUM_CH"
  44. ;;
  45. *)
  46. RUN_TEST_ARGS="$RUN_TEST_ARGS$1 "
  47. shift
  48. ;;
  49. esac
  50. done
  51. if [ ! -z "$RUN_TEST_ARGS" ]; then
  52. echo "$0: passing the following args to run-tests.py: $RUN_TEST_ARGS"
  53. fi
  54. unset SUFFIX
  55. if [ ! -z "$VALGRIND" ]; then
  56. SUFFIX=-valgrind
  57. fi
  58. if [ ! -z "$TRACE" ]; then
  59. SUFFIX=$SUFFIX-trace
  60. TRACE_ARGS="-T"
  61. fi
  62. if ! ./start.sh $VALGRIND $TRACE $NUM_CH; then
  63. if ! [ -z "$LOGBASEDIR" ] ; then
  64. echo "Could not start test environment" > $LOGDIR/run
  65. fi
  66. exit 1
  67. fi
  68. sudo ./run-tests.py -D --logdir "$LOGDIR" $TRACE_ARGS -q $DB $RUN_TEST_ARGS || errors=1
  69. ./stop.sh
  70. if [ ! -z "$VALGRIND" ] ; then
  71. failures=`grep "ERROR SUMMARY" $LOGDIR/valgrind-* | grep -v " 0 errors" | wc -l`
  72. if [ $failures -gt 0 ]; then
  73. echo "Mark as failed due to valgrind errors"
  74. errors=1
  75. fi
  76. fi
  77. if [ $errors -gt 0 ]; then
  78. tar czf /tmp/hwsim-tests-$DATE-FAILED$SUFFIX.tar.gz $LOGDIR/
  79. exit 1
  80. fi
  81. echo "ALL-PASSED"