u-boot/test/py/tests
Alper Nebi Yasak 99f5303c8b test/py: Wait for guestmount worker to exit after running guestunmount
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 <alpernebiyasak@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2021-07-05 15:28:32 -04:00
..
test_android test/py: android: Add test for abootimg 2020-02-04 09:07:24 +05:30
test_efi_capsule test/py: Fix efidebug related tests 2021-04-24 06:53:40 +02:00
test_efi_secboot test/py: Fix efidebug related tests 2021-04-24 06:53:40 +02:00
test_fs test/py: Wait for guestmount worker to exit after running guestunmount 2021-07-05 15:28:32 -04:00
vboot pytest: vboot: add a test for required key 2019-10-15 08:40:02 -06:00
test_000_version.py SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
test_bind.py test/py: allow multi-digit index in in_tree() 2020-09-30 11:55:23 -04:00
test_button.py cmd/button: return button status 2020-10-14 11:16:34 -04:00
test_dfu.py test: Use single quote consistently 2019-01-15 15:28:41 -05:00
test_dm.py cmd: dm: Fixed/Added DM driver listing subcommands 2020-07-07 15:37:13 -04:00
test_efi_fit.py efi_loader: use logging for bootefi command 2020-07-22 12:32:42 +02:00
test_efi_loader.py test: do not rely on => being the prompt 2020-07-31 08:44:41 -04:00
test_efi_selftest.py test/py: serial# cannot be overwritten on some devices 2020-08-08 08:31:39 -04:00
test_env.py test: Include /sbin to the PATH when creating ext4 disk image 2021-03-17 12:50:19 -04:00
test_extension.py pytest: add sandbox test for "extension" command 2021-05-13 13:09:09 -04:00
test_fit.py fit: Don't allow verification of images with @ nodes 2021-02-15 19:17:25 -05:00
test_fit_ecdsa.py test/py: ecdsa: Use mkimage keyfile instead of keydir argument 2021-04-14 15:23:01 -04:00
test_fpga.py test/py: Automated conversion to Python 3 2019-10-30 17:48:47 -04:00
test_gpio.py cmd: gpio: Make gpio input return pin value again 2020-03-13 09:30:30 -04:00
test_gpt.py test/py: gpt: Use long options for sgdisk 2019-07-18 11:31:26 -04:00
test_handoff.py test: Fix the boardspec for the SPL handoff test 2020-01-02 10:27:23 -05:00
test_help.py SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
test_hush_if_test.py test/py: hush_if_test: Add tests to cover octal/hex values 2020-01-14 09:05:54 +01:00
test_log.py sandbox: Drop the 'starting...' message 2021-03-12 09:57:29 -05:00
test_lsblk.py cmd: blkls: Add blkls command 2020-07-07 15:37:13 -04:00
test_md.py SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
test_mmc_rd.py test/py: mmc: Fix 'mmc info' testcase 2020-03-27 15:42:04 -04:00
test_mmc_wr.py test/py: Automated conversion to Python 3 2019-10-30 17:48:47 -04:00
test_net.py test/py: use default load address for tftp 2019-02-12 07:19:24 -05:00
test_ofplatdata.py test: Re-enable test_ofplatdata 2021-03-12 09:57:29 -05:00
test_part.py cmd: part: Add subcommand to list supported partition tables 2020-07-07 15:22:42 -04:00
test_pinmux.py test: pinmux: Add test for pin muxing 2020-10-08 11:42:36 -04:00
test_pstore.py test: Add PStore command tests 2020-10-14 11:16:34 -04:00
test_pstore_data_console.hex test: Add PStore command tests 2020-10-14 11:16:34 -04:00
test_pstore_data_panic1.hex test: Add PStore command tests 2020-10-14 11:16:34 -04:00
test_pstore_data_panic2.hex test: Add PStore command tests 2020-10-14 11:16:34 -04:00
test_qfw.py test: qemu: add qfw sandbox driver, dm tests, qemu tests 2021-04-12 17:45:39 -04:00
test_sandbox_exit.py test: unit test for exception command 2020-12-13 07:58:17 -07:00
test_scp03.py test: py: add initial coverage for scp03 cmd 2021-03-14 11:50:16 -04:00
test_sf.py SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
test_shell_basics.py test: py: test_shell_run() with CONFIG_HUSH_PARSER=n 2020-08-07 22:31:32 -04:00
test_sleep.py test_sleep.py: make sleep time and margin configurable 2020-07-07 18:23:48 -04:00
test_spl.py test: Run only the selected SPL test 2020-10-29 14:42:18 -06:00
test_stackprotector.py Add support for stack-protector 2021-04-20 07:31:12 -04:00
test_tpm2.py test/py: tpm2: switch from 'tpm' to 'tpm2' command 2018-07-28 11:58:08 -04:00
test_ums.py test: Use single quote consistently 2019-01-15 15:28:41 -05:00
test_unknown_cmd.py SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
test_ut.py test: describe naming conventions for macro UNIT_TEST 2020-05-08 18:29:13 -04:00
test_vboot.py image: Check for unit addresses in FITs 2021-02-15 22:31:54 -05:00
vboot_evil.py test: Add vboot_evil implementation 2021-02-15 19:17:29 -05:00
vboot_forge.py fit: Don't allow verification of images with @ nodes 2021-02-15 19:17:25 -05:00