Hi Sean, On Wed, 11 Oct 2023 at 18:56, Sean Anderson <sean...@gmail.com> wrote: > > This series adds some tests for various SPL load methods, with the intent of > helping debug v6 of [1]. With that in mind, notable omissions include NAND and > ROMAPI, which both lack sandbox implementations, and OS_BOOT, which I have > deferred due to its complexity. Semihosting is also omitted, but I think we > can > test that with qemu. > > In order to test all of these methods, we must first generate suitable images, > possibly on filesystems. While other tests have historically generated these > images using external tools (e.g. mkimage, mkfs, etc.), I have chosen to > generate them on the fly. This is for a few reasons: > > - By removing external dependencies on pytest to create certain files, the > tests > become self-contained. This makes them easier to iterate on and debug. > - By generating tests at runtime, we can dynamically vary the content. This > helps detect test failures, as even if tests are loaded to the same > location, > the expected content will be different. > - We are not testing the image parsers themselves (e.g. spl_load_simple_fit or > fs_read) but rather the load methods (e.g. spl_mmc_load_image). It is > unnecessary to exercise full functionality or generate 100% correct images. > - By reducing functionality to only what is necessary, the complexity of > various > formats can often be greatly reduced.
This makes sense to me. Also the code to generate the images is relatively small. > > This series depends on [2-3], which are small fixes identified through this > patch set. The organization of patches in this series is as follows: > > - General fixes for bugs which are unlikely to be triggered outside of this > series > - Changes to IMX8 container images to facilitate testing > - General prep. work, particularly regarding linker issues > - The tests themselves > > Mostly-passing CI at [4]; I have since fixed the typo/missing cast. > > [1] > https://lore.kernel.org/all/20230731224304.111081-1-sean.ander...@seco.com/ > [2] https://lore.kernel.org/all/20230930204246.515254-1-sean...@gmail.com/ > [3] https://lore.kernel.org/all/20231008014748.1987840-1-sean...@gmail.com/ > [4] https://source.denx.de/u-boot/custodians/u-boot-clk/-/pipelines/18091 > > > Sean Anderson (26): > spl: legacy: Fix referencing _image_binary_end > spl: nor: Don't allocate header on stack > spl: fit: Fix entry point for SPL_LOAD_FIT_FULL > arm: imx: Fix i.MX8 container load address > arm: imx: Add newlines after error messages > arm: imx: Add function to validate i.MX8 containers > arm: imx: Check header before calling spl_load_imx_container > Move i.MX8 container image loading support to common/spl > spl: Allow enabling SPL_OF_REAL and SPL_OF_PLATDATA at the same time > lib: acpi: Fix linking SPL when ACPIGEN is enabled > fs: ext4: Fix building ext4 in SPL if write is enabled > fs: Compile in sandbox filesystem in SPL if it is enabled > net: Fix compiling SPL when fastboot is enabled > net: bootp: Move port numbers to header > net: bootp: Fall back to BOOTP from DHCP when unit testing > spl: Don't cache devices when UNIT_TEST is enabled > spl: Use map_sysmem where appropriate > test: spl: Split tests up and use some configs > test: spl: Fix spl_test_load not failing if fname doesn't exist > test: spl: Add functions to create images > test: spl: Add functions to create filesystems > test: spl: Add a test for spl_blk_load_image > test: spl: Add a test for the MMC load method > test: spl: Add a test for the NET load method > test: spl: Add a test for the NOR load method > test: spl: Add a test for the SPI load method > Reviewed-by: Simon Glass <s...@chromium.org> Yeoman's work, that. Regards, Simon