On Wed, Oct 08, 2025 at 08:57:30AM +0200, Martin Schwan wrote: > Add a simple unit test for testing the RAUC bootmethod. Provide only the > very basic tests for now, running a scan and list, to verify correct > detection of the RAUC bootmethod. More advanced boot tests of this > bootmethod can be added in a separate patch. > > This requires another mmc image (mmc9) to contain the following > partitions: > > 1. boot A: contains a dummy boot.scr > 2. root A: contains an empty root filesystem > 3. boot B: contains a dummy boot.scr > 4. root B: contains an empty root filesystem > > The bootmeth_rauc scans all four partitions for existence and expects a > boot script in each boot partition. > > Also add BOOTMETH_RAUC as a dependency on sandbox so that we can test > this with: > > $ ./test/py/test.py -B sandbox --build -k test_ut # build the mmc9.img > $ ./test/py/test.py -B sandbox --build -k bootflow_rauc > > Signed-off-by: Martin Schwan <[email protected]>
I'm glad to see the tests. A question:
[snip]
> + # Generate boot script
> + script = '# dummy boot script'
> + bootdir = os.path.join(mnt, 'boot')
> + utils.run_and_log(ubman, f'mkdir -p {bootdir}')
> + cmd_fname = os.path.join(bootdir, 'boot.cmd')
> + scr_fname = os.path.join(bootdir, 'boot.scr')
> + with open(cmd_fname, 'w', encoding='ascii') as outf:
> + print(script, file=outf)
> +
> + mkimage = os.path.join(ubman.config.build_dir, 'tools/mkimage')
> + utils.run_and_log(
> + ubman, f'{mkimage} -C none -A arm -T script -d {cmd_fname}
> {scr_fname}')
> +
> + # Create boot filesystem image with boot script in it and copy to disk
> image
> + fsfile = 'rauc_boot.img'
> + utils.run_and_log(ubman, f'fallocate -l 8M {fsfile}')
> + utils.run_and_log(ubman, f'mkfs.vfat {fsfile}')
> + utils.run_and_log(ubman, ['sh', '-c', f'mcopy -vs -i {fsfile}
> {scr_fname} ::/'])
> + utils.run_and_log(ubman, f'dd if={fsfile} of=mmc{mmc_dev}.img bs=1M
> seek=1 conv=notrunc')
> + utils.run_and_log(ubman, f'dd if={fsfile} of=mmc{mmc_dev}.img bs=1M
> seek=19 conv=notrunc')
> + utils.run_and_log(ubman, f'rm -f {fsfile} {cmd_fname} {scr_fname}')
> +
> + # Create empty root filesystem image and copy to disk image
> + fsfile = 'rauc_root.img'
> + utils.run_and_log(ubman, f'fallocate -l 10M {fsfile}')
> + utils.run_and_log(ubman, f'mkfs.vfat {fsfile}')
> + utils.run_and_log(ubman, f'dd if={fsfile} of=mmc{mmc_dev}.img bs=1M
> seek=9 conv=notrunc')
> + utils.run_and_log(ubman, f'dd if={fsfile} of=mmc{mmc_dev}.img bs=1M
> seek=27 conv=notrunc')
> + utils.run_and_log(ubman, f'rm -f {fsfile}')
Can we use mk_fs from test/py/tests/fs_helper.py for this part? I know
we can't use setup_image without further changes to allow for 'spec' to
be passed (which may or may not be worth doing, I'm not sure) but I
think we can use mk_fs here? Thanks.
--
Tom
signature.asc
Description: PGP signature

