summaryrefslogtreecommitdiff
path: root/test/py/tests
AgeCommit message (Collapse)Author
2026-01-07test: env: Add test for environment storage in SPI NORMarek Vasut
Add test for environment stored in SPI NOR. The test works in a very similar way to the current test for environment stored in ext4 FS, except it generates spi.bin file backing the SPI NOR. Signed-off-by: Marek Vasut <[email protected]>
2025-12-11Merge tag 'u-boot-dfu-next-20251211' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-dfu into next u-boot-dfu-next-20251211: CI: https://source.denx.de/u-boot/custodians/u-boot-dfu/-/pipelines/28724 Android: * Fix 8-byte alignment for newer versions of libfdt
2025-12-06Merge patch series "test/py: fit: Deduplicate the test"Tom Rini
This series from Marek Vasut <[email protected]> cleans up some of the FIT pytests we have and then extends mkimage to support including the TEE in FIT images when using "-f auto" to create the resulting FIT. Link: https://lore.kernel.org/r/[email protected]
2025-12-06mkimage: Add support for bundling TEE in mkimage -f autoMarek Vasut
Introduce two new parameters to be used with mkimage -f auto to bundle TEE image into fitImage, using auto-generated fitImage. Add -z to specify TEE file name and -Z to specify TEE load and entry point address. This is meant to be used with systems which boot all of TEE, Linux and its DT from a single fitImage, all booted by U-Boot. Example invocation: " $ mkimage -E -A arm -C none -e 0xc0008000 -a 0xc0008000 -f auto \ -d arch/arm/boot/zImage \ -b arch/arm/boot/dts/st/stm32mp135f-dhcor-dhsbc.dtb \ -z ../optee_os/out/arm-plat-stm32mp1/core/tee-raw.bin \ -Z 0xde000000 \ /path/to/output/fitImage " Documentation update and test are also included, the test validates both positive and negative test cases, where fitImage does not include TEE and does include TEE blobs. Acked-by: Quentin Schulz <[email protected]> Signed-off-by: Marek Vasut <[email protected]>
2025-12-06test/py: fit: Deduplicate the testMarek Vasut
Introduce generate_and_check_fit_image() and call it with various parameters to test various configurations of the fitImage. This is identical to the existing test, expect for the code duplication. Reviewed-by: Quentin Schulz <[email protected]> Signed-off-by: Marek Vasut <[email protected]>
2025-12-05test/py: android: Point fdt command to aligned addressesMarek Vasut
Newer versions of libfdt strictly check whether the FDT blob passed to them is at 8-byte aligned offset, if it is not, then the library fails checks with -FDT_ERR_ALIGNMENT . Currently, 'abootimg get dtb --index=1 addr size' may return non 8-byte aligned FDT address which points directly into the abootimg. Copy the result into temporary location before validation to avoid FDT alignment check failure. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2025-12-05Merge patch series "test: let UNIT_TEST imply CONSOLE_RECORD"Tom Rini
Heinrich Schuchardt <[email protected]> says: Many C unit tests are not executed if CONFIG_CONSOLE_RECORD is not set. Hence Tom suggested to let UNIT_TEST imply CONSOLE_RECORD. The first patch makes the skipped C unit tests visible. The rest of the series deals with hidden bugs in our tests. The 'fdt get value' command returned incorrect values on low-endian systems. So this needed fixing too. Link: https://lore.kernel.org/r/[email protected]
2025-12-05test: Let pytest indicate skipped C unit testsHeinrich Schuchardt
We invoke the ut command in test_ut.py. Currently we only check for failures. Instead we should also indicate if sub-tests were skipped. With this change we will get output like the following for skipped tests: test/py/tests/test_ut.py ..sssss......ss..............s.sssss.s.s... ================================ short test summary info ================================ SKIPPED [1] test/py/tests/test_ut.py:597: Test addrmap addrmap_test_basic has 1 skipped sub-test(s). SKIPPED [1] test/py/tests/test_ut.py:597: Test bdinfo bdinfo_test_eth has 4 skipped sub-test(s). Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-11-28test/py: Use aligned address for overlays in 'extension' testMarek Vasut
The 'extension' test would set 'extension_overlay_addr' variable to decimal 4096 due to conversion in python. The 'extension_overlay_addr' is however sampled using env_get_hex("extension_overlay_addr", 0); which converts the 4096 to 0x4096 and uses that as DT overlay address, which is unaligned. Fix this by setting extension_overlay_addr to 0x1000 as intended, which is aligned. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2025-11-10dm: Remove pre-schema tag supportTom Rini
Support for using "u-boot,dm-..." rather than "bootph-..." has been deprecated since February 2023. Any platforms using this have had a console message saying to migrate by 2023.07. Go and remove all support here now, for the v2026.01 release. The results of this change that aren't clear from the above are that we still have a checkpatch.pl error message, and document in doc/develop/spl.rst that they have been migrated since 2023. We also change the key2dtsi.py tool to use the correct bootph phase rather than the legacy phase. Signed-off-by: Tom Rini <[email protected]>
2025-11-04pytest: add test script to validate Firmware HandoffRaymond Mao
Add test cases to validate FDT and TPM eventlog handoff from TF-A and OP-TEE via bloblist. For FDT, the nodes 'reserved-memory' and 'firmware' appended by OP-TEE indicates a successful handoff. For TPM eventlog, the events 'SECURE_RT_EL3', 'SECURE_RT_EL1_OPTEE' and 'SECURE_RT_EL1_OPTEE_EXTRA1' created by TF-A indicates a successful handoff. Signed-off-by: Raymond Mao <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2025-10-16test: uninstall PK after secboot testsHeinrich Schuchardt
The EFI secure boot tests install a security data base. Other EFI tests assume that secure boot is not enabled. Add the missing tear-down at the end of each secboot test sequence. Reported-by: Tom Rini <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]> Tested-by: Tom Rini <[email protected]>
2025-09-24Revert "Merge patch series "mkimage: Detect FIT image load address overlaps ↵Tom Rini
and fix related test/DTS issues"" This reverts commit 4d84fa1261eb27d57687f2e4c404a78b8653c183, reversing changes made to b82a1fa7ddc7f3be2f3b75898d5dc44c34420bdd. I had missed some feedback on this series from earlier, and we have since had reports of regressions due to this as well. For now, revert this. Signed-off-by: Tom Rini <[email protected]>
2025-09-23Merge patch series "mkimage: Detect FIT image load address overlaps and fix ↵Tom Rini
related test/DTS issues" Aristo Chen <[email protected]> says: This patch series enhances FIT image robustness by adding **memory region overlap detection** to `mkimage` and fixing existing overlaps in DTS files and `binman` tests. The primary goal is to prevent runtime memory corruption from conflicting load addresses in FIT images. Key Changes: 1. `mkimage` Overlap Detection: A new validation in `tools/fit_image.c` checks for overlapping load addresses within FIT configurations. `mkimage` now errors out with detailed info on conflicts, preventing bad FIT image creation. 2. New Test Case: A Python test verifies the new detection. It intentionally creates an overlap (kernel and FDT) to confirm correct error handling. 3. Fixes for Existing Overlaps: * Board DTS (k3-am6xx): Adjusted load addresses for TI firmware stubs to prevent conflicts. This resolves previously undetected overlaps. * `binman` Tests: Fixed several tests. U-Boot load addresses were shifted to avoid ATF conflicts. A new linker script for TEE ELF sections ensures distinct memory layouts. 4. Documentation: Added guidance for developers on how to determine ELF load addresses using readelf, linker scripts, and objdump when working with binman FIT images. Impact: This series improves FIT image reliability by catching overlaps at build time, helping developers resolve issues before runtime failures. Link: https://lore.kernel.org/r/[email protected]
2025-09-23test: Add test case for FIT image load address overlap detectionAristo Chen
Add a new test case to verify that mkimage properly detects and reports memory region overlaps in FIT image configurations. The test creates a FIT image with kernel and FDT components that have the same load address (0x40000), which should trigger the overlap detection logic and cause mkimage to fail with an appropriate error message. Test verifies: - mkimage returns non-zero exit code when overlap is detected - Error message contains "Error: Overlap detected:" - Error message identifies the specific overlapping components (kernel@1 and fdt@1) This test ensures the overlap detection feature works correctly and prevents deployment of FIT images with conflicting memory layouts that could cause runtime failures. Signed-off-by: Aristo Chen <[email protected]>
2025-09-12mkimage: Add support for bundling TFA BL31 in mkimage -f autoMarek Vasut
Introduce two new parameters to be used with mkimage -f auto to bundle TFA BL31 image into fitImage, using auto-generated fitImage. Add -y to specify TFA BL31 file name and -Y to specify TFA BL31 load and entry point address. This is meant to be used with systems which boot all of TFA BL31, Linux and its DT from a single fitImage, all booted by U-Boot. Example invocation: " $ mkimage -E -A arm64 -C none -e 0x50200000 -a 0x50200000 -f auto \ -d arch/arm64/boot/Image \ -b arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk.dtb \ -y ../tfa/build/rcar_gen4/release/bl31.bin -Y 0x46400000 \ /path/to/output/fitImage " Documentation update and test are also included, the test validates both positive and negative test cases, where fitImage does not include TFA BL31 and does include TFA BL31 blobs. Signed-off-by: Marek Vasut <[email protected]>
2025-08-18test/py: Fix capsule update testsIlias Apalodimas
Capsule updates tests have been skipped since commit 659f97eb1fc3 ("scripts/Makefile.lib: EFI: Use capsule CRT instead of ESL file") Remove that check since it's not needed anymore and re-enable the tests. Fixes: 659f97eb1fc3 ("scripts/Makefile.lib: EFI: Use capsule CRT instead of ESL file") Signed-off-by: Ilias Apalodimas <[email protected]>
2025-08-18test/py: Fix race conditions on EFI capsule testsIlias Apalodimas
efi_capsule_data() is called in each of the EFI tests to create and setup the files we need. However, it also recreates the spi.bin file that holds the SPI flash contents we rely on for the test validation. This leads to weird errors since reading from the flash returns 0, instead of the expected value if the file has been recreated. Always restart our sandbox instance if the files are recreated. Signed-off-by: Ilias Apalodimas <[email protected]>
2025-08-18test/py: Read from the correct offset when initializing capsulesIlias Apalodimas
The current code writes values to a flash offset defined by a function argument. However, when reading it back we always read from a static offset. Adjust the reads to use the correct offset. Signed-off-by: Ilias Apalodimas <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2025-08-18test/py: Correctly restore the DT after capsule testsIlias Apalodimas
Some capsule tests are changing the sandbox DT to test various features, e.g authenticated capsule updates, versioning support etc. However, no one restores the original DT and the CI pops errors looking like /u-boot Bloblist at 100 not found (err=-2) Failed to find FDT file '/tmp/sandbox/persistent-data/scratch/EFI/CapsuleTestData/test_ver.dtb' initcall_run_f(): initcall fdtdec_setup() failed if sandbox is restarted. So let's restore the proper DT after done with the capsule testing. Signed-off-by: Ilias Apalodimas <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2025-08-04test: py: test_fit_mkimage_validate: Only run either test on sandboxTom Rini
Both of these tests are only valid for sandbox (and require dtc) so both tests need the pytest annotations. Fixes: 93d09d3bd8ea ("test: fit: add test case for invalid default configuration reference") Signed-off-by: Tom Rini <[email protected]>
2025-07-23test: fit: add test case for invalid default configuration referenceAristo Chen
Recent changes to mkimage introduced a validation step to ensure that the 'default' property under the /configurations node in a FIT image references a valid configuration subnode. If the referenced node is missing, mkimage will now return an error. This patch adds a Python test case to verify that mkimage correctly fails when the 'default' configuration does not exist. The test creates a minimal ITS with an invalid default reference and checks that mkimage produces the expected error message. Signed-off-by: Aristo Chen <[email protected]>
2025-07-08cmd: Introduce CMD_HELPMichal Simek
Add option to disable help command in size constrained systems to save some space. There is also no need to have ifdefs around CMDLINE because all commands depends on it. And also mark cmd_help dependency in test_help.py. Reviewed-by: Peter Robinson <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/c17f825fb8a74e1d1912a3fd09a9a880c84a8bfd.1751286059.git.michal.simek@amd.com
2025-06-27test/py/test_mmc: wrap multi-argument printf-style stringsBryan Brattlof
Newer versions of python will emit a TypeError about not enough arguments for a format string: FAILED ub/test/py/tests/test_mmc.py::test_mmc_dev - TypeError: not enough arguments for format string FAILED ub/test/py/tests/test_mmc.py::test_mmcinfo - TypeError: not enough arguments for format string FAILED ub/test/py/tests/test_mmc.py::test_mmc_info - TypeError: not enough arguments for format string FAILED ub/test/py/tests/test_mmc.py::test_mmc_rescan - TypeError: not enough arguments for format string FAILED ub/test/py/tests/test_mmc.py::test_mmc_part - TypeError: not enough arguments for format string Add parentheses around all multi argument format strings so all arguments will be passed to the format string Signed-off-by: Bryan Brattlof <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2025-06-26Merge patch series "sandbox: enable CONFIG_CMD_BOOTEFI_SELFTEST by default"Tom Rini
Heinrich Schuchardt <[email protected]> says: The sandbox is used for a lot of generic development, we should run the UEFI tests there, too. The TPM emulation on the sandbox is incomplete. Disable the TCG test on sandbox. Link: https://lore.kernel.org/r/[email protected]
2025-06-26test: disable TCG test on sandboxHeinrich Schuchardt
The TPM emulation on the sandbox is incomplete. Even basic tcg2 functionality like get_capability() fails: lib/efi_selftest/efi_selftest_tcg2.c(886): ERROR: get_manufacturer_id buffer too small failed Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Javier Martinez Canillas <[email protected]>
2025-06-26Merge patch series "mkimage: validate image references in FIT configurations"Tom Rini
Aristo Chen <[email protected]> says: This series introduces a validation step in mkimage to ensure that all image names referenced under the /configurations node of a FIT source (ITS) are actually defined under the /images node. ### Motivation When using mkimage to build FIT images, it's easy to mistakenly reference nonexistent image nodes in configurations (e.g., referencing a missing `fdt` or `firmware` node). Such issues are often not caught until runtime in U-Boot. This series aims to catch these errors early during FIT image creation by validating the configuration references in mkimage itself. Link: https://lore.kernel.org/r/[email protected]
2025-06-26test: py: add mkimage test for undefined image references in FIT configsAristo Chen
Add a test case to verify that mkimage correctly rejects a FIT source that references a non-existent image from a configuration node. This test introduces a minimal ITS that defines a valid kernel image but references a missing "fdt" image under the /configurations section. The test asserts that mkimage fails with a clear error message, as introduced in the new validation logic. This helps ensure the validation logic behaves correctly and prevents regressions in future FIT enhancements. Signed-off-by: Aristo Chen <[email protected]>
2025-06-23Merge tag 'v2025.07-rc5' into nextTom Rini
Prepare v2025.07-rc5 With this merge, tighten up the LTO_FLAGS removal we added to not trigger on ARMv7 (which is Thumb-2 and should be fine).
2025-06-17test/py: tests: gpt: add test_gpt_write_part_typePatrick Delaunay
Add sandbox test on gpt command with partition type for known type. Signed-off-by: Patrick Delaunay <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2025-06-10test: tpm: Skip failing tests on coralSimon Glass
These tests have been failing for some months. Disable them so that a CI run can pass on coral. Further work will be needed to see how to make them pass. Signed-off-by: Simon Glass <[email protected]> Acked-by: Ilias Apalodimas <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
2025-06-10tpm: Drop unwanted special cases for sandboxSimon Glass
These don't seem to be needed. Add a few notes about what to do next. Also mention parallel tests in at the top of thefile. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
2025-06-10tpm: Convert sandbox-focussed tests to CSimon Glass
Some of the Python tests are a pain because they don't reset the TPM state before each test. Driver model tests do this, so convert the tests to C. This means that these tests won't run on real hardware, but we have tests which do TPM init, so there is still enough coverage. Rename and update the Python tpm_init test to use 'tpm autostart', since this fully initializes the TPM and performs the self tests. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
2025-05-18test: allow testing with NET_LWIP=yHeinrich Schuchardt
Adjust network tests to run with CONFIG_NET_LWIP=y. Signed-off-by: Heinrich Schuchardt <[email protected]> Acked-by: Jerome Forissier <[email protected]>
2025-05-11test/py/test_efi_fit: test fdt and initrdAdriano Cordova
Add tests to check initrd and dtb loading Signed-off-by: Adriano Cordova <[email protected]>
2025-05-11doc: pytest: Document the test_button testTom Rini
Add this test to the documentation. No changes to the test itself were required. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-05-11doc: pytest: Document the test_bootmenu testTom Rini
Add this test to the documentation. There was already a function comment that included the argument, so convert it to the right style to be rendered correctly in output. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-05-11doc: pytest: Document the test_bind testTom Rini
Add this test to the documentation. None of the functions had comments, so attempt to explain what each does. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-05-11doc: pytest: Document the test_efi_loader testTom Rini
Add this test to the documentation. We need to add a code-block annotation to the example and indent it correctly. We also need to document the do_test_efi_helloworld_net function and that in turn means changing the documentation to test_efi_helloworld_net_http and test_efi_helloworld_net_tftp to reflect what is and isn't done in those functions themselves now. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-05-11doc: pytest: Document the test_bootstage testTom Rini
Add this test to the documentation. We need to move the import to follow the main comment so that it renders correctly, and add a code-block annotation to the example and indent it correctly. Next, neither of the functions had comments themselves, so document them now. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-05-11doc: pytest: Document the test_net testTom Rini
Add this test to the documentation. While the diff appears large at first, the only changes within the test are to move the imports to follow the pydoc comment and then to code-block and indent the example configuration. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-05-11test: test_net_boot: Add more commentsTom Rini
Some of the functions were missing pydoc comments. Add them so they will be included in the documentation. Reported-by: Heinrich Schuchardt <[email protected]> Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-05-11doc: pytest: Document the test_net_boot testTom Rini
Add the test_net_boot.py test to the generated documentation. While most of this was already commented correctly for inclusion the biggest problem was examples of code without a code-block notation. This in turn broke parsing. Add the missing notations. We also must have the comment prior to any import lines or it will not be seen as a comment on the overall file and thus not included. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-05-11doc: pytest: Framework for documenting tests and document test_000_versionTom Rini
In order to easily document pytests, we need to include the autodoc extension. We also need to make sure that for building the docs, CI includes pytest and that we have PYTHONPATH configured such that it will find all of the tests and related files. Finally, we need to have our comments in the test file by in proper pydoc format in order to be included in the output. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-04-24test/py: spi: Prevent to overwrite the reserved memoryLove Kumar
Update SPI negative tests to prevent SF command from overwriting the reserved memory area. Signed-off-by: Love Kumar <[email protected]>
2025-04-21Merge patch series "fs: exfat: Flush node before put in read() callback"Tom Rini
This series from Marek Vasut <[email protected]> includes a number of fixes to the exFAT filesystem support that he recently added. Link: https://lore.kernel.org/r/[email protected]
2025-04-21test_fs: Test 'mv' command on exfat and fs_genericMarek Vasut
Enable tests for the generic FS interface 'mv' command against both exfat and fs_generic. Signed-off-by: Marek Vasut <[email protected]>
2025-04-21test_fs: Add test -e testMarek Vasut
Add test for the 'test -e' command to check for existence of files. This exercises struct fstype_info .exists callback. Signed-off-by: Marek Vasut <[email protected]>
2025-04-14Merge patch series "Static initcalls"Tom Rini
Jerome Forissier <[email protected]> says: This series replaces the dynamic initcalls (with function pointers) with static calls, and gets rid of initcall_run_list(), init_sequence_f, init_sequence_f_r and init_sequence_r. This makes the code simpler and the binary slighlty smaller: -2281 bytes/-0.21 % with LTO enabled and -510 bytes/-0.05 % with LTO disabled (xilinx_zynqmp_kria_defconfig). Execution time doesn't seem to change noticeably. There is no impact on the SPL. The inline assembly fixes, although they look unrelated, are triggered on some platforms with LTO enabled. For example: kirkwood_defconfig. CI: https://source.denx.de/u-boot/custodians/u-boot-net/-/pipelines/25514 Link: https://lore.kernel.org/r/[email protected]
2025-04-14common: board: make initcalls staticJerome Forissier
Change board_init_f(), board_init_f_r() and board_init_r() to make static calls instead of iterating over the init_sequence_f, init_sequence_f_r and init_sequence_r arrays, respectively. This makes the code a simpler (and even more so when initcall_run_list() is later removed) and it reduces the binary size as well. Tested with xilinx_zynqmp_kria_defconfig; bloat-o-meter results: - With LTO add/remove: 106/196 grow/shrink: 10/28 up/down: 31548/-33829 (-2281) Total: Before=1070471, After=1068190, chg -0.21% - Without LTO add/remove: 0/54 grow/shrink: 3/0 up/down: 2322/-2832 (-510) Total: Before=1121723, After=1121213, chg -0.05% Execution time does not change in a noticeable way. Signed-off-by: Jerome Forissier <[email protected]>