Move the download of mbuto and using it to create a sample initramfs to the asset build makefile, rather than embedding it in the test scripts themselves. The two_guests tests used to use two separate copies of the mbuto image. As an initramfs the mbuto image is strictly readonly though, so that's not necessary. So, also use the same image for both guests. Signed-off-by: David Gibson <david(a)gibson.dropbear.id.au> --- test/.gitignore | 2 ++ test/Makefile | 10 ++++++++-- test/lib/setup | 23 ++++++----------------- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/test/.gitignore b/test/.gitignore index edb2221..895c3ae 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -1,2 +1,4 @@ perf.js test_logs/ +mbuto/ +*.img diff --git a/test/Makefile b/test/Makefile index 02c60a3..b72280d 100644 --- a/test/Makefile +++ b/test/Makefile @@ -5,13 +5,19 @@ # Copyright Red Hat # Author: David Gibson <david(a)gibson.dropbear.id.au> -DOWNLOAD_ASSETS = -LOCAL_ASSETS = +DOWNLOAD_ASSETS = mbuto +LOCAL_ASSETS = mbuto.img ASSETS = $(DOWNLOAD_ASSETS) $(LOCAL_ASSETS) assets: $(ASSETS) +mbuto: + git clone git://mbuto.sh/mbuto + +mbuto.img: passt.mbuto mbuto + ./mbuto/mbuto -p ./$< -c lz4 -f $@ + check: assets ./run diff --git a/test/lib/setup b/test/lib/setup index 97e603c..604cfee 100755 --- a/test/lib/setup +++ b/test/lib/setup @@ -13,6 +13,7 @@ # Copyright (c) 2021 Red Hat GmbH # Author: Stefano Brivio <sbrivio(a)redhat.com> +INITRAMFS="${BASEPATH}/mbuto.img" VCPUS="$( [ $(nproc) -ge 8 ] && echo 6 || echo $(( $(nproc) / 2 + 1 )) )" __mem_kib="$(sed -n 's/MemTotal:[ ]*\([0-9]*\) kB/\1/p' /proc/meminfo)" VMEM="$((${__mem_kib} / 1024 / 4))" @@ -24,21 +25,12 @@ setup_build() { layout_host } -# setup_passt() - Build guest initrd with mbuto, start qemu and passt +# setup_passt() - Start qemu and passt setup_passt() { MODE=passt layout_passt - __mbuto_dir="$(mktemp -d)" - pane_run GUEST "git -C ${__mbuto_dir} clone git://mbuto.sh/mbuto" - pane_status GUEST - - pane_run GUEST "${__mbuto_dir}/mbuto/mbuto -p test/passt.mbuto -c lz4 -f mbuto.img" - pane_status GUEST - - rm -rf "${__mbuto_dir}" - # Ports: # # guest | host @@ -62,7 +54,7 @@ setup_passt() { ' -machine accel=kvm' \ ' -m '${VMEM}' -cpu host -smp '${VCPUS} \ ' -kernel ' "/boot/vmlinuz-$(uname -r)" \ - ' -initrd mbuto.img -nographic -serial stdio' \ + ' -initrd '${INITRAMFS}' -nographic -serial stdio' \ ' -nodefaults' \ ' -append "console=ttyS0 mitigations=off apparmor=0 ' \ 'virtio-net.napi_tx=1"' \ @@ -177,7 +169,7 @@ setup_passt_in_ns() { ' -M accel=kvm:tcg' \ ' -m '${VMEM}' -cpu host -smp '${VCPUS} \ ' -kernel ' "/boot/vmlinuz-$(uname -r)" \ - ' -initrd mbuto.img -nographic -serial stdio' \ + ' -initrd '${INITRAMFS}' -nographic -serial stdio' \ ' -nodefaults' \ ' -append "console=ttyS0 mitigations=off apparmor=0 ' \ 'virtio-net.napi_tx=1"' \ @@ -261,14 +253,11 @@ setup_two_guests() { [ ${TRACE} -eq 1 ] && __opts="${__opts} --trace" pane_run PASST_2 "./passt -f ${__opts} -t 10004 -u 10004" - pane_run GUEST_2 'cp mbuto.img mbuto_2.img' - pane_status GUEST_2 - pane_run GUEST_1 './qrap 5 qemu-system-$(uname -m)' \ ' -M accel=kvm:tcg' \ ' -m '${VMEM}' -cpu host -smp '${VCPUS} \ ' -kernel ' "/boot/vmlinuz-$(uname -r)" \ - ' -initrd mbuto.img -nographic -serial stdio' \ + ' -initrd '${INITRAMFS}' -nographic -serial stdio' \ ' -nodefaults' \ ' -append "console=ttyS0 mitigations=off apparmor=0 ' \ 'virtio-net.napi_tx=1"' \ @@ -278,7 +267,7 @@ setup_two_guests() { ' -M accel=kvm:tcg' \ ' -m '${VMEM}' -cpu host -smp '${VCPUS} \ ' -kernel ' "/boot/vmlinuz-$(uname -r)" \ - ' -initrd mbuto_2.img -nographic -serial stdio' \ + ' -initrd '${INITRAMFS}' -nographic -serial stdio' \ ' -nodefaults' \ ' -append "console=ttyS0 mitigations=off apparmor=0 ' \ 'virtio-net.napi_tx=1"' \ -- 2.36.1