[PATCH 6/6] CI: run the riscv64 smoke test via QTB framework console-test
Baptiste Le Duc <[email protected]>
| Newsgroups | gmane.comp.emulators.xen.devel |
|---|---|
| Message-ID | <1786378215.8631fc262581453bbf619ec5b2062170.19fec705e62000e099@vates.tech> |
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 <[email protected]> --- .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