From: Denis Mukhin <dmukhin@ford.com>
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@ford.com>
---
Changes since v2:
- removed TOP
- dropped XEN_CONSOLE in favor of XEN_CMDLINE
---
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..e0d821b3f6
--- /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}"
+ export XEN_CMDLINE="${XEN_CMDLINE:-loglvl=all noreboot console_timestamps=boot 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
On Sat, 19 Apr 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
>
> 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@ford.com>
> ---
> Changes since v2:
> - removed TOP
> - dropped XEN_CONSOLE in favor of XEN_CMDLINE
> ---
> 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}
Isn't it supposed to be pv64 as variant of the test to match what we had
before?
> 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..e0d821b3f6
> --- /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}"
> + export XEN_CMDLINE="${XEN_CMDLINE:-loglvl=all noreboot console_timestamps=boot 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
>
>
On Mon, Apr 21, 2025 at 01:39:32PM -0700, Stefano Stabellini wrote:
> On Sat, 19 Apr 2025, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > 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@ford.com>
> > ---
> > Changes since v2:
> > - removed TOP
> > - dropped XEN_CONSOLE in favor of XEN_CMDLINE
> > ---
> > 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}
>
> Isn't it supposed to be pv64 as variant of the test to match what we had
> before?
Yes, that should be pv64; thanks!
>
>
> > 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..e0d821b3f6
> > --- /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}"
> > + export XEN_CMDLINE="${XEN_CMDLINE:-loglvl=all noreboot console_timestamps=boot 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
> >
> >
© 2016 - 2026 Red Hat, Inc.