On 04/05/2024 14.28, Nicholas Piggin wrote:
This adds testing for the powernv machine, and adds a gitlab-ci test
group instead of specifying all tests in .gitlab-ci.yml, and adds a
few new tests (smp, atomics) that are known to work in CI.
Signed-off-by: Nicholas Piggin <npiggin@xxxxxxxxx>
---
.gitlab-ci.yml | 30 ++++++++----------------------
powerpc/unittests.cfg | 32 ++++++++++++++++++++++++++------
2 files changed, 34 insertions(+), 28 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 23bb69e24..31a2a4e34 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -97,17 +97,10 @@ build-ppc64be:
- cd build
- ../configure --arch=ppc64 --endian=big --cross-prefix=powerpc64-linux-gnu-
- make -j2
- - ACCEL=tcg ./run_tests.sh
- selftest-setup
- selftest-migration
- selftest-migration-skip
- spapr_hcall
- rtas-get-time-of-day
- rtas-get-time-of-day-base
- rtas-set-time-of-day
- emulator
- | tee results.txt
- - if grep -q FAIL results.txt ; then exit 1 ; fi
+ - ACCEL=tcg MAX_SMP=8 ./run_tests.sh -g gitlab-ci | tee results.txt
+ - grep -q PASS results.txt && ! grep -q FAIL results.txt
+ - ACCEL=tcg MAX_SMP=8 MACHINE=powernv ./run_tests.sh -g gitlab-ci | tee results.txt
+ - grep -q PASS results.txt && ! grep -q FAIL results.txt
build-ppc64le:
extends: .intree_template
@@ -115,17 +108,10 @@ build-ppc64le:
- dnf install -y qemu-system-ppc gcc-powerpc64-linux-gnu nmap-ncat
- ./configure --arch=ppc64 --endian=little --cross-prefix=powerpc64-linux-gnu-
- make -j2
- - ACCEL=tcg ./run_tests.sh
- selftest-setup
- selftest-migration
- selftest-migration-skip
- spapr_hcall
- rtas-get-time-of-day
- rtas-get-time-of-day-base
- rtas-set-time-of-day
- emulator
- | tee results.txt
- - if grep -q FAIL results.txt ; then exit 1 ; fi
+ - ACCEL=tcg MAX_SMP=8 ./run_tests.sh -g gitlab-ci | tee results.txt
+ - grep -q PASS results.txt && ! grep -q FAIL results.txt
+ - ACCEL=tcg MAX_SMP=8 MACHINE=powernv ./run_tests.sh -g gitlab-ci | tee results.txt
+ - grep -q PASS results.txt && ! grep -q FAIL results.txt
# build-riscv32:
# Fedora doesn't package a riscv32 compiler for QEMU. Oh, well.
diff --git a/powerpc/unittests.cfg b/powerpc/unittests.cfg
index d767f5d68..6fae688a8 100644
--- a/powerpc/unittests.cfg
+++ b/powerpc/unittests.cfg
@@ -16,17 +16,25 @@
file = selftest.elf
smp = 2
extra_params = -m 1g -append 'setup smp=2 mem=1024'
-groups = selftest
+groups = selftest gitlab-ci
[selftest-migration]
file = selftest-migration.elf
machine = pseries
groups = selftest migration
+# QEMU 7.0 (Fedora 37) in gitlab CI has known migration bugs in TCG, so
+# make a kvm-only version for CI
+[selftest-migration-ci]
+file = selftest-migration.elf
+machine = pseries
+groups = nodefault selftest migration gitlab-ci
+accel = kvm
+
[selftest-migration-skip]
file = selftest-migration.elf
machine = pseries
-groups = selftest migration
+groups = selftest migration gitlab-ci
extra_params = -append "skip"
[migration-memory]
@@ -37,6 +45,7 @@ groups = migration
[spapr_hcall]
file = spapr_hcall.elf
machine = pseries
+groups = gitlab-ci
[spapr_vpa]
file = spapr_vpa.elf
@@ -47,38 +56,43 @@ file = rtas.elf
machine = pseries
timeout = 5
extra_params = -append "get-time-of-day date=$(date +%s)"
-groups = rtas
+groups = rtas gitlab-ci
[rtas-get-time-of-day-base]
file = rtas.elf
machine = pseries
timeout = 5
extra_params = -rtc base="2006-06-17" -append "get-time-of-day date=$(date --date="2006-06-17 UTC" +%s)"
-groups = rtas
+groups = rtas gitlab-ci
[rtas-set-time-of-day]
file = rtas.elf
machine = pseries
extra_params = -append "set-time-of-day"
timeout = 5
-groups = rtas
+groups = rtas gitlab-ci
[emulator]
file = emulator.elf
+groups = gitlab-ci
+# QEMU 7.0 (Fedora 37) in gitlab CI fails this
[interrupts]
file = interrupts.elf
+# QEMU 7.0 (Fedora 37) in gitlab CI fails this
[mmu]
file = mmu.elf
smp = $MAX_SMP
+# QEMU 7.0 (Fedora 37) in gitlab CI fails this
[pmu]
file = pmu.elf
[smp]
file = smp.elf
smp = 2
+groups = gitlab-ci
[smp-smt]
file = smp.elf
@@ -92,16 +106,19 @@ accel = tcg,thread=single
[atomics]
file = atomics.elf
+groups = gitlab-ci
[atomics-migration]
file = atomics.elf
machine = pseries
extra_params = -append "migration -m"
-groups = migration
+groups = migration gitlab-ci
+# QEMU 7.0 (Fedora 37) in gitlab CI fails this
[timebase]
file = timebase.elf
+# QEMU 7.0 (Fedora 37) in gitlab CI fails this
[timebase-icount]
file = timebase.elf
accel = tcg
@@ -115,14 +132,17 @@ smp = 2,threads=2
extra_params = -machine cap-htm=on -append "h_cede_tm"
groups = h_cede_tm
+# QEMU 7.0 (Fedora 37) in gitlab CI fails this
[sprs]
file = sprs.elf
+# QEMU 7.0 (Fedora 37) in gitlab CI fails this
[sprs-migration]
file = sprs.elf
machine = pseries
extra_params = -append '-w'
groups = migration
Have any of the failures been fixed in newer versions of QEMU?
If so, you could also update the ppc jobs to fedora:40:
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -91,6 +91,7 @@ build-arm:
build-ppc64be:
extends: .outoftree_template
+ image: fedora:40
script:
- dnf install -y qemu-system-ppc gcc-powerpc64-linux-gnu nmap-ncat
- mkdir build
@@ -111,6 +112,7 @@ build-ppc64be:
build-ppc64le:
extends: .intree_template
+ image: fedora:40
script:
- dnf install -y qemu-system-ppc gcc-powerpc64-linux-gnu nmap-ncat
- ./configure --arch=ppc64 --endian=little --cross-prefix=powerpc64-linux-gnu-
I also had a patch somewhere that updates all jobs, it just needs some
polishing to get finished ... maybe a good point in time to do this now.
Thomas