[v2,03/17] testsuite: make prebuilt container a feature test

Message ID 20251219131923.1504046-4-felix.moessbauer@siemens.com
State Under Review
Headers show
Series Various improvements to the testsuite | expand

Commit Message

Felix Moessbauer Dec. 19, 2025, 1:19 p.m. UTC
This reworks how we handle feature tests: Instead of binding a feature
to a target via appends in isar-image-ci, we implement the feature by
using the test setup function. By that, we have fine grained control over
where to test a feature and can avoid testing the same feature over and
over again. This leads to a much cleaner architecture and faster test
execution.

We start implementing this approach with the prebuilt container test.
As the images with containers are currently re-used in the
VmBootTestFull, these tests might break depending on the test execution
order. To fix this, we rebuild the needed images in the VM test itself,
which takes less than a minute when running with sstate cache.

Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
---
 .../recipes-core/images/isar-image-ci.bb      |  2 --
 testsuite/citest.py                           | 25 +++++++++++++++++++
 2 files changed, 25 insertions(+), 2 deletions(-)

Patch

diff --git a/meta-test/recipes-core/images/isar-image-ci.bb b/meta-test/recipes-core/images/isar-image-ci.bb
index 7f2b404d..58aa5738 100644
--- a/meta-test/recipes-core/images/isar-image-ci.bb
+++ b/meta-test/recipes-core/images/isar-image-ci.bb
@@ -16,7 +16,6 @@  IMAGE_INSTALL += "sshd-regen-keys"
 
 # qemuamd64-bookworm
 WKS_FILE:qemuamd64:debian-bookworm ?= "multipart-efi.wks"
-IMAGE_INSTALL:append:qemuamd64:debian-bookworm = " prebuilt-docker-img prebuilt-podman-img"
 
 # qemuamd64-bullseye
 IMAGE_FSTYPES:append:qemuamd64:debian-bullseye ?= " cpio.zst tar.zst"
@@ -52,4 +51,3 @@  IMAGER_INSTALL:append:qemuarm:debian-bookworm ?= " ${SYSTEMD_BOOTLOADER_INSTALL}
 # qemuarm64-bookworm
 IMAGE_FSTYPES:append:qemuarm64:debian-bookworm ?= " wic.xz"
 IMAGER_INSTALL:append:qemuarm64:debian-bookworm ?= " ${GRUB_BOOTLOADER_INSTALL}"
-IMAGE_INSTALL:append:qemuarm64:debian-bookworm = " prebuilt-docker-img prebuilt-podman-img"
diff --git a/testsuite/citest.py b/testsuite/citest.py
index cba3c008..eec90c6e 100755
--- a/testsuite/citest.py
+++ b/testsuite/citest.py
@@ -265,6 +265,25 @@  class CrossTest(CIBaseTest):
         self.init()
         self.perform_build_test(targets, lines=lines)
 
+class PrebuiltTest(CIBaseTest):
+    """
+    Tests associated with prebuilt artifacts (containers, debs).
+    :avocado: tags=prebuilt,fast
+    """
+
+    def test_prebuilt_containers(self):
+        targets = [
+            'mc:qemuamd64-bookworm:isar-image-ci',
+            'mc:qemuarm64-bookworm:isar-image-ci',
+        ]
+
+        self.init()
+        self.perform_build_test(
+            targets,
+            bitbake_cmd='do_rootfs_install',
+            image_install="prebuilt-docker-img prebuilt-podman-img")
+
+
 class KernelTests(CIBaseTest):
     """
     Tests associated with kernel builds and development.
@@ -984,11 +1003,17 @@  class VmBootTestFull(CIBaseTest):
 
     def test_amd64_bookworm_prebuilt_containers(self):
         self.init()
+        self.perform_build_test(
+            ['mc:qemuamd64-bookworm:isar-image-ci'],
+            image_install="prebuilt-docker-img prebuilt-podman-img")
         self.vm_start('amd64', 'bookworm', image='isar-image-ci',
                       script='test_prebuilt_containers.sh')
 
     def test_arm64_bookworm_prebuilt_containers(self):
         self.init()
+        self.perform_build_test(
+            ['mc:qemuarm64-bookworm:isar-image-ci'],
+            image_install="prebuilt-docker-img prebuilt-podman-img")
         self.vm_start('arm64', 'bookworm', image='isar-image-ci',
                       script='test_prebuilt_containers.sh')