This depends on a future change in mbuto to accept external profile files. Add a file defining what we need for tests and demos, dropping udhcpc, plus udhcpc and dhclient scripts as they're not needed anymore, and switch to it. Suggested-by: David Gibson <david(a)gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio(a)redhat.com> --- test/demo/passt | 2 +- test/lib/setup | 2 +- test/passt.mbuto | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100755 test/passt.mbuto diff --git a/test/demo/passt b/test/demo/passt index 0ece04f..b67ed26 100644 --- a/test/demo/passt +++ b/test/demo/passt @@ -56,7 +56,7 @@ say Let's create a small initramfs image for the guest. guest cd __TEMPDIR__ guest git clone git://mbuto.sh/mbuto guest cd mbuto -guest ./mbuto -f passt.img -p passt -c lz4 +guest ./mbuto -f passt.img -p __TEMPDIR__/passt/test/passt.mbuto -c lz4 sleep 2 nl diff --git a/test/lib/setup b/test/lib/setup index 0b6d915..cfbac3c 100755 --- a/test/lib/setup +++ b/test/lib/setup @@ -34,7 +34,7 @@ setup_passt() { pane_run GUEST "git -C ${__mbuto_dir} clone git://mbuto.sh/mbuto" pane_status GUEST - pane_run GUEST "${__mbuto_dir}/mbuto/mbuto -p passt -c lz4 -f mbuto.img" + pane_run GUEST "${__mbuto_dir}/mbuto/mbuto -p test/passt.mbuto -c lz4 -f mbuto.img" pane_status GUEST rm -rf "${__mbuto_dir}" diff --git a/test/passt.mbuto b/test/passt.mbuto new file mode 100755 index 0000000..5cafb30 --- /dev/null +++ b/test/passt.mbuto @@ -0,0 +1,34 @@ +#!/bin/sh +# +# SPDX-License-Identifier: AGPL-3.0-or-later +# +# PASST - Plug A Simple Socket Transport +# for qemu/UNIX domain socket mode +# +# test/passt.mbuto - mbuto (https://mbuto.sh) profile for test images +# +# Copyright (c) 2022 Red Hat GmbH +# Author: Stefano Brivio <sbrivio(a)redhat.com> + +PROGS="${PROGS:-ash,dash,bash ip mount ls insmod mkdir ln cat chmod lsmod + modprobe find grep mknod mv rm umount jq iperf3 dhclient busybox logger + sed tr chown sipcalc cut md5sum nc dd strace ping tail killall sleep + sysctl nproc tcp_rr tcp_crr udp_rr which tee seq bc}" + +KMODS="${KMODS:- virtio_net virtio_pci}" + +LINKS="${LINKS:- + ash,dash,bash /init + ash,dash,bash /bin/sh + ash,dash,bash /usr/bin/bash}" + +DIRS="${DIRS} /tmp" + +FIXUP="${FIXUP} + :> /etc/fstab + sh +m +" + +OUTPUT="KERNEL=__KERNEL__ +INITRD=__INITRD__ +" -- 2.35.1
On Thu, Jun 23, 2022 at 02:46:35PM +0200, Stefano Brivio wrote:This depends on a future change in mbuto to accept external profile files. Add a file defining what we need for tests and demos, dropping udhcpc, plus udhcpc and dhclient scripts as they're not needed anymore, and switch to it. Suggested-by: David Gibson <david(a)gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio(a)redhat.com>I made some hacks to test this with a locally patched mbuto and it seems to be working for me now. I quickly run into other problems with the passt tests, but it's a good step. So, Tested-by: David Gibson <david(a)gibson.dropbear.id.au>--- test/demo/passt | 2 +- test/lib/setup | 2 +- test/passt.mbuto | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100755 test/passt.mbuto diff --git a/test/demo/passt b/test/demo/passt index 0ece04f..b67ed26 100644 --- a/test/demo/passt +++ b/test/demo/passt @@ -56,7 +56,7 @@ say Let's create a small initramfs image for the guest. guest cd __TEMPDIR__ guest git clone git://mbuto.sh/mbuto guest cd mbuto -guest ./mbuto -f passt.img -p passt -c lz4 +guest ./mbuto -f passt.img -p __TEMPDIR__/passt/test/passt.mbuto -c lz4 sleep 2 nl diff --git a/test/lib/setup b/test/lib/setup index 0b6d915..cfbac3c 100755 --- a/test/lib/setup +++ b/test/lib/setup @@ -34,7 +34,7 @@ setup_passt() { pane_run GUEST "git -C ${__mbuto_dir} clone git://mbuto.sh/mbuto" pane_status GUEST - pane_run GUEST "${__mbuto_dir}/mbuto/mbuto -p passt -c lz4 -f mbuto.img" + pane_run GUEST "${__mbuto_dir}/mbuto/mbuto -p test/passt.mbuto -c lz4 -f mbuto.img" pane_status GUEST rm -rf "${__mbuto_dir}" diff --git a/test/passt.mbuto b/test/passt.mbuto new file mode 100755 index 0000000..5cafb30 --- /dev/null +++ b/test/passt.mbuto @@ -0,0 +1,34 @@ +#!/bin/sh +# +# SPDX-License-Identifier: AGPL-3.0-or-later +# +# PASST - Plug A Simple Socket Transport +# for qemu/UNIX domain socket mode +# +# test/passt.mbuto - mbuto (https://mbuto.sh) profile for test images +# +# Copyright (c) 2022 Red Hat GmbH +# Author: Stefano Brivio <sbrivio(a)redhat.com> + +PROGS="${PROGS:-ash,dash,bash ip mount ls insmod mkdir ln cat chmod lsmod + modprobe find grep mknod mv rm umount jq iperf3 dhclient busybox logger + sed tr chown sipcalc cut md5sum nc dd strace ping tail killall sleep + sysctl nproc tcp_rr tcp_crr udp_rr which tee seq bc}" + +KMODS="${KMODS:- virtio_net virtio_pci}" + +LINKS="${LINKS:- + ash,dash,bash /init + ash,dash,bash /bin/sh + ash,dash,bash /usr/bin/bash}" + +DIRS="${DIRS} /tmp" + +FIXUP="${FIXUP} + :> /etc/fstab + sh +m +" + +OUTPUT="KERNEL=__KERNEL__ +INITRD=__INITRD__ +"-- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
On Thu, 23 Jun 2022 14:46:35 +0200 Stefano Brivio <sbrivio(a)redhat.com> wrote:This depends on a future change in mbuto to accept external profile files. Add a file defining what we need for tests and demos, dropping udhcpc, plus udhcpc and dhclient scripts as they're not needed anymore, and switch to it....I'm not sure that dropping /sbin/dhclient-script is actually correct. David, does dhclient happen to work on Fedora without it? On my environment DHCP tests are broken with this (DHCPv6 works): address, route, MTU and DNS are simply not set in the guest. -- Stefano
On Sat, Jul 02, 2022 at 12:24:00AM +0200, Stefano Brivio wrote:On Thu, 23 Jun 2022 14:46:35 +0200 Stefano Brivio <sbrivio(a)redhat.com> wrote:Uh.. I guess I don't actually know. The fact that mbuto's currently not including the virtio-net driver means I'm not even getting to the point of attempting to dhcp.This depends on a future change in mbuto to accept external profile files. Add a file defining what we need for tests and demos, dropping udhcpc, plus udhcpc and dhclient scripts as they're not needed anymore, and switch to it....I'm not sure that dropping /sbin/dhclient-script is actually correct. David, does dhclient happen to work on Fedora without it?On my environment DHCP tests are broken with this (DHCPv6 works): address, route, MTU and DNS are simply not set in the guest.-- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson