summaryrefslogtreecommitdiff
path: root/test/py/tests
AgeCommit message (Collapse)Author
2022-04-04Merge branch 'next'Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2022-03-31test: py: vboot: add test for global image signaturePhilippe Reynes
Adds test units for the pre-load header signature. Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31arch: Kconfig: imply BINMAN for SANDBOXPhilippe Reynes
To be able to use the tool binman on sandbox, the config SANDBOX should imply BINMAN. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31test: fix pylint warnings in test_efi_bootmgrHeinrich Schuchardt
* Use f'' strings instead of .format(). * Correct sequence of imports. * Remove a superfluous import. * Add missing documentation. * Replace yield by return. Signed-off-by: Heinrich Schuchardt <[email protected]>
2022-03-31test: fix pylint warnings for test_efi_fit.pyHeinrich Schuchardt
* fix style of argument documentation * add encoding to open() calls Signed-off-by: Heinrich Schuchardt <[email protected]>
2022-03-28Merge tag 'v2022.04-rc5' into nextTom Rini
Prepare v2022.04-rc5
2022-03-26test: test UEFI boot managerHeinrich Schuchardt
Provide a unit test for * efidebug boot add * efidebug boot order * bootefi bootmgr * initrd via EFI_LOAD_FILE2_PROTOCOL Signed-off-by: Heinrich Schuchardt <[email protected]>
2022-03-15test/py: Add tests for the erofsHuang Jianan
Add Python scripts to test 'ls' and 'load' commands, as well as test related filesystem functions. Signed-off-by: Huang Jianan <[email protected]>
2022-03-10event: Add a script to decode the event-spy listSimon Glass
For debugging and dicoverability it is useful to be able to see a list of each event spy in a U-Boot ELF file. Add a script which shows this, along with the event type and the source location. This makes events a little easier to use than weak functions, for example. Add a basic sandbox test as well. We could provide a test for other boards, but for now, few use events. Signed-off-by: Simon Glass <[email protected]>
2022-03-02test: Correct pylint errorsSimon Glass
Fix pylint errors in all test. This requires adding a get_spawn() method to the ConsoleBase base, so that its subclass is happy. Signed-off-by: Simon Glass <[email protected]>
2022-02-26efi_loader: test/py: Reset system after capsule update on diskMasami Hiramatsu
Add a cold reset soon after processing capsule update on disk. This is required in UEFI specification 2.9 Section 8.5.5 "Delivery of Capsules via file on Mass Storage device" as; In all cases that a capsule is identified for processing the system is restarted after capsule processing is completed. This also reports the result of each capsule update so that the user can notice that the capsule update has been succeeded or not from console log. Signed-off-by: Masami Hiramatsu <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2022-02-11Merge tag 'efi-2022-04-rc2-4' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi Pull request for efi-2022-04-rc2-4 Documentation: * mkeficapsule man-page UEFI changes: * add support for signing images to mkeficapsule * add support for user define capsule GUID * adjust unit tests for capsules * fix UEFI image signature validation in case of multiple signatures
2022-02-11test/py: efi_secboot: adjust secure boot tests to code changesIlias Apalodimas
The previous patch is changing U-Boot's behavior wrt certificate based binary authentication. Specifically an image who's digest of a certificate is found in dbx is now rejected. Fix the test accordingly and add another one testing signatures in reverse order Signed-off-by: Ilias Apalodimas <[email protected]>
2022-02-11test/py: efi_capsule: check the results in case of CAPSULE_AUTHENTICATEAKASHI Takahiro
Before the capsule authentication is supported, this test script works correctly, but with the feature enabled, most tests will fail due to unsigned capsules. So check the results depending on CAPSULE_AUTHENTICATE or not. Signed-off-by: AKASHI Takahiro <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-02-11test/py: efi_capsule: add a test for "--guid" optionAKASHI Takahiro
This test scenario tests a new feature of mkeficapsule, "--guid" option, which allows us to specify FMP driver's guid explicitly at the command line. Signed-off-by: AKASHI Takahiro <[email protected]>
2022-02-11test/py: efi_capsule: align with the syntax change of mkeficapsuleAKASHI Takahiro
Since the syntax of mkeficapsule was changed in the previous commit, we need to modify command line arguments in a pytest script. Signed-off-by: AKASHI Takahiro <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-02-11test/py: efi_capsule: add image authentication testAKASHI Takahiro
Add a couple of test cases against capsule image authentication for capsule-on-disk, where only a signed capsule file with the verified signature will be applied to the system. Due to the difficulty of embedding a public key (esl file) in U-Boot binary during pytest setup time, all the keys/certificates are pre-created. Signed-off-by: AKASHI Takahiro <[email protected]> Reviewed-by: Simon Glass <[email protected]> Acked-by: Ilias Apalodimas <[email protected]>
2022-02-11test/py: Add test case for mkimage -o argumentJan Kiszka
Stress the '-o algo_name' argument of mkimage by expanding the vboot test. Signed-off-by: Jan Kiszka <[email protected]> Reviewed-by: Simon Glass <[email protected]> [trini: Update scripts/pylint.base]
2022-01-28rsa: adds rsa3072 algorithmJamin Lin
Add to support rsa 3072 bits algorithm in tools for image sign at host side and adds rsa 3072 bits verification in the image binary. Add test case in vboot for sha384 with rsa3072 algorithm testing. Signed-off-by: Jamin Lin <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-01-24test: fix pylint warnings in test_env.pyHeinrich Schuchardt
* assert does not need parentheses * add module docstring * fix misspelled constant True * limit lines to 100 characters Signed-off-by: Heinrich Schuchardt <[email protected]>
2022-01-14test: test_lsblk: Mark as sandbox specificPatrick Delaunay
This test checks for output specific to the sandbox blk device "sandbox_host_blk", mark it as sandbox specific. Signed-off-by: Patrick Delaunay <[email protected]>
2021-12-20Merge tag 'v2022.01-rc4' into nextTom Rini
Prepare v2022.01-rc4
2021-11-30test: unit test for the EFI_TCG2_PROTOCOLHeinrich Schuchardt
Encapsulate the UEFI EFI_TCG2_PROTOCOL unit test in an Python test. Signed-off-by: Heinrich Schuchardt <[email protected]>
2021-11-30configs: enable CMD_TPM on QEMU ARMHeinrich Schuchardt
With TPM emulation enabled in u-boot-test-hooks we should also provide the tpm2 command used for the test/py/tests/test_tpm2.py test. One of the Python TPMv2 tests expects sandbox specific values. So disable it on other platforms. Signed-off-by: Heinrich Schuchardt <[email protected]>
2021-11-29Merge tag 'v2022.01-rc3' into nextTom Rini
Prepare v2022.01-rc3 Signed-off-by: Tom Rini <[email protected]>
2021-11-26test: address some pylint warningsHeinrich Schuchardt
* remove unused variables * module description must precede import statements * fix inconsistent return values Signed-off-by: Heinrich Schuchardt <[email protected]>
2021-11-16env: Allow U-Boot scripts to be placed in a .env fileSimon Glass
At present U-Boot environment variables, and thus scripts, are defined by CONFIG_EXTRA_ENV_SETTINGS. It is painful to add large amounts of text to this file and dealing with quoting and newlines is harder than it should be. It would be better if we could just type the script into a text file and have it included by U-Boot. Add a feature that brings in a .env file associated with the board config, if present. To use it, create a file in a board/<vendor> directory, typically called <board>.env and controlled by the CONFIG_ENV_SOURCE_FILE option. The environment variables should be of the form "var=value". Values can extend to multiple lines. See the README under 'Environment Variables:' for more information and an example. In many cases environment variables need access to the U-Boot CONFIG variables to select different options. Enable this so that the environment scripts can be as useful as the ones currently in the board config files. This uses the C preprocessor, means that comments can be included in the environment using /* ... */ Also support += to allow variables to be appended to. This is needed when using the preprocessor. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Marek Behún <[email protected]> Tested-by: Marek Behún <[email protected]>
2021-10-12Merge tag 'u-boot-stm32-20211012' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-stm - Disable ATAGS for STM32 MCU and MPU boards - Disable bi_boot_params for STM32 MCU and MPU boards - Update stm32-usbphyc node management - Convert CONFIG_STM32_FLASH to Kconfig for STM32 MCU boards - Convert some USB config flags to Kconfig for various boards - Convert CONFIG_BOOTCOMMAND flag to Kconfig for STM32 F429 board - Remove specific CONFIG_STV0991 flags - Remove unused CONFIG_USER_LOWLEVEL_INIT flag - Add ofdata_to_platdata() callback for stm32_spi driver - Update for stm32f7_i2c driver - Remove gpio_hog_probe_all() from STM32 MP1 board - Fix bind command Signed-off-by: Tom Rini <[email protected]>
2021-10-12test/py: Add usb gadget binding testPatrice Chotard
Add a specific usb gadget binding test which check that binding a driver without compatible string is working as expected. the command "bind /usb@1 usb_ether" should give the following "dm tree" command output: [...] usb 0 [ ] usb_sandbox |-- usb@1 usb_hub 0 [ ] usb_hub | |-- hub usb_emul 0 [ ] usb_sandbox_hub | | `-- hub-emul usb_emul 1 [ ] usb_sandbox_flash | | |-- flash-stick@0 usb_emul 2 [ ] usb_sandbox_flash | | |-- flash-stick@1 usb_emul 3 [ ] usb_sandbox_flash | | |-- flash-stick@2 usb_emul 4 [ ] usb_sandbox_keyb | | `-- keyb@3 eth 4 [ ] usb_ether | `-- usb@1 [...] Signed-off-by: Patrice Chotard <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Herbert Poetzl <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2021-10-05test: Allow tpm2 tests to run in parallelSimon Glass
These tests currently run in a particular sequence, with some of them depending on the actions of earlier tests. Add a check for sandbox and reset to a known state at the start of each test, so that all tests can run in parallel. Signed-off-by: Simon Glass <[email protected]>
2021-10-05test: Allow hush tests to run in parallelSimon Glass
The -z tests don't really need to be part of the main set. Separate them out so we can drop the test setup/cleans functions and thus run all tests in parallel. Signed-off-by: Simon Glass <[email protected]>
2021-10-05test: Allow vboot tests to run in parallelSimon Glass
Update the tests to use separate working directories, so we can run them in parallel. It also makes it possible to see the individual output files after the tests have completed. Signed-off-by: Simon Glass <[email protected]>
2021-10-05test/py: Check hashes produced by mkimage against known valuesAlexandru Gagniuc
Target code and mkimage share the same hashing infrastructure. If one is wrong, it's very likely that both are wrong in the same way. Thus testing won't catch hash regressions. This already happened in commit 92055e138f28 ("image: Drop if/elseif hash selection in calculate_hash()"). None of the tests caught that CRC32 was broken. Instead of testing hash_calculate() against itself, create a FIT with containing a kernel with pre-calculated hashes. Then check the hashes produced against the known good hashes. Signed-off-by: Alexandru Gagniuc <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2021-09-24test/py: tpm2: Skip tpm pytest based on env variableT Karthik Reddy
Tpm test cases relies on tpm device setup. Provide an environment variable "env__tpm_device_test_skip = True" to skip the test case if tpm device is not present. Only needed will have to add variable to the py-test framework. Test runs successfully even this variable is absent. Signed-off-by: T Karthik Reddy <[email protected]> Signed-off-by: Ashok Reddy Soma <[email protected]> Acked-by: Ilias Apalodimas <[email protected]>
2021-08-01sandbox: tpm: Support extending a PCR multiple timesSimon Glass
It is fairly easy to handle this case and it makes the emulator more useful, since PCRs are commonly extended several times. Add support for this, using U-Boot's sha256 support. For now sandbox only supports a single PCR, but that is enough for the tests that currently exist. Signed-off-by: Simon Glass <[email protected]>
2021-07-28test/py: Improve check for mksquashfs versionMarek Behún
Some builds of squashfs-tools append version string with "-git" or similar. The float() conversion will fail in this case. Improve the code to only convert to float() the string before the '-' character. Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Joao Marcos Costa <[email protected]>
2021-07-24test/py: efi_capsule: align with efidebug syntax changesAKASHI Takahiro
After the commit c70f44817d46 ("efi_loader: simplify 'printenv -e'"), "-all" option is no longer necessary. Just remove them in the test script. Fixes: c70f44817d46 ("efi_loader: simplify 'printenv -e'") Signed-off-by: AKASHI Takahiro <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2021-07-23cmd: pinmux: update result of do_statusPatrick Delaunay
Update the result of do_status and always returns a CMD_RET_ value (-ENOSYS was a possible result of show_pinmux). This patch also adds pincontrol name in error messages (dev->name) and treats correctly the status sub command when pin-controller device is not selected. Signed-off-by: Patrick Delaunay <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2021-07-05test/py: rewrite sqfsls command test suiteJoao Marcos Costa
Add more details to test cases by comparing each expected line with the command's output. Add new test cases: - sqfsls at an empty directory - sqfsls at a sub-directory Reviewed-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]> [on sandbox] Signed-off-by: Joao Marcos Costa <[email protected]>
2021-07-05test/py: rewrite sqfsload command test suiteJoao Marcos Costa
The previous strategy to know if a file was correctly loaded was to check for how many bytes were read and compare it against the file's original size. Since this is not a good solution, replace it by comparing the checksum of the loaded bytes against the original file's checksum. Add more test cases: files at a sub-directory and non-existent file. Reviewed-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]> [on sandbox] Signed-off-by: Joao Marcos Costa <[email protected]>
2021-07-05test/py: rewrite common tools for SquashFS testsJoao Marcos Costa
Remove the previous OOP approach, which was confusing and incomplete. Add more test cases by making SquashFS images with various options, concerning file fragmentation and its compression. Add comments to properly document the code. Reviewed-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]> [on sandbox] Signed-off-by: Joao Marcos Costa <[email protected]>
2021-07-05test/py: Wait for guestmount worker to exit after running guestunmountAlper Nebi Yasak
Some filesystem tests are failing when their image is prepared with guestmount, but succeeding if loop mounts are used instead. The reason seems to be a race condition the guestmount(1) manual page explains: When guestunmount(1)/fusermount(1) exits, guestmount may still be running and cleaning up the mountpoint. The disk image will not be fully finalized. This means that scripts like the following have a nasty race condition: guestmount -a disk.img -i /mnt # copy things into /mnt guestunmount /mnt # immediately try to use 'disk.img' ** UNSAFE ** The solution is to use the --pid-file option to write the guestmount PID to a file, then after guestunmount spin waiting for this PID to exit. The Python standard library has an os.waitpid() function for waiting a child to terminate, but it cannot wait on non-child processes. Implement a utility function that can do this by polling the process repeatedly for a given duration, optionally killing the process if it won't terminate on its own. Apply the suggested solution with this utility function, which makes the failing tests succeed again. Signed-off-by: Alper Nebi Yasak <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2021-07-05test/py: Use loop mounts if guestmount fails in filesystem testsAlper Nebi Yasak
If guestmount isn't available on the system, filesystem test setup falls back to using loop mounts to prepare its disk images. If guestmount is available but fails to work, the tests are immediately skipped. Instead of giving up on a guestmount failure, try using loop mounts as an attempt to keep tests running. Also stop checking if guestmount is in PATH, as trying to run a missing guestmount can now follow the same failure codepath and fall back to loop mounts anyway. Signed-off-by: Alper Nebi Yasak <[email protected]>
2021-06-23test: Include /sbin to the PATH when creating file systemAndy Shevchenko
On some distributions the mkfs is under /sbin and /sbin is not set for mere users. Include /sbin to the PATH when creating file system, so that users won't get a scary traceback from Python. Signed-off-by: Andy Shevchenko <[email protected]>
2021-05-26test: Fix filesystem tests always being skippedAlper Nebi Yasak
Commit 1ba21bb06b08 ("test: Don't unmount not (yet) mounted system") fixes an issue in the filesystem tests where the test setup may fail to mount an image and still attempt to unmount it. However, the commit unintentionally breaks the test setups in two ways. The newly created unmounted filesystem images are being immediately deleted due to some cleanup steps being misplaced into finally blocks, which makes them always run instead of only on failures. The mount calls always fail since the images never exist, causing the tests to be always skipped. This patch moves these cleanup calls into the except blocks to fix this and makes the tests run again. There are also unmount calls misplaced into finally blocks, making them run after the tests instead of before the tests. These unmount calls make the filesystem image file consistent with the changes made to it as part of the test setup, and this misplacement is making a number of tests fail unexpectedly. The unmount calls must be run before the tests use the image, meaning before the yield call and not in the finally block. They must also be run as a cleanup step when the filesystem setup fails, so they can't be placed as the final call in the try blocks since they would be skipped on such failures. For these reasons, this patch places the unmount calls both in the except blocks and the else blocks of the final setup step. This makes the unexpectedly failing tests to succeed again. Furthermore, this isolates the mount calls to their own try-except statement to avoid reintroducing the original issue of unmounting a not-mounted image while fixing the unmount misplacement. After these fixes, running "make tests" with guestmount available results in two test failures not related to the mentioned commit. If the guestmount executables are unavailable, the mounts fallback to using sudo and result in no failures. Fixes: 1ba21bb06b08 ("test: Don't unmount not (yet) mounted system") Signed-off-by: Alper Nebi Yasak <[email protected]> Acked-by: Andy Shevchenko <[email protected]>
2021-05-13pytest: add sandbox test for "extension" commandKory Maincent
This commit extends the sandbox to implement a dummy extension_board_scan() function and enables the extension command in the sandbox configuration. It then adds a test that checks the proper functionality of the extension command by applying two Device Tree overlays to the sandbox Device Tree. Signed-off-by: Kory Maincent <[email protected]> [trini: Limit to running on sandbox] Signed-off-by: Tom Rini <[email protected]>
2021-04-24test/py: Fix efidebug related testsIlias Apalodimas
commit cbea241e935e("efidebug: add multiple device path instances on Boot####") slightly tweaked the efidebug syntax adding -b, -i and -s for the boot image, initrd and optional data. The pytests using this command were adapted as well. However I completely missed the last "" argument, which at the time indicated the optional data and needed conversion as well. This patch is adding the missing -s flag and the tests are back to normal. Fixes: cbea241e935e("efidebug: add multiple device path instances on Boot####") Signed-off-by: Ilias Apalodimas <[email protected]> Reviwed-by: Heinrich Schuchardt <[email protected]>
2021-04-20Add support for stack-protectorJoel Peshkin
Add support for stack protector for UBOOT, SPL, and TPL as well as new pytest for stackprotector Signed-off-by: Joel Peshkin <[email protected]> Adjust UEFI build flags. Signed-off-by: Heinrich Schuchardt <[email protected]>
2021-04-14test/py: ecdsa: Use mkimage keyfile instead of keydir argumentAlexandru Gagniuc
Originally, the ECDSA code path used 'keydir' as the key filename. mkimage has since been updated to include a new 'keyfile' argument. Use the new argument for passing in the key. Signed-off-by: Alexandru Gagniuc <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2021-04-14test/py: ecdsa: Add test for mkimage ECDSA signingAlexandru Gagniuc
Add a test to make sure that the ECDSA signatures generated by mkimage can be verified successfully. pyCryptodomex was chosen as the crypto library because it integrates much better with python code. Using openssl would have been unnecessarily painful. Signed-off-by: Alexandru Gagniuc <[email protected]> Reviewed-by: Simon Glass <[email protected]>