|
@@ -6,7 +6,7 @@ if [ -z "$TESTDIR" ] ; then
|
|
|
TESTDIR=$(pwd)/../
|
|
|
fi
|
|
|
|
|
|
-LOGS=/tmp/hwsim-test-logs/
|
|
|
+LOGS=/tmp/hwsim-test-logs
|
|
|
|
|
|
# increase the memory size if you want to run with valgrind, 512 MB works
|
|
|
MEMORY=128
|
|
@@ -40,9 +40,63 @@ fi
|
|
|
|
|
|
|
|
|
CMD=$TESTDIR/vm/inside.sh
|
|
|
-LOGDIR=$LOGS/$(date +%s)
|
|
|
+DATE=$(date +%s)
|
|
|
+LOGDIR=$LOGS/$DATE
|
|
|
mkdir -p $LOGDIR
|
|
|
|
|
|
+if [ "$1" = "--codecov" ]; then
|
|
|
+ shift
|
|
|
+ CODECOV=yes
|
|
|
+ DIR=$PWD
|
|
|
+ if [ -e /tmp/logs ]; then
|
|
|
+ echo "/tmp/logs exists - cannot prepare build trees"
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+ mkdir /tmp/logs
|
|
|
+ echo "Preparing separate build trees for hostapd/wpa_supplicant"
|
|
|
+ cd ../../..
|
|
|
+ git archive --format=tar --prefix=hostap/ HEAD > /tmp/logs/hostap.tar
|
|
|
+ cd $DIR
|
|
|
+ cat ../../../wpa_supplicant/.config > /tmp/logs/wpa_supplicant.config
|
|
|
+ echo "CONFIG_CODE_COVERAGE=y" >> /tmp/logs/wpa_supplicant.config
|
|
|
+ cat ../../../hostapd/.config > /tmp/logs/hostapd.config
|
|
|
+ echo "CONFIG_CODE_COVERAGE=y" >> /tmp/logs/hostapd.config
|
|
|
+
|
|
|
+ cd /tmp/logs
|
|
|
+ tar xf hostap.tar
|
|
|
+ mv hostap alt-wpa_supplicant
|
|
|
+ mv wpa_supplicant.config alt-wpa_supplicant/wpa_supplicant/.config
|
|
|
+ tar xf hostap.tar
|
|
|
+ mv hostap alt-hostapd
|
|
|
+ cp hostapd.config alt-hostapd/hostapd/.config
|
|
|
+ tar xf hostap.tar
|
|
|
+ mv hostap alt-hostapd-as
|
|
|
+ mv hostapd.config alt-hostapd-as/hostapd/.config
|
|
|
+ rm hostap.tar
|
|
|
+
|
|
|
+ cd /tmp/logs/alt-wpa_supplicant/wpa_supplicant
|
|
|
+ echo "Building wpa_supplicant"
|
|
|
+ make -j8 > /dev/null
|
|
|
+
|
|
|
+ cd /tmp/logs/alt-hostapd/hostapd
|
|
|
+ echo "Building hostapd"
|
|
|
+ make -j8 hostapd > /dev/null
|
|
|
+
|
|
|
+ cd /tmp/logs/alt-hostapd-as/hostapd
|
|
|
+ echo "Building hostapd/hlr_auc_gw (AS)"
|
|
|
+ make -j8 hostapd hlr_auc_gw > /dev/null
|
|
|
+
|
|
|
+ cd $DIR
|
|
|
+
|
|
|
+ mv /tmp/logs/alt-wpa_supplicant $LOGDIR
|
|
|
+ mv /tmp/logs/alt-hostapd $LOGDIR
|
|
|
+ mv /tmp/logs/alt-hostapd-as $LOGDIR
|
|
|
+else
|
|
|
+ CODECOV=no
|
|
|
+fi
|
|
|
+
|
|
|
+echo "Starting test run in a virtual machine"
|
|
|
+
|
|
|
kvm \
|
|
|
-kernel $KERNEL -smp 4 \
|
|
|
$KVMARGS -m $MEMORY -nographic \
|
|
@@ -53,12 +107,42 @@ kvm \
|
|
|
-monitor null -serial stdio -serial file:$LOGDIR/console \
|
|
|
-append "mac80211_hwsim.channels=$CHANNELS mac80211_hwsim.radios=5 init=$CMD testdir=$TESTDIR console=$KVMOUT root=/dev/root rootflags=trans=virtio,version=9p2000.u ro rootfstype=9p EPATH=$EPATH ARGS=$*"
|
|
|
|
|
|
-echo LOGDIR=$LOGDIR
|
|
|
+if [ $CODECOV = "yes" ]; then
|
|
|
+ mv $LOGDIR/alt-wpa_supplicant /tmp/logs
|
|
|
+ mv $LOGDIR/alt-hostapd /tmp/logs
|
|
|
+ mv $LOGDIR/alt-hostapd-as /tmp/logs
|
|
|
+
|
|
|
+ echo "Generating code coverage report for wpa_supplicant"
|
|
|
+ cd /tmp/logs/alt-wpa_supplicant/wpa_supplicant
|
|
|
+ lcov -c -d .. > lcov.info 2> lcov.log
|
|
|
+ genhtml -t "wpa_supplicant hwsim test run $DATE" lcov.info --output-directory $LOGDIR/lcov-wpa_supplicant >> lcov.log 2>&1
|
|
|
+ mv lcov.info lcov.log $LOGDIR/lcov-wpa_supplicant
|
|
|
+
|
|
|
+ echo "Generating code coverage report for hostapd"
|
|
|
+ cd /tmp/logs/alt-hostapd/hostapd
|
|
|
+ lcov -c -d .. > lcov.info 2> lcov.log
|
|
|
+ genhtml -t "hostapd hwsim test run $DATE" lcov.info --output-directory $LOGDIR/lcov-hostapd >> lcov.log 2>&1
|
|
|
+ mv lcov.info lcov.log $LOGDIR/lcov-hostapd
|
|
|
+
|
|
|
+ echo "Generating code coverage report for hostapd/hlr_auc_gw (AS)"
|
|
|
+ cd /tmp/logs/alt-hostapd-as/hostapd
|
|
|
+ lcov -c -d .. > lcov.info 2> lcov.log
|
|
|
+ genhtml -t "hostapd/hlr_auc_gw (AS) hwsim test run $DATE" lcov.info --output-directory $LOGDIR/lcov-hostapd-as >> lcov.log 2>&1
|
|
|
+ mv lcov.info lcov.log $LOGDIR/lcov-hostapd-as
|
|
|
+
|
|
|
+ cd $DIR
|
|
|
+ rm -r /tmp/logs/alt-wpa_supplicant
|
|
|
+ rm -r /tmp/logs/alt-hostapd
|
|
|
+ rm -r /tmp/logs/alt-hostapd-as
|
|
|
+ rmdir /tmp/logs
|
|
|
+fi
|
|
|
|
|
|
-if [ -d $LOGDIR/gcov ]; then
|
|
|
- echo "Move gcov data files from vm logdir to build directories"
|
|
|
- for i in $LOGDIR/gcov/*.gcda; do
|
|
|
- file=`basename $i | sed "s/.gcda$//"`
|
|
|
- find ../../.. -name $file.gcno | sed s/.gcno/.gcda/ | xargs mv $i
|
|
|
- done
|
|
|
+echo
|
|
|
+echo "Test run completed"
|
|
|
+echo "Logfiles are at $LOGDIR"
|
|
|
+if [ $CODECOV = "yes" ]; then
|
|
|
+ echo "Code coverage reports:"
|
|
|
+ echo "wpa_supplicant: file://$LOGDIR/lcov-wpa_supplicant/index.html"
|
|
|
+ echo "hostapd: file://$LOGDIR/lcov-hostapd/index.html"
|
|
|
+ echo "hostapd/hlr_auc_gw (AS): file://$LOGDIR/lcov-hostapd-as/index.html"
|
|
|
fi
|