Step-by-step guide for setting up hostapd/wpa_supplicant test framework (VM) ---------------------------------------------------------------------------- This document can be used as a quick guide for getting started with hostapd/wpa_supplicant test framework with mac80211_hwsim. While the example here uses Ubuntu 16.04.1 server to have a list of exact steps, there are no requirements for using that specific distribution in the testing setup. The steps here describe how to run a guest VM for testing on a Linux host system. Install Ubuntu Server 16.04.1 as the host system for VMs - download installation image, e.g., http://releases.ubuntu.com/16.04.1/ubuntu-16.04.1-server-amd64.iso - install the host system with default settings - boot to the installed system - update the installed packages: sudo apt update sudo apt upgrade Install the prerequisite packages that may not have been installed by default # kvm for running the VM guests sudo apt install qemu-kvm # build tools sudo apt install build-essential git libpcap-dev libsqlite3-dev binutils-dev \ bc pkg-config libssl-dev libiberty-dev libdbus-1-dev \ libnl-3-dev libnl-genl-3-dev libnl-route-3-dev # tools used be the test scripts sudo apt install python-minimal python-crypto python-pyrad python-netifaces \ python-dbus python-gobject python-openssl bridge-utils ebtables tshark Enable kvm use for the user sudo adduser $USER kvm Download a snapshot of the hostap.git repository and build the programs cd git clone git://w1.fi/hostap.git cd hostap/tests/hwsim ./build.sh cd vm cat > vm-config <<EOF KERNELDIR=~/wireless-testing MEMORY=512 KVMARGS="-cpu host" EOF Build a Linux kernel for testing cd git clone git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-testing.git cd wireless-testing cp ~/hostap/tests/hwsim/vm/kernel-config .config make oldconfig make -j8 Setup is now ready for testing. You can run a quick test to confirm that things work as expected: cd ~/hostap/tests/hwsim/vm ./vm-run ap_open This should print out following style results: Starting test run in a virtual machine ./run-all.sh: passing the following args to run-tests.py: ap_open START ap_open 1/1 PASS ap_open 0.924019 2017-01-28 20:20:12.137717 passed all 1 test case(s) ALL-PASSED Test run completed Logfiles are at /tmp/hwsim-test-logs/1485634801 (If that "PASS ap_open" line does not show up, something unexpected has happened and the setup is not in working condition.) To run all available test cases in 7 parallel VMs, you can run following: cd ~/hostap/tests/hwsim/vm ./parallel-vm.py 7