|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 6/6] CI: run the riscv64 smoke test via QTB framework console-test
On 2026-08-10 18:09 +0200, Baptiste Le Duc wrote:
During an internal review, Zheng Zhang (zhangzheng@xxxxxxxxxxx) pointed
out that this patch series defines the qemu-9.0.0 in riscv64-test-needs
of test.yaml, whereas we should use the QEMU bundled in the
13-qtb-riscv64 container.
I will fix this in v2 by resolving qemu-system-riscv64 from $PATH, since the
test runs inside the 13-qtb-riscv64 container.
As a consequence, the OpenSBI path in `binaries` in config.yaml is no longer
needed either: qemu-system-riscv64 uses the firmware bundled with it.
> qemu-smoke-riscv64-gcc drove QEMU through
> automation/scripts/qemu-smoke-riscv64.sh, an expect wrapper whose machine
> description (cpus, memory, device tree, console wiring) lived in the script
> itself. The QTB framework now owns all of that: machines come from the
> shared catalog, expectations from the test type's own YAML.
>
> Turn .qemu-riscv64 into a template running qemu_smoke_riscv64.py <type> run
> <test> in the qtb-riscv64 container, machine and test picked per job
> through QTB_TEST_TYPE/QTB_TEST. The container comes from the test-artifacts
> registry, hence the new ARTIFACTS_REGISTRY next to the existing
> ARTIFACTS_REPO/ARTIFACTS_BRANCH. QTB_BINARIES_DIR points at the artifacts
> of the job in the new .riscv64-test-needs anchor (QEMU and its firmware),
> and QTB_LOG_DIR collects the per-console logs, kept on failure and on
> success.
>
> Point qemu-smoke-riscv64-gcc at that template, running the console-test
> type on dom0less-1smp-0domu-1vcpu-aplic-imsic-null: a Xen-only machine, so
> the smoke check is Xen's own "All set up" on console 0, the same string the
> expect script waited for.
>
> Drop automation/scripts/qemu-smoke-riscv64.sh as it has no caller left in
> the CI after this patch and drop smoke.serial from the .qemu-riscv64
> artifacts since no riscv64 job uses it anymore, the logs are now kept under
> QTB_LOG_DIR.
>
> Assisted-by: Claude:claude-opus-5
> Signed-off-by: Baptiste Le Duc <baptiste.le-duc@xxxxxxxxxx>
> ---
> .gitlab-ci.yml | 3 +++
> automation/gitlab-ci/test.yaml | 26 ++++++++++++++++++------
> automation/scripts/qemu-smoke-riscv64.sh | 19 -----------------
> 3 files changed, 23 insertions(+), 25 deletions(-)
> delete mode 100755 automation/scripts/qemu-smoke-riscv64.sh
>
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index f42a9abeaa..15f93b8634 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -11,6 +11,9 @@ variables:
> ARTIFACTS_BRANCH:
> description: "Branch in test-artifacts to use"
> value: master
> + ARTIFACTS_REGISTRY:
> + description: "Registry holding the test-artifacts containers"
> + value: registry.gitlab.com/xen-project/hardware/test-artifacts
> LINUX_JOB_X86_64:
> description: "Job name in test-artifacts to use for Linux x86_64"
> value: linux-6.6.56-x86_64
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 61adc1baff..4775d2cc4e 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -5,6 +5,11 @@
> - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
> when: on_success
>
> +.riscv64-test-needs: &riscv64-test-needs
> + - project: $ARTIFACTS_REPO
> + job: qemu-9.0.0-riscv64
> + ref: $ARTIFACTS_BRANCH
> +
> .arm64-test-needs: &arm64-test-needs
> - project: $ARTIFACTS_REPO
> job: $LINUX_JOB_ARM64
> @@ -72,14 +77,21 @@
> TEST_TIMEOUT_OVERRIDE: 120
>
> .qemu-riscv64:
> + image: ${ARTIFACTS_REGISTRY}/${CONTAINER}
> extends: .test-jobs-common
> variables:
> - CONTAINER: debian:13-riscv64
> - LOGFILE: qemu-smoke-riscv64.log
> + CONTAINER: debian:13-qtb-riscv64
> + QTB_LOG_DIR: qtb-logs
> + QTB_BINARIES_DIR: ${CI_PROJECT_DIR}/binaries
> + script:
> + - ./automation/scripts/qemu_smoke_riscv64.py
> + ${QTB_TEST_TYPE}
> + run
> + ${QTB_TEST}
> + --log-dir ${QTB_LOG_DIR}
> artifacts:
> paths:
> - - smoke.serial
> - - '*.log'
> + - ${QTB_LOG_DIR}
> when: always
> tags:
> - x86_64
> @@ -779,9 +791,11 @@ qemu-xtf-argo-x86_64-gcc-debug:
>
> qemu-smoke-riscv64-gcc:
> extends: .qemu-riscv64
> - script:
> - - ./automation/scripts/qemu-smoke-riscv64.sh 2>&1 | tee ${LOGFILE}
> + variables:
> + QTB_TEST_TYPE: console-test
> + QTB_TEST: dom0less-1smp-0domu-1vcpu-aplic-imsic-null
> needs:
> + - *riscv64-test-needs
> - debian-13-riscv64-gcc-debug
>
> qemu-smoke-ppc64le-powernv9-gcc:
> diff --git a/automation/scripts/qemu-smoke-riscv64.sh
> b/automation/scripts/qemu-smoke-riscv64.sh
> deleted file mode 100755
> index c0b1082a08..0000000000
> --- a/automation/scripts/qemu-smoke-riscv64.sh
> +++ /dev/null
> @@ -1,19 +0,0 @@
> -#!/bin/bash
> -
> -set -ex -o pipefail
> -
> -# Run the test
> -rm -f smoke.serial
> -
> -export TEST_CMD="qemu-system-riscv64 \
> - -M virt,aia=aplic-imsic \
> - -cpu rv64,svpbmt=on \
> - -smp 1 \
> - -nographic \
> - -m 2g \
> - -kernel binaries/xen"
> -
> -export TEST_LOG="smoke.serial"
> -export PASSED="All set up"
> -
> -./automation/scripts/console.exp |& sed 's/\r\+$//'
>
>
> --
> Baptiste Le Duc | Vates Hypervisor & Kernel Engineer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |