testsuite: Split test_nocross_trixie and drop KFAIL for QEMU targets

Message ID 20260220080456.45398-1-wzh@ilbers.de
State Under Review
Headers show
Series testsuite: Split test_nocross_trixie and drop KFAIL for QEMU targets | expand

Commit Message

Zhihang Wei Feb. 20, 2026, 8:04 a.m. UTC
"test_nocross_trixie" was previously wrapped in KFAIL, even though it
produces QEMU artifacts which are later used by vm_start tests (not
marked as KFAIL). As a result, failed incomplete builds were not
reported directly and only only showed up later as failures in the
vm_start tests, making CI debugging difficult.

Recently, interrupted downloads have become more frequent when
starfive-visionfive2-trixie pulls a 200+ MB archive from GitHub. These
interruptions cause checksum mismatches, abort the test early, and
prevent other QEMU targets from completing their builds. With KFAIL in
place, this masked the actual root cause while breaking later tests.

As a workaround (until a proper mirror is added for the external
resource), split the test so that the QEMU targets are built first and
without KFAIL, and build the hardware board targets in a separate step.
This ensures that download issues from board-specific targets no longer
prevent QEMU artifacts from being built, and makes QEMU build failures
visible directly in CI.

Signed-off-by: Zhihang Wei <wzh@ilbers.de>
---
 testsuite/citest.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Patch

diff --git a/testsuite/citest.py b/testsuite/citest.py
index f11cd5af..115cdbaa 100755
--- a/testsuite/citest.py
+++ b/testsuite/citest.py
@@ -954,11 +954,16 @@  class NoCrossTest(CIBaseTest):
             'mc:qemuarm64-trixie:isar-image-base',
             'mc:qemuarm-trixie:isar-image-base',
             'mc:qemuriscv64-trixie:isar-image-base',
+        ]
+
+        self.init()
+        self.perform_build_test(targets, cross=False)
+
+        targets = [
             'mc:sifive-fu540-trixie:isar-image-base',
             'mc:starfive-visionfive2-trixie:isar-image-base',
         ]
 
-        self.init()
         try:
             self.perform_build_test(targets, cross=False)
         except exceptions.TestFail: