Files
Ayan Kumar Halder 24bd190cd9 xen/arm: gic: Add GIC SGI boot/self tests in Xen
Boot self-tests (also referred to as boot-time tests or power-on
self-tests) are intended to check that Xen has configured the hardware
correctly before bringing up any domains.

Introduce tests to confirm that, using a dedicated SGI (GIC_SGI_TEST):
1. A cpu can send the SGI to itself
2. A cpu can send the SGI to another specific CPU (CPU0)
3. A cpu can send the SGI to all the other CPUs

Each CPU counts the test SGIs it takes. A sender samples those counters
before sending and then waits for the count of every CPU it targeted to
change, which is how it tells that the SGI was really delivered. The
counters are never reset, so comparing against a sample rather than an
absolute value keeps concurrent senders from disturbing each other. The
snapshot is allocated rather than kept on the stack, as NR_CPUS can be
large enough for such an array to overflow it.

A test reports a failure by panic(), so Xen never continues on a
platform where SGI delivery is broken. When the tests pass, Xen carries
on booting normally.

Also introduce a config CONFIG_BOOT_SELFTEST which enables these
tests. It depends on DEBUG and is off unless explicitly enabled.

Also introduce a boolean command line parameter "gic-test", so that a
build with CONFIG_BOOT_SELFTEST enabled can be shipped but the tests
selected at boot. It is documented in
docs/misc/xen-command-line.pandoc.

In order to keep all the boot self-tests together in the binary, a
separate section "initcallboottest" is introduced. Tests are registered
using __initcallboottest() and run once on every CPU by
do_init_boottests(), bracketed by begin/end messages. They run before
any domain is created on the primary core, and before the idle loop is
entered on a secondary core.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
Reviewed-by: Julien Grall <julien@xen.org>
2026-09-28 13:11:52 -07:00

801 lines
20 KiB
YAML

.test-jobs-common:
stage: test
image: ${XEN_REGISTRY}/${CONTAINER}
rules:
- if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
when: on_success
.arm64-test-needs: &arm64-test-needs
- project: $ARTIFACTS_REPO
job: $LINUX_JOB_ARM64
ref: $ARTIFACTS_BRANCH
- project: $ARTIFACTS_REPO
job: alpine-3.24-arm64-rootfs
ref: $ARTIFACTS_BRANCH
.arm32-test-needs: &arm32-test-needs
-
.x86_64-test-needs: &x86_64-test-needs
- project: $ARTIFACTS_REPO
job: $LINUX_JOB_X86_64
ref: $ARTIFACTS_BRANCH
- project: $ARTIFACTS_REPO
job: alpine-3.24-x86_64-rootfs
ref: $ARTIFACTS_BRANCH
- project: $ARTIFACTS_REPO
job: microcode-x86
ref: $ARTIFACTS_BRANCH
.qemu-arm64:
extends: .test-jobs-common
variables:
CONTAINER: debian:13-arm64v8
LOGFILE: qemu-smoke-arm64.log
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- arm64
.qemu-arm32:
extends: .test-jobs-common
variables:
CONTAINER: debian:13-arm64v8
LOGFILE: qemu-smoke-arm32.log
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- arm64
.qemu-x86_64:
extends: .test-jobs-common
variables:
CONTAINER: debian:13-x86_64
LOGFILE: qemu-smoke-x86_64.log
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- x86_64
.qemu-smoke-x86_64:
extends: .qemu-x86_64
variables:
TEST_TIMEOUT_OVERRIDE: 120
.qemu-riscv64:
extends: .test-jobs-common
variables:
CONTAINER: debian:13-riscv64
LOGFILE: qemu-smoke-riscv64.log
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- x86_64
.qemu-ppc64le:
extends: .test-jobs-common
variables:
CONTAINER: debian:13-ppc64le
LOGFILE: qemu-smoke-ppc64le.log
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- x86_64
.xilinx-arm64:
extends: .test-jobs-common
variables:
CONTAINER: ubuntu:xilinx-hw-runner
LOGFILE: qemu-smoke-xilinx.log
TEST_TIMEOUT_OVERRIDE: 120
artifacts:
paths:
- smoke.serial
- '*.log'
- '*.dtb'
when: always
rules:
- if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $XILINX_JOBS == "true"
&& $CI_COMMIT_REF_PROTECTED == "true"
when: on_success
tags:
- xilinx-zynq-423
.xilinx-x86_64:
extends: .test-jobs-common
variables:
CONTAINER: ubuntu:xilinx-hw-runner
LOGFILE: xilinx-smoke-x86_64.log
XEN_CMD_CONSOLE: "console=com2 com2=57600,8n1,0x2F8,4"
TEST_BOARD: "crater"
TEST_TIMEOUT_OVERRIDE: 1000
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
rules:
- if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $XILINX_JOBS == "true"
&& $CI_COMMIT_REF_PROTECTED == "true"
when: on_success
tags:
- xilinx-crater-001
.adl-x86_64:
extends: .test-jobs-common
variables:
# the test controller runs on RPi4
CONTAINER: alpine:qubes-hw-runner
LOGFILE: smoke-test.log
PCIDEV: "03:00.0"
PCIDEV_INTR: "MSI-X"
CONSOLE_OPTS: "console=com1 com1=115200,8n1"
SUT_ADDR: test-2.testnet
artifacts:
paths:
- smoke.serial
- '*.log'
- tests-junit.xml
when: always
rules:
- if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $QUBES_JOBS == "true"
&& $CI_COMMIT_REF_PROTECTED == "true"
when: on_success
tags:
- qubes-hw2
.kbl-x86_64:
# it's really similar to the ADL one
extends: .adl-x86_64
variables:
PCIDEV: "00:1f.6"
PCIDEV_INTR: "MSI"
CONSOLE_OPTS: "console=com1 com1=115200,8n1,pci,0"
SUT_ADDR: test-3.testnet
tags:
- qubes-hw3
.ptl-x86_64:
# it's really similar to the ADL one
extends: .adl-x86_64
variables:
PCIDEV: "56:00.0"
PCIDEV_INTR: "MSI-X"
CONSOLE_OPTS: "console=com1 com1=115200,8n1"
EXTRA_XEN_OPTS: "fred"
SUT_ADDR: test-22.testnet
tags:
- qubes-hw22
.zen2-x86_64:
# it's really similar to the above
extends: .adl-x86_64
variables:
PCIDEV: "01:00.0"
PCIDEV_INTR: "MSI-X"
CONSOLE_OPTS: "console=com1 com1=115200,8n1,pci,msi,04:00.0"
SUT_ADDR: test-1.testnet
tags:
- qubes-hw1
.zen3p-x86_64:
# it's really similar to the above
extends: .adl-x86_64
variables:
PCIDEV: "01:00.0"
PCIDEV_INTR: "MSI-X"
CONSOLE_OPTS: "console=com1 com1=115200,8n1,pci,msi"
SUT_ADDR: test-11.testnet
tags:
- qubes-hw11
# Test jobs
build-each-commit-gcc:
extends: .test-jobs-common
variables:
CONTAINER: debian:12-x86_64
XEN_TARGET_ARCH: x86_64
CC: gcc
script:
- BASE=${BASE_SHA:-${CI_COMMIT_BEFORE_SHA}} TIP=${TIP_SHA:-${CI_COMMIT_SHA}} ./automation/gitlab-ci/build-each-commit.sh 2>&1 | tee build-each-commit-gcc.log
artifacts:
paths:
- '*.log'
when: always
needs: []
tags:
- x86_64
xilinx-smoke-dom0less-arm64-gcc-debug:
extends: .xilinx-arm64
script:
- ./automation/scripts/xilinx-smoke-dom0less-arm64.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.24-arm64-gcc-debug
xilinx-smoke-dom0less-arm64-gcc-debug-gem-passthrough:
extends: .xilinx-arm64
script:
- ./automation/scripts/xilinx-smoke-dom0less-arm64.sh gem-passthrough 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.24-arm64-gcc-debug
xilinx-smoke-dom0-x86_64-gcc-debug:
extends: .xilinx-x86_64
script:
- ./automation/scripts/xilinx-smoke-dom0-x86_64.sh ping 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
xilinx-smoke-dom0-x86_64-gcc-debug-argo:
extends: .xilinx-x86_64
script:
- ./automation/scripts/xilinx-smoke-dom0-x86_64.sh argo 2>&1 | tee ${LOGFILE}
needs:
- alpine-3.24-x86_64-gcc-debug
- project: xen-project/hardware/test-artifacts
job: linux-6.6.56-x86_64
ref: master
- project: xen-project/hardware/test-artifacts
job: alpine-3.24-x86_64-rootfs
ref: master
- project: xen-project/hardware/test-artifacts
job: microcode-x86
ref: master
adl-smoke-x86_64-gcc-debug:
extends: .adl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh dom0pv 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
adl-smoke-x86_64-dom0pvh-gcc-debug:
extends: .adl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh dom0pvh 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
adl-smoke-x86_64-dom0pvh-hvm-gcc-debug:
extends: .adl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh dom0pvh-hvm 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
adl-suspend-x86_64-gcc-debug:
extends: .adl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh s3 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
adl-pci-pv-x86_64-gcc-debug:
extends: .adl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh pci-pv 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
adl-pci-hvm-x86_64-gcc-debug:
extends: .adl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh pci-hvm 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
adl-pvshim-x86_64-gcc-debug:
extends: .adl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh pvshim 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
adl-tools-tests-pv-x86_64-gcc-debug:
extends: .adl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh tools-tests-pv 2>&1 | tee ${LOGFILE}
artifacts:
reports:
junit: tests-junit.xml
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
adl-tools-tests-pvh-x86_64-gcc-debug:
extends: .adl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh tools-tests-pvh 2>&1 | tee ${LOGFILE}
artifacts:
reports:
junit: tests-junit.xml
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
kbl-smoke-x86_64-gcc-debug:
extends: .kbl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh dom0pv 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
kbl-smoke-x86_64-dom0pvh-gcc-debug:
extends: .kbl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh dom0pvh 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
kbl-smoke-x86_64-dom0pvh-hvm-gcc-debug:
extends: .kbl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh dom0pvh-hvm 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
kbl-suspend-x86_64-gcc-debug:
extends: .kbl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh s3 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
kbl-pci-pv-x86_64-gcc-debug:
extends: .kbl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh pci-pv 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
kbl-pci-hvm-x86_64-gcc-debug:
extends: .kbl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh pci-hvm 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
kbl-pvshim-x86_64-gcc-debug:
extends: .kbl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh pvshim 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
kbl-tools-tests-pv-x86_64-gcc-debug:
extends: .kbl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh tools-tests-pv 2>&1 | tee ${LOGFILE}
artifacts:
reports:
junit: tests-junit.xml
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
kbl-tools-tests-pvh-x86_64-gcc-debug:
extends: .kbl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh tools-tests-pvh 2>&1 | tee ${LOGFILE}
artifacts:
reports:
junit: tests-junit.xml
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
ptl-smoke-x86_64-gcc-debug:
extends: .ptl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh dom0pv 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
ptl-smoke-x86_64-dom0pvh-gcc-debug:
extends: .ptl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh dom0pvh 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
ptl-smoke-x86_64-dom0pvh-hvm-gcc-debug:
extends: .ptl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh dom0pvh-hvm 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
ptl-pci-pv-x86_64-gcc-debug:
extends: .ptl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh pci-pv 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
ptl-pci-hvm-x86_64-gcc-debug:
extends: .ptl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh pci-hvm 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
ptl-pvshim-x86_64-gcc-debug:
extends: .ptl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh pvshim 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
ptl-tools-tests-pv-x86_64-gcc-debug:
extends: .ptl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh tools-tests-pv 2>&1 | tee ${LOGFILE}
artifacts:
reports:
junit: tests-junit.xml
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
ptl-tools-tests-pvh-x86_64-gcc-debug:
extends: .ptl-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh tools-tests-pvh 2>&1 | tee ${LOGFILE}
artifacts:
reports:
junit: tests-junit.xml
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
zen2-smoke-x86_64-gcc-debug:
extends: .zen2-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh dom0pv 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
zen2-suspend-x86_64-gcc-debug:
extends: .zen2-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh s3 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
zen3p-smoke-x86_64-gcc-debug:
extends: .zen3p-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh dom0pv 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
zen3p-smoke-x86_64-dom0pvh-gcc-debug:
extends: .zen3p-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh dom0pvh 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
zen3p-smoke-x86_64-dom0pvh-hvm-gcc-debug:
extends: .zen3p-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh dom0pvh-hvm 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
zen3p-pci-hvm-x86_64-gcc-debug:
extends: .zen3p-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh pci-hvm 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
zen3p-pvshim-x86_64-gcc-debug:
extends: .zen3p-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh pvshim 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
zen3p-tools-tests-pv-x86_64-gcc-debug:
extends: .zen3p-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh tools-tests-pv 2>&1 | tee ${LOGFILE}
artifacts:
reports:
junit: tests-junit.xml
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
zen3p-tools-tests-pvh-x86_64-gcc-debug:
extends: .zen3p-x86_64
script:
- ./automation/scripts/qubes-x86_64.sh tools-tests-pvh 2>&1 | tee ${LOGFILE}
artifacts:
reports:
junit: tests-junit.xml
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc-debug
qemu-smoke-dom0-arm64-gcc:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0-arm64.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.24-arm64-gcc
qemu-smoke-dom0-arm64-gcc-debug:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0-arm64.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.24-arm64-gcc-debug
qemu-smoke-dom0less-arm64-gcc:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0less-arm64.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.24-arm64-gcc
qemu-smoke-dom0less-arm64-gcc-debug:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0less-arm64.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.24-arm64-gcc-debug
qemu-smoke-dom0less-arm64-gcc-debug-gicv3:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0less-arm64.sh gicv3 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.24-arm64-gcc-debug
qemu-smoke-boot-selftest-arm64-gcc-debug:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-boot-selftest-arm64.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.24-arm64-gcc-debug-boot-selftest
qemu-smoke-dom0less-arm64-gcc-debug-staticmem:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-mem 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.24-arm64-gcc-debug-staticmem
qemu-smoke-dom0less-arm64-gcc-debug-staticheap:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-heap 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.24-arm64-gcc-debug
qemu-smoke-dom0less-arm64-gcc-debug-static-shared-mem:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-shared-mem 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.24-arm64-gcc-debug-static-shared-mem
qemu-smoke-dom0less-arm64-gcc-debug-boot-cpupools:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0less-arm64.sh boot-cpupools 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.24-arm64-gcc-debug-boot-cpupools
qemu-smoke-dom0less-arm64-gcc-debug-earlyprintk:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-smoke-dom0less-arm64.sh earlyprintk 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.24-arm64-gcc-debug-earlyprintk
qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.24-arm64-gcc
qemu-xtf-dom0less-arm64-gcc-debug-hyp-xen-version:
extends: .qemu-arm64
script:
- ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 | tee ${LOGFILE}
needs:
- *arm64-test-needs
- alpine-3.24-arm64-gcc-debug
qemu-smoke-dom0-arm32-gcc:
extends: .qemu-arm32
script:
- ./automation/scripts/qemu-smoke-dom0-arm32.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm32-test-needs
- yocto-qemuarm
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-12-arm32-gcc
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-12-arm32-gcc-debug
qemu-smoke-dom0less-arm32-gcc-debug-staticmem:
extends: .qemu-arm32
script:
- ./automation/scripts/qemu-smoke-dom0less-arm32.sh static-mem 2>&1 | tee ${LOGFILE}
needs:
- *arm32-test-needs
- debian-12-arm32-gcc-debug-staticmem
qemu-smoke-dom0less-arm32-gcc-debug-gzip:
extends: .qemu-arm32
script:
- ./automation/scripts/qemu-smoke-dom0less-arm32.sh gzip 2>&1 | tee ${LOGFILE}
needs:
- *arm32-test-needs
- debian-12-arm32-gcc-debug
qemu-smoke-dom0less-arm32-gcc-without-dom0:
extends: .qemu-arm32
script:
- ./automation/scripts/qemu-smoke-dom0less-arm32.sh without-dom0 2>&1 | tee ${LOGFILE}
needs:
- *arm32-test-needs
- debian-12-arm32-gcc
qemu-smoke-dom0less-arm32-gcc-debug-without-dom0:
extends: .qemu-arm32
script:
- ./automation/scripts/qemu-smoke-dom0less-arm32.sh without-dom0 2>&1 | tee ${LOGFILE}
needs:
- *arm32-test-needs
- debian-12-arm32-gcc-debug
qemu-smoke-dom0less-arm32-gcc-debug-earlyprintk:
extends: .qemu-arm32
script:
- ./automation/scripts/qemu-smoke-dom0less-arm32.sh earlyprintk 2>&1 | tee ${LOGFILE}
needs:
- *arm32-test-needs
- debian-12-arm32-gcc-debug-earlyprintk
qemu-alpine-x86_64-gcc:
extends: .qemu-x86_64
script:
- ./automation/scripts/qemu-alpine-x86_64.sh 2>&1 | tee ${LOGFILE}
needs:
- *x86_64-test-needs
- alpine-3.24-x86_64-gcc
qemu-smoke-x86_64-gcc:
extends: .qemu-smoke-x86_64
script:
- ./automation/scripts/qemu-xtf.sh x86_64 pv64 example 2>&1 | tee ${LOGFILE}
needs:
- debian-13-x86_64-gcc-debug
qemu-smoke-x86_64-clang:
extends: .qemu-smoke-x86_64
script:
- ./automation/scripts/qemu-xtf.sh x86_64 pv64 example 2>&1 | tee ${LOGFILE}
needs:
- debian-13-x86_64-clang-debug
qemu-smoke-x86_64-gcc-pvh:
extends: .qemu-smoke-x86_64
script:
- ./automation/scripts/qemu-xtf.sh x86_64 hvm64 example 2>&1 | tee ${LOGFILE}
needs:
- debian-13-x86_64-gcc-debug
qemu-smoke-x86_64-clang-pvh:
extends: .qemu-smoke-x86_64
script:
- ./automation/scripts/qemu-xtf.sh x86_64 hvm64 example 2>&1 | tee ${LOGFILE}
needs:
- debian-13-x86_64-clang-debug
qemu-smoke-x86_64-gcc-efi:
extends: .qemu-smoke-x86_64
script:
- ./automation/scripts/qemu-xtf.sh x86_64-efi pv64 example 2>&1 | tee ${LOGFILE}
needs:
- debian-13-x86_64-gcc-debug
qemu-xtf-argo-x86_64-gcc-debug:
extends: .qemu-smoke-x86_64
variables:
TEST_TIMEOUT_OVERRIDE: 60
script:
- ./automation/scripts/qemu-xtf.sh x86_64 pv64 argo 2>&1 | tee ${LOGFILE}
needs:
- alpine-3.24-x86_64-gcc-debug
qemu-smoke-riscv64-gcc:
extends: .qemu-riscv64
script:
- ./automation/scripts/qemu-smoke-riscv64.sh 2>&1 | tee ${LOGFILE}
needs:
- debian-13-riscv64-gcc-debug
qemu-smoke-ppc64le-powernv9-gcc:
extends: .qemu-ppc64le
script:
- ./automation/scripts/qemu-smoke-ppc64le.sh powernv9 2>&1 | tee ${LOGFILE}
needs:
- debian-13-ppc64le-gcc-debug