[PATCH 06/11] ci: pytest: Open up testfs to more consumers than the FIT test
Ahmad Fatoum
a.fatoum at pengutronix.de
Mon Sep 22 08:38:55 PDT 2025
On 18.09.25 09:43, Tobias Waldekranz wrote:
> With upcoming dm-verity tests, we want to store more test artifacts
> than the FIT image in the testfs.
>
> Since the dm tests might run on systems for which no ITS is available
> to build an FIT from, make FIT generation conditional on the ITS being
> available. This allows us to enable the testfs feature on all matrix
> cells that support 9p over virtio.
>
> Signed-off-by: Tobias Waldekranz <tobias at waldekranz.com>
Reviewed-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
FWIW, testfs was supposed to be just a stop-gap.
My current plan is to have a "meta-bootstack" Yocto BSP that generates
actual artifacts that will be used for testing which affords us much
more flexibility.
I see the utility now though in having some tests that can be run locally
without building the BSP, so I would just add a second mount point for
it, so everything good here.
Cheers,
Ahmad
> ---
> scripts/generate_testfs.sh | 20 ++++++++++++--------
> test/py/test_fit.py | 4 +++-
> test/riscv/qemu-virt64 at rv64i_defconfig.yaml | 1 +
> test/riscv/qemu at virt32_defconfig.yaml | 1 +
> 4 files changed, 17 insertions(+), 9 deletions(-)
>
> diff --git a/scripts/generate_testfs.sh b/scripts/generate_testfs.sh
> index c5d24f7e1a..3c200bd401 100755
> --- a/scripts/generate_testfs.sh
> +++ b/scripts/generate_testfs.sh
> @@ -13,14 +13,18 @@ fi
> rm -rf "${KBUILD_OUTPUT}/testfs/"
> mkdir -p ${KBUILD_OUTPUT}/testfs
>
> -cat ${KBUILD_OUTPUT}/images/barebox-dt-2nd.img | \
> - ${KGZIP} -n -f -9 >${KBUILD_OUTPUT}/barebox-dt-2nd.img.gz
> +generate_fit()
> +{
> + cat ${KBUILD_OUTPUT}/images/barebox-dt-2nd.img | \
> + ${KGZIP} -n -f -9 >${KBUILD_OUTPUT}/barebox-dt-2nd.img.gz
>
> -cp .github/testfs/${KBUILD_DEFCONFIG}-gzipped.its ${KBUILD_OUTPUT}/
> + cp .github/testfs/${KBUILD_DEFCONFIG}-gzipped.its ${KBUILD_OUTPUT}/
>
> -find COPYING LICENSES/ | cpio -o -H newc | ${KGZIP} \
> - > ${KBUILD_OUTPUT}/ramdisk.cpio.gz
> + find COPYING LICENSES/ | cpio -o -H newc | ${KGZIP} \
> + > ${KBUILD_OUTPUT}/ramdisk.cpio.gz
>
> -${MKIMAGE} -G $PWD/test/self/development_rsa2048.pem -r \
> - -f ${KBUILD_OUTPUT}/${KBUILD_DEFCONFIG}-gzipped.its \
> - ${KBUILD_OUTPUT}/testfs/barebox-gzipped.fit
> + ${MKIMAGE} -G $PWD/test/self/development_rsa2048.pem -r \
> + -f ${KBUILD_OUTPUT}/${KBUILD_DEFCONFIG}-gzipped.its \
> + ${KBUILD_OUTPUT}/testfs/barebox-gzipped.fit
> +}
> +[ -f .github/testfs/${KBUILD_DEFCONFIG}-gzipped.its ] && generate_fit
> diff --git a/test/py/test_fit.py b/test/py/test_fit.py
> index c53a1ece14..1a23a53a32 100644
> --- a/test/py/test_fit.py
> +++ b/test/py/test_fit.py
> @@ -23,7 +23,9 @@ def test_fit(barebox, env, target, barebox_config):
> if returncode != 0:
> pytest.xfail("skipping test due to missing --fs testfs=")
>
> - barebox.run_check(f"ls {fit_name('gzipped')}")
> + _, _, returncode = barebox.run(f"ls {fit_name('gzipped')}")
> + if returncode != 0:
> + pytest.xfail("skipping test due to missing FIT image")
>
> # Sanity check, this is only fixed up on first boot
> assert of_get_property(barebox, "/chosen/barebox-version") is False
> diff --git a/test/riscv/qemu-virt64 at rv64i_defconfig.yaml b/test/riscv/qemu-virt64 at rv64i_defconfig.yaml
> index 7f86d9ac7d..5f1310617a 100644
> --- a/test/riscv/qemu-virt64 at rv64i_defconfig.yaml
> +++ b/test/riscv/qemu-virt64 at rv64i_defconfig.yaml
> @@ -15,6 +15,7 @@ targets:
> features:
> - virtio-mmio
> - barebox-state
> + - testfs
> images:
> barebox-dt-2nd.img: !template "$LG_BUILDDIR/images/barebox-dt-2nd.img"
> imports:
> diff --git a/test/riscv/qemu at virt32_defconfig.yaml b/test/riscv/qemu at virt32_defconfig.yaml
> index 7860e97c52..d0b640aa18 100644
> --- a/test/riscv/qemu at virt32_defconfig.yaml
> +++ b/test/riscv/qemu at virt32_defconfig.yaml
> @@ -16,6 +16,7 @@ targets:
> features:
> - virtio-mmio
> - barebox-state
> + - testfs
> runner:
> download:
> opensbi-riscv32-generic-fw_dynamic.bin: https://github.com/qemu/qemu/blob/v5.2.0/pc-bios/opensbi-riscv32-generic-fw_dynamic.bin?raw=true
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list