wireguard: selftests: import harness makefile for test suite
authorJason A. Donenfeld <Jason@zx2c4.com>
Sun, 15 Dec 2019 21:08:00 +0000 (22:08 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 17 Dec 2019 03:22:22 +0000 (19:22 -0800)
commit65d88d04114bca7d85faebd5fed61069cb2b632c
treef3cd01bc248f150463f81c332fbf472b00086ed2
parentc5dea815834c7d2e9fc633785455bc428b7a1956
wireguard: selftests: import harness makefile for test suite

WireGuard has been using this on build.wireguard.com for the last
several years with considerable success. It allows for very quick and
iterative development cycles, and supports several platforms.

To run the test suite on your current platform in QEMU:

  $ make -C tools/testing/selftests/wireguard/qemu -j$(nproc)

To run it with KASAN and such turned on:

  $ DEBUG_KERNEL=yes make -C tools/testing/selftests/wireguard/qemu -j$(nproc)

To run it emulated for another platform in QEMU:

  $ ARCH=arm make -C tools/testing/selftests/wireguard/qemu -j$(nproc)

At the moment, we support aarch64_be, aarch64, arm, armeb, i686, m68k,
mips64, mips64el, mips, mipsel, powerpc64le, powerpc, and x86_64.

The system supports incremental rebuilding, so it should be very fast to
change a single file and then test it out and have immediate feedback.

This requires for the right toolchain and qemu to be installed prior.
I've had success with those from musl.cc.

This is tailored for WireGuard at the moment, though later projects
might generalize it for other network testing.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 files changed:
tools/testing/selftests/wireguard/qemu/.gitignore [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/Makefile [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/arch/aarch64.config [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/arch/aarch64_be.config [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/arch/arm.config [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/arch/armeb.config [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/arch/i686.config [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/arch/m68k.config [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/arch/mips.config [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/arch/mips64.config [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/arch/mips64el.config [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/arch/mipsel.config [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/arch/powerpc.config [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/arch/powerpc64le.config [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/arch/x86_64.config [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/debug.config [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/init.c [new file with mode: 0644]
tools/testing/selftests/wireguard/qemu/kernel.config [new file with mode: 0644]