| #!/bin/sh |
| |
| errors=0 |
| umask 0002 |
| |
| DATE="$(date +%s)" |
| unset LOGBASEDIR |
| if [ -z "$LOGDIR" ]; then |
| LOGBASEDIR=logs |
| LOGDIR=$LOGBASEDIR/$DATE |
| mkdir -p $LOGDIR |
| fi |
| export LOGDIR |
| |
| if [ -z "$DBFILE" ]; then |
| DB="" |
| else |
| DB="-S $DBFILE --commit $(git rev-parse HEAD)" |
| if [ -n "$BUILD" ]; then |
| DB="$DB -b $BUILD" |
| fi |
| if [ "$PREFILL_DB" = "y" ] ; then |
| DB="$DB --prefill-tests" |
| fi |
| fi |
| |
| usage() |
| { |
| echo "$0 [-v | --valgrind | valgrind] [-t | --trace | trace]" |
| echo "\t[-n <num> | --channels <num>] [-B | --build]" |
| echo "\t[-c | --codecov ] [run-tests.py parameters]" |
| exit 1 |
| } |
| |
| unset VALGRIND |
| unset TRACE |
| unset TRACE_ARGS |
| unset RUN_TEST_ARGS |
| unset BUILD |
| unset BUILD_ARGS |
| unset CODECOV |
| while [ "$1" != "" ]; do |
| case $1 in |
| -v | --valgrind | valgrind) |
| shift |
| echo "$0: using valgrind" |
| VALGRIND=valgrind |
| ;; |
| -t | --trace | trace) |
| shift |
| echo "$0: using Trace" |
| TRACE=trace |
| ;; |
| -n | --channels) |
| shift |
| NUM_CH=$1 |
| shift |
| echo "$0: using channels=$NUM_CH" |
| ;; |
| -B | --build) |
| shift |
| echo "$0: build before running tests" |
| BUILD=build |
| ;; |
| -c | --codecov) |
| shift |
| echo "$0: using code coverage" |
| CODECOV=lcov |
| BUILD_ARGS=-c |
| ;; |
| -h | --help) |
| usage |
| ;; |
| *) |
| RUN_TEST_ARGS="$RUN_TEST_ARGS$1 " |
| shift |
| ;; |
| esac |
| done |
| |
| if [ ! -z "$RUN_TEST_ARGS" ]; then |
| echo "$0: passing the following args to run-tests.py: $RUN_TEST_ARGS" |
| fi |
| |
| unset SUFFIX |
| if [ ! -z "$BUILD" ]; then |
| SUFFIX=-build |
| fi |
| |
| if [ ! -z "$VALGRIND" ]; then |
| SUFFIX=$SUFFIX-valgrind |
| fi |
| |
| if [ ! -z "$TRACE" ]; then |
| SUFFIX=$SUFFIX-trace |
| TRACE_ARGS="-T" |
| fi |
| |
| if [ ! -z "$CODECOV" ]; then |
| SUFFIX=$SUFFIX-codecov |
| fi |
| |
| if [ ! -z "$BUILD" ]; then |
| echo "Building with args=$BUILD_ARGS" |
| if ! ./build.sh $BUILD_ARGS; then |
| echo "Failed building components" |
| exit 1 |
| fi |
| fi |
| |
| if ! ./start.sh $VALGRIND $TRACE $NUM_CH; then |
| if ! [ -z "$LOGBASEDIR" ] ; then |
| echo "Could not start test environment" > $LOGDIR/run |
| fi |
| exit 1 |
| fi |
| |
| sudo ./run-tests.py -D --logdir "$LOGDIR" $TRACE_ARGS -q $DB $RUN_TEST_ARGS || errors=1 |
| |
| ./stop.sh |
| |
| if [ ! -z "$VALGRIND" ] ; then |
| failures=`grep "ERROR SUMMARY" $LOGDIR/valgrind-* | grep -v " 0 errors" | wc -l` |
| if [ $failures -gt 0 ]; then |
| echo "Mark as failed due to valgrind errors" |
| errors=1 |
| fi |
| fi |
| |
| if [ ! -z "$CODECOV" ] ; then |
| lcov -q --capture --directory ../../wpa_supplicant --output-file $LOGDIR/wpas_lcov.info |
| genhtml -q $LOGDIR/wpas_lcov.info --output-directory $LOGDIR/wpas_lcov |
| lcov -q --capture --directory ../../hostapd --output-file $LOGDIR/hostapd_lcov.info |
| genhtml -q $LOGDIR/hostapd_lcov.info --output-directory $LOGDIR/hostapd_lcov |
| fi |
| |
| if [ $errors -gt 0 ]; then |
| tar czf /tmp/hwsim-tests-$DATE-FAILED$SUFFIX.tar.gz $LOGDIR/ |
| exit 1 |
| fi |
| |
| echo "ALL-PASSED" |