[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 1/3] automation: Add arm32 dom0less testing
On Mon, 13 Feb 2023, Michal Orzel wrote: > At the moment, we only perform a single arm32 test in our CI, checking > whether dom0 boots successfully or not. This is mostly because we do not > have any arm32 runners and we only execute a hypervisor only build. > > In order not to leave the arm32 testing in such a poor state, add a > script qemu-smoke-dom0less-arm32.sh to start testing true dom0less > configuration, in which case we do not need a dom0 with a toolstack. > > The script is mostly based on the one used for dom0 arm32 testing as well > as the one used for dom0less arm64 testing. We obtain Debian Bullseye > kernel and Alpine Linux busybox-based rootfs. Depending on the test > variant, we prepare a test case contained within domU_check variable, > that will be executed as part of /init script. > > Signed-off-by: Michal Orzel <michal.orzel@xxxxxxx> > --- > automation/gitlab-ci/test.yaml | 16 ++++ > .../scripts/qemu-smoke-dom0less-arm32.sh | 89 +++++++++++++++++++ > 2 files changed, 105 insertions(+) > create mode 100755 automation/scripts/qemu-smoke-dom0less-arm32.sh > > diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml > index ce543ef5c0ef..84ab1fee50a4 100644 > --- a/automation/gitlab-ci/test.yaml > +++ b/automation/gitlab-ci/test.yaml > @@ -210,6 +210,22 @@ qemu-smoke-dom0-arm32-gcc-debug: > - *arm32-test-needs > - debian-unstable-gcc-arm32-debug > > +qemu-smoke-dom0less-arm32-gcc: > + extends: .qemu-arm32 > + script: > + - ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee ${LOGFILE} > + needs: > + - *arm32-test-needs > + - debian-unstable-gcc-arm32 > + > +qemu-smoke-dom0less-arm32-gcc-debug: > + extends: .qemu-arm32 > + script: > + - ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee ${LOGFILE} > + needs: > + - *arm32-test-needs > + - debian-unstable-gcc-arm32-debug > + > qemu-alpine-x86_64-gcc: > extends: .qemu-x86-64 > script: > diff --git a/automation/scripts/qemu-smoke-dom0less-arm32.sh > b/automation/scripts/qemu-smoke-dom0less-arm32.sh > new file mode 100755 > index 000000000000..c81529cbbfd0 > --- /dev/null > +++ b/automation/scripts/qemu-smoke-dom0less-arm32.sh > @@ -0,0 +1,89 @@ > +#!/bin/bash > + > +set -ex > + > +test_variant=$1 > + > +cd binaries > +# Use the kernel from Debian > +curl --fail --silent --show-error --location --output vmlinuz > https://deb.debian.org/debian/dists/bullseye/main/installer-armhf/current/images/netboot/vmlinuz > +# Use a tiny initrd based on busybox from Alpine Linux > +curl --fail --silent --show-error --location --output initrd.tar.gz > https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/armhf/alpine-minirootfs-3.15.1-armhf.tar.gz > + > +if [ -z "${test_variant}" ]; then > + passed="generic test passed" > + domU_check=" > +echo \"${passed}\" > +" > +fi > + > +# domU rootfs > +mkdir rootfs > +cd rootfs > +tar xvzf ../initrd.tar.gz > +echo "#!/bin/sh > + > +mount -t proc proc /proc > +mount -t sysfs sysfs /sys > +mount -t devtmpfs devtmpfs /dev > +${domU_check} > +/bin/sh" > init > +chmod +x init > +find . | cpio -H newc -o | gzip > ../initrd.gz > +cd .. > + > +# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded > +curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom > +./qemu-system-arm \ > + -machine virt \ > + -machine virtualization=true \ > + -smp 4 \ > + -m 1024 \ > + -serial stdio \ > + -monitor none \ > + -display none \ > + -machine dumpdtb=virt.dtb > + > +# ImageBuilder > +echo 'MEMORY_START="0x40000000" > +MEMORY_END="0x80000000" > + > +DEVICE_TREE="virt.dtb" > +XEN="xen" > +XEN_CMD="console=dtuart bootscrub=0" > + > +DOMU_KERNEL[0]="vmlinuz" > +DOMU_RAMDISK[0]="initrd.gz" > +DOMU_MEM[0]="512" > +NUM_DOMUS=1 Since we are at it I would prefer to create both dom0 and a domU to make the test more interesting. The following works on gitlab-ci on top of this patch. Would you be up for adding it to this patch? diff --git a/automation/scripts/qemu-smoke-dom0less-arm32.sh b/automation/scripts/qemu-smoke-dom0less-arm32.sh index b420ee444f..6e85bca21c 100755 --- a/automation/scripts/qemu-smoke-dom0less-arm32.sh +++ b/automation/scripts/qemu-smoke-dom0less-arm32.sh @@ -60,7 +60,7 @@ curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom -machine virt \ -machine virtualization=true \ -smp 4 \ - -m 1024 \ + -m 2048 \ -serial stdio \ -monitor none \ -display none \ @@ -68,11 +68,14 @@ curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom # ImageBuilder echo 'MEMORY_START="0x40000000" -MEMORY_END="0x80000000" +MEMORY_END="0xC0000000" DEVICE_TREE="virt.dtb" XEN="xen" -XEN_CMD="console=dtuart bootscrub=0" +DOM0_KERNEL="vmlinuz" +DOM0_RAMDISK="initrd.gz" +DOM0_CMD="console=hvc0 earlyprintk clk_ignore_unused root=/dev/ram0 rdinit=/bin/sh" +XEN_CMD="console=dtuart dom0_mem=512M bootscrub=0" DOMU_KERNEL[0]="vmlinuz" DOMU_RAMDISK[0]="initrd.gz" @@ -105,7 +108,7 @@ timeout -k 1 240 \ -machine virt \ -machine virtualization=true \ -smp 4 \ - -m 1024 \ + -m 2048 \ -serial stdio \ -monitor none \ -display none \
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |