Skip to content

Commit

Permalink
wireguard: selftests: support UML
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jason A. Donenfeld authored and Jakub Kicinski committed Aug 2, 2022
1 parent c31b14d commit b438b3b
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
17 changes: 16 additions & 1 deletion tools/testing/selftests/wireguard/qemu/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -248,8 +248,13 @@ QEMU_MACHINE := -cpu host,accel=kvm -machine s390-ccw-virtio -append $(KERNEL_CM
else
QEMU_MACHINE := -cpu max -machine s390-ccw-virtio -append $(KERNEL_CMDLINE)
endif
else ifeq ($(ARCH),um)
CHOST := $(HOST_ARCH)-linux-musl
KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/vmlinux
KERNEL_ARCH := um
KERNEL_CMDLINE := $(shell sed -n 's/CONFIG_CMDLINE=\(.*\)/\1/p' arch/um.config)
else
$(error I only build: x86_64, i686, arm, armeb, aarch64, aarch64_be, mips, mipsel, mips64, mips64el, powerpc64, powerpc64le, powerpc, m68k, riscv64, riscv32, s390x)
$(error I only build: x86_64, i686, arm, armeb, aarch64, aarch64_be, mips, mipsel, mips64, mips64el, powerpc64, powerpc64le, powerpc, m68k, riscv64, riscv32, s390x, um)
endif

TOOLCHAIN_FILENAME := $(CHOST)-cross.tgz
Expand All @@ -262,7 +267,9 @@ $(eval $(call file_download,$(TOOLCHAIN_FILENAME),$(TOOLCHAIN_DIR),,$(DISTFILES_
STRIP := $(CHOST)-strip
CROSS_COMPILE_FLAG := --build=$(CBUILD) --host=$(CHOST)
$(info Building for $(CHOST) using $(CBUILD))
ifneq ($(ARCH),um)
export CROSS_COMPILE := $(CHOST)-
endif
export PATH := $(TOOLCHAIN_PATH)/bin:$(PATH)
export CC := $(CHOST)-gcc
CCACHE_PATH := $(shell which ccache 2>/dev/null)
Expand All @@ -279,6 +286,7 @@ comma := ,
build: $(KERNEL_BZIMAGE)
qemu: $(KERNEL_BZIMAGE)
rm -f $(BUILD_PATH)/result
ifneq ($(ARCH),um)
timeout --foreground 20m qemu-system-$(QEMU_ARCH) \
-nodefaults \
-nographic \
Expand All @@ -291,6 +299,13 @@ qemu: $(KERNEL_BZIMAGE)
-no-reboot \
-monitor none \
-kernel $<
else
timeout --foreground 20m $< \
$(KERNEL_CMDLINE) \
mem=$$(grep -q CONFIG_DEBUG_KMEMLEAK=y $(KERNEL_BUILD_PATH)/.config && echo 1G || echo 256M) \
noreboot \
con1=fd:51 51>$(BUILD_PATH)/result </dev/null 2>&1 | cat
endif
grep -Fq success $(BUILD_PATH)/result

$(BUILD_PATH)/init-cpio-spec.txt: $(TOOLCHAIN_PATH)/.installed $(BUILD_PATH)/init
Expand Down
3 changes: 3 additions & 0 deletions tools/testing/selftests/wireguard/qemu/arch/um.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
CONFIG_64BIT=y
CONFIG_CMDLINE="wg.success=tty1 panic_on_warn=1"
CONFIG_FRAME_WARN=1280

0 comments on commit b438b3b

Please sign in to comment.