#
8e25c02b |
| 16-Sep-2022 |
Jason A. Donenfeld <Jason@zx2c4.com> |
wireguard: selftests: do not install headers on UML
Since 1b620d539ccc ("kbuild: disable header exports for UML in a straightforward way"), installing headers fails on UML, so just disable installin
wireguard: selftests: do not install headers on UML
Since 1b620d539ccc ("kbuild: disable header exports for UML in a straightforward way"), installing headers fails on UML, so just disable installing them, since they're not needed anyway on the architecture.
Fixes: b438b3b8d6e6 ("wireguard: selftests: support UML") Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
b438b3b8 |
| 02-Aug-2022 |
Jason A. Donenfeld <Jason@zx2c4.com> |
wireguard: selftests: support UML
This shoud open up various possibilities like time travel execution, and is also just another platform to help shake out bugs.
Cc: Johannes Berg <johannes@sipsolut
wireguard: selftests: support UML
This shoud open up various possibilities like time travel execution, and is also just another platform to help shake out bugs.
Cc: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
b83fdcd9 |
| 07-Jul-2022 |
Jason A. Donenfeld <Jason@zx2c4.com> |
wireguard: selftests: use microvm on x86
This makes for faster tests, faster compile time, and allows us to ditch ACPI finally.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Ja
wireguard: selftests: use microvm on x86
This makes for faster tests, faster compile time, and allows us to ditch ACPI finally.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
1a087eec |
| 07-Jul-2022 |
Jason A. Donenfeld <Jason@zx2c4.com> |
wireguard: selftests: always call kernel makefile
These selftests are used for much more extensive changes than just the wireguard source files. So always call the kernel's build file, which will do
wireguard: selftests: always call kernel makefile
These selftests are used for much more extensive changes than just the wireguard source files. So always call the kernel's build file, which will do something or nothing after checking the whole tree, per usual.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
1f2f341a |
| 07-Jul-2022 |
Jason A. Donenfeld <Jason@zx2c4.com> |
wireguard: selftests: use virt machine on m68k
This should be a bit more stable hopefully.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
#
17b0128a |
| 10-Jun-2022 |
Jason A. Donenfeld <Jason@zx2c4.com> |
wireguard: selftests: use maximum cpu features and allow rng seeding
By forcing the maximum CPU that QEMU has available, we expose additional capabilities, such as the RNDR instruction, which increa
wireguard: selftests: use maximum cpu features and allow rng seeding
By forcing the maximum CPU that QEMU has available, we expose additional capabilities, such as the RNDR instruction, which increases test coverage. This then allows the CI to skip the fake seeding step in some cases. Also enable STRICT_KERNEL_RWX to catch issues related to early jump labels when the RNG is initialized at boot.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
show more ...
|
#
a6b8ea91 |
| 04-May-2022 |
Jason A. Donenfeld <Jason@zx2c4.com> |
wireguard: selftests: bump package deps
Use newer, more reliable package dependencies. These should hopefully reduce flakes. However, we keep the old iputils package, as it accumulated bugs after re
wireguard: selftests: bump package deps
Use newer, more reliable package dependencies. These should hopefully reduce flakes. However, we keep the old iputils package, as it accumulated bugs after resulting in flakes on slow machines.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
d261ba6a |
| 04-May-2022 |
Jason A. Donenfeld <Jason@zx2c4.com> |
wireguard: selftests: restore support for ccache
When moving to non-system toolchains, we inadvertantly killed the ability to use ccache. So instead, build ccache support into the test harness direc
wireguard: selftests: restore support for ccache
When moving to non-system toolchains, we inadvertantly killed the ability to use ccache. So instead, build ccache support into the test harness directly.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
d5d9b29b |
| 04-May-2022 |
Jason A. Donenfeld <Jason@zx2c4.com> |
wireguard: selftests: use newer toolchains to fill out architectures
Rather than relying on the system to have cross toolchains available, simply download musl.cc's ones and use that libc.so, and th
wireguard: selftests: use newer toolchains to fill out architectures
Rather than relying on the system to have cross toolchains available, simply download musl.cc's ones and use that libc.so, and then we use it to fill in a few missing platforms, such as riscv64, riscv64, powerpc64, and s390x.
Since riscv doesn't have a second serial port in its device description, we have to use virtio's vport. This is actually the same situation on ARM, but we were previously hacking QEMU up to work around this, which required a custom QEMU. Instead just do the vport trick on ARM too.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
ee3c1aa3 |
| 20-May-2020 |
Jason A. Donenfeld <Jason@zx2c4.com> |
wireguard: selftests: use newer iproute2 for gcc-10
gcc-10 switched to defaulting to -fno-common, which broke iproute2-5.4. This was fixed in iproute-5.6, so switch to that. Because we're after a st
wireguard: selftests: use newer iproute2 for gcc-10
gcc-10 switched to defaulting to -fno-common, which broke iproute2-5.4. This was fixed in iproute-5.6, so switch to that. Because we're after a stable testing surface, we generally don't like to bump these unnecessarily, but in this case, being able to actually build is a basic necessity.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
551599ed |
| 19-Mar-2020 |
Jason A. Donenfeld <Jason@zx2c4.com> |
wireguard: selftests: test using new 64-bit time_t
In case this helps expose bugs with the newer 64-bit time_t types, we do our testing with the newer musl that supports this as well as CONFIG_COMPA
wireguard: selftests: test using new 64-bit time_t
In case this helps expose bugs with the newer 64-bit time_t types, we do our testing with the newer musl that supports this as well as CONFIG_COMPAT_32BIT_TIME=n. This matters to us, since wireguard does in fact deal with timestamps.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
04ddf120 |
| 14-Feb-2020 |
Jason A. Donenfeld <Jason@zx2c4.com> |
wireguard: selftests: reduce complexity and fix make races
This gives us fewer dependencies and shortens build time, fixes up some hash checking race conditions, and also fixes missing directory cre
wireguard: selftests: reduce complexity and fix make races
This gives us fewer dependencies and shortens build time, fixes up some hash checking race conditions, and also fixes missing directory creation that caused issues on massively parallel builds.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
9a69a4c8 |
| 02-Jan-2020 |
Jason A. Donenfeld <Jason@zx2c4.com> |
wireguard: selftests: remove ancient kernel compatibility code
Quite a bit of the test suite was designed to work with ancient kernels. Thankfully we no longer have to deal with this. This commit up
wireguard: selftests: remove ancient kernel compatibility code
Quite a bit of the test suite was designed to work with ancient kernels. Thankfully we no longer have to deal with this. This commit updates things that we can finally update and removes things that we can finally remove, to avoid the build-up of the last several years as a result of having to support ancient kernels. We can finally rely on suppress_ prefixlength being available. On the build side of things, the no-PIE hack is no longer required, and we can bump some of the tools, repair our m68k and i686-kvm support, and get better coverage of the static branches used in the crypto lib and in udp_tunnel.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
65d88d04 |
| 15-Dec-2019 |
Jason A. Donenfeld <Jason@zx2c4.com> |
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 i
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>
show more ...
|