[PATCH] vm test script: copy gcov data if present
Johannes Berg
johannes
Thu Dec 5 14:22:10 PST 2013
From: Johannes Berg <johannes.berg at intel.com>
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 at intel.com>
---
tests/hwsim/vm/README | 25 +++++++++++++++++++++++++
tests/hwsim/vm/inside.sh | 5 +++++
2 files changed, 30 insertions(+)
diff --git a/tests/hwsim/vm/README b/tests/hwsim/vm/README
index 53d8097..ba124ef 100644
--- a/tests/hwsim/vm/README
+++ b/tests/hwsim/vm/README
@@ -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
your system's root filesystem (read-only) inside the VM. The options you
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.)
diff --git a/tests/hwsim/vm/inside.sh b/tests/hwsim/vm/inside.sh
index 5abaef4..5c33ecd 100755
--- a/tests/hwsim/vm/inside.sh
+++ b/tests/hwsim/vm/inside.sh
@@ -74,6 +74,11 @@ else
cd $TESTDIR
./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
fi
--
1.8.4.rc3
More information about the Hostap
mailing list