X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=libeap%2Ftests%2Fhwsim%2Fvm%2FREADME;fp=libeap%2Ftests%2Fhwsim%2Fvm%2FREADME;h=8fef72c862abb28826fb5efb9fa0a5ce34b3db54;hb=4f319dde67a76fe0aaf33f6d2788968012584ada;hp=0000000000000000000000000000000000000000;hpb=ed09b5e64dd485851310307979d5eed14678087b;p=mech_eap.git diff --git a/libeap/tests/hwsim/vm/README b/libeap/tests/hwsim/vm/README new file mode 100644 index 0000000..8fef72c --- /dev/null +++ b/libeap/tests/hwsim/vm/README @@ -0,0 +1,66 @@ +These scripts allow you to run the hwsim tests inside a KVM virtual machine. + +To set it up, first compile a kernel with the kernel-config file as the +.config. You can adjust it as needed, the configuration is for a 64-bit +x86 system and should be close to minimal. The architecture must be the +same as your host since the host's filesystem is used. + +Install the required tools: at least 'kvm', if you want tracing trace-cmd, +valgrind if you want, etc. + +Compile the hwsim tests as per the instructions given, you may have to +install some extra development packages (e.g. binutils-dev for libbfd). + +Create a vm-config file and put the KERNELDIR option into it (see the +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. + +To speed up testing, it is possible to run multiple VMs concurrently and +split the test cases between all the VMs. If the host system has enough +memory and CPU resources, this can significantly speed up the full test +cycle. For example, a 4 core system with 4 GB of RAM can easily run 8 +parallel VMs (assuming valgrind is not used with its higher memory +requirements). This can be run with: + +./parallel-vm.sh [arguments..] + + +-------------------------------------------------------------------------------- + +Code Coverage Analysis for user space code + +Code coverage for wpa_supplicant and hostapd can be generated from the +test run with following command line: + +./vm-run.sh --codecov [other arguments..] + +This builds a separate copies of wpa_supplicant and hostapd into a +directory that is writable from the virtual machine to collect the gcov +data. lcov is then used to prepare the reports at the end of the test +run. + + +Code Coverage Analysis for kernel code + +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/ +lcov -b -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.)