[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 1/3] automation: Add arm32 dom0less testing
Hi Stefano, On 14/02/2023 01:37, Stefano Stabellini wrote: > > > 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? This is exactly what I had in my initial approach. However, because this would not differ much from what we have in dom0 arm32 testing, I decided to go for true dom0less configuration. I'm ok to always boot dom0less domU with dom0. In this case I might add an additional test to run a true dom0less as well. ~Michal
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |