tests: VM test script: Copy gcov data if present

If there's code coverage analysis data, copy it out of the VM
to be able to analyse it later. Also add a description to the
README file about how to use it.

Signed-hostap: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Johannes Berg 2013-12-05 23:22:10 +01:00 committed by Jouni Malinen
parent f7579502a6
commit 667a158d08
2 changed files with 30 additions and 0 deletions

View file

@ -17,3 +17,28 @@ vm-run.sh script). If you want valgrind, also increase the memory size.
Now you can run the vm-run.sh script and it will execute the tests using Now you can run the vm-run.sh script and it will execute the tests using
your system's root filesystem (read-only) inside the VM. The options you your system's root filesystem (read-only) inside the VM. The options you
give it are passed through to run-all.sh, see there. give it are passed through to run-all.sh, see there.
--------------------------------------------------------------------------------
Code Coverage Analysis
In order to do code coverage analysis, reconfigure the kernel to include
CONFIG_GCOV_KERNEL=y
CONFIG_GCOV_PROFILE_ALL=y
Note that for gcc 4.7, kernel version 3.13-rc1 or higher is required.
The scripts inside the VM will automatically copy the gcov data out of the
VM into the logs directory. To post-process this data, you'll want to use
lcov and run
cd /tmp/hwsim-test-logs/<timestamp>
lcov -c -d gcov/ > gcov/data
genhtml -o html/ gcov/data
Then open html/index.html in your browser.
Note that in this case you need to keep your build and source directories
across the test run (otherwise, it's safe to only keep the kernel image.)

View file

@ -68,6 +68,11 @@ else
cd $TESTDIR cd $TESTDIR
./run-all.sh $ARGS >/dev/ttyS0 2>&1 ./run-all.sh $ARGS >/dev/ttyS0 2>&1
if test -d /sys/kernel/debug/gcov ; then
cp -ar /sys/kernel/debug/gcov /tmp/logs/
# these are broken as they're updated while being read ...
find /tmp/logs/gcov/ -wholename '*kernel/gcov/*' -print0 | xargs -0 rm
fi
#bash </dev/ttyS0 >/dev/ttyS0 2>&1 #bash </dev/ttyS0 >/dev/ttyS0 2>&1
fi fi