[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v1 2/4] CI: switch x86 EFI smoke test runner to qemu-xtf.sh
On Wed, Apr 16, 2025 at 05:14:41PM -0700, Stefano Stabellini wrote: > On Wed, 16 Apr 2025, dmkhn@xxxxxxxxx wrote: > > From: Denis Mukhin <dmukhin@xxxxxxxx> > > > > Use qemu-xtf.sh for qemu-smoke-x86-64-gcc-efi job. > > > > Lead time is reduced a bit since not all XTF code base is built, just the > > required test. > > > > Signed-off-by: Denis Mukhin <dmukhin@xxxxxxxx> > > --- > > automation/gitlab-ci/test.yaml | 2 +- > > .../include/configs/xtf-x86-64-efi-config | 0 > > automation/scripts/include/xtf-x86-64-efi | 52 +++++++++++++++++++ > > automation/scripts/qemu-smoke-x86-64-efi.sh | 43 --------------- > > 4 files changed, 53 insertions(+), 44 deletions(-) > > create mode 100644 automation/scripts/include/configs/xtf-x86-64-efi-config > > create mode 100644 automation/scripts/include/xtf-x86-64-efi > > delete mode 100755 automation/scripts/qemu-smoke-x86-64-efi.sh > > > > diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml > > index 3adc841335..ca1e4eb528 100644 > > --- a/automation/gitlab-ci/test.yaml > > +++ b/automation/gitlab-ci/test.yaml > > @@ -687,7 +687,7 @@ qemu-smoke-x86-64-clang-pvh: > > qemu-smoke-x86-64-gcc-efi: > > extends: .qemu-smoke-x86-64 > > script: > > - - ./automation/scripts/qemu-smoke-x86-64-efi.sh pv 2>&1 | tee > > ${LOGFILE} > > + - ./automation/scripts/qemu-xtf.sh x86-64-efi hvm64 example 2>&1 | tee > > ${LOGFILE} > > needs: > > - debian-12-x86_64-gcc-debug > > > > diff --git a/automation/scripts/include/configs/xtf-x86-64-efi-config > > b/automation/scripts/include/configs/xtf-x86-64-efi-config > > new file mode 100644 > > index 0000000000..e69de29bb2 > > diff --git a/automation/scripts/include/xtf-x86-64-efi > > b/automation/scripts/include/xtf-x86-64-efi > > new file mode 100644 > > index 0000000000..79622d5a6c > > --- /dev/null > > +++ b/automation/scripts/include/xtf-x86-64-efi > > @@ -0,0 +1,52 @@ > > +#!/bin/bash > > +# > > +# XTF test utilities (x86_64, EFI). > > +# > > + > > +# Arch-specific environment overrides. > > +function xtf_arch_prepare() > > +{ > > + export FW_PREFIX="${FW_PREFIX:-/usr/share/OVMF/}" > > + export QEMU_PREFIX="${QEMU_PREFIX:-}" > > + export XEN_BINARY="${XEN_BINARY:-${WORKDIR}/xen.efi}" > > Any chance we can avoid using WORKDIR? Or alternatively, we can remove > TOP? Or remove both? :-) Yeah, it grew a bit convoluted, but I decided to give it a try to collect opinions. Thanks for the feedback! These two variables have different meanings: - WORKDIR is a scratch location for keeping artifacts like DTB, EFI config, imagebuilder config. - TOP (looks like at the very least needs a better name) is the helper variable pointint to the location of automation/scripts. > > Maybe it is best to keep WORKDIR and remove TOP, I am not sure. I am > just trying to reduce the amount of variables used and that we depend > upon. I think it should be easy to drop TOP. > > I assume you tested the pipeline and it worked, right? Yes, the pipeline is green: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/1770437024 > > > > + export XEN_CONSOLE="${XEN_CONSOLE:-com1}" > > + export XTF_SRC_BRANCH="${XTF_SRC_BRANCH:-master}" > > + export > > XTF_SRC_URI="${XTF_SRC_URI:-https://xenbits.xen.org/git-http/xtf.git}" > > + export XTF_SRC_VARIANTS="hvm64 pv64" > > +} > > + > > +# Perform arch-specific XTF environment setup. > > +function xtf_arch_setup() > > +{ > > + local esp_dir="${WORKDIR}/boot-esp" > > + local efi_dir="${esp_dir}/EFI/BOOT" > > + > > + # Generate EFI boot environment > > + mkdir -p ${efi_dir} > > + cp ${XEN_BINARY} ${efi_dir}/BOOTX64.EFI > > + cp ${XTF_BINARY} ${efi_dir}/kernel > > + > > + cat > ${efi_dir}/BOOTX64.cfg <<EOF > > +[global] > > +default=test > > + > > +[test] > > +options=${XEN_CMDLINE} > > +kernel=kernel > > +EOF > > + > > + # NB: OVMF_CODE.fd is read-only, no need to copy > > + cp ${FW_PREFIX}OVMF_VARS.fd ${WORKDIR} > > + > > + export TEST_CMD="${QEMU_PREFIX}qemu-system-x86_64 \ > > + -no-reboot \ > > + -nographic \ > > + -monitor none \ > > + -serial stdio \ > > + -m 512 \ > > + -M q35,kernel-irqchip=split \ > > + -drive > > if=pflash,format=raw,readonly=on,file=${FW_PREFIX}OVMF_CODE.fd \ > > + -drive if=pflash,format=raw,file=${WORKDIR}/OVMF_VARS.fd \ > > + -drive file=fat:rw:${esp_dir},media=disk,index=0,format=raw \ > > + " > > +} > > diff --git a/automation/scripts/qemu-smoke-x86-64-efi.sh > > b/automation/scripts/qemu-smoke-x86-64-efi.sh > > deleted file mode 100755 > > index 7572722be6..0000000000 > > --- a/automation/scripts/qemu-smoke-x86-64-efi.sh > > +++ /dev/null > > @@ -1,43 +0,0 @@ > > -#!/bin/bash > > - > > -set -ex -o pipefail > > - > > -# variant should be either pv or pvh > > -variant=$1 > > - > > -# Clone and build XTF > > -git clone https://xenbits.xen.org/git-http/xtf.git > > -cd xtf && make -j$(nproc) && cd - > > - > > -case $variant in > > - pvh) k=test-hvm64-example extra="dom0-iommu=none dom0=pvh" ;; > > - *) k=test-pv64-example extra= ;; > > -esac > > - > > -mkdir -p boot-esp/EFI/BOOT > > -cp binaries/xen.efi boot-esp/EFI/BOOT/BOOTX64.EFI > > -cp xtf/tests/example/$k boot-esp/EFI/BOOT/kernel > > - > > -cat > boot-esp/EFI/BOOT/BOOTX64.cfg <<EOF > > -[global] > > -default=test > > - > > -[test] > > -options=loglvl=all console=com1 noreboot console_timestamps=boot $extra > > -kernel=kernel > > -EOF > > - > > -cp /usr/share/OVMF/OVMF_CODE.fd OVMF_CODE.fd > > -cp /usr/share/OVMF/OVMF_VARS.fd OVMF_VARS.fd > > - > > -rm -f smoke.serial > > -export TEST_CMD="qemu-system-x86_64 -nographic -M q35,kernel-irqchip=split > > \ > > - -drive if=pflash,format=raw,readonly=on,file=OVMF_CODE.fd \ > > - -drive if=pflash,format=raw,file=OVMF_VARS.fd \ > > - -drive file=fat:rw:boot-esp,media=disk,index=0,format=raw \ > > - -m 512 -monitor none -serial stdio" > > - > > -export TEST_LOG="smoke.serial" > > -export PASSED="Test result: SUCCESS" > > - > > -./automation/scripts/console.exp | sed 's/\r\+$//' > > -- > > 2.34.1 > > > >
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |