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:
parent
f7579502a6
commit
667a158d08
2 changed files with 30 additions and 0 deletions
|
@ -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.)
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue