u-boot/test
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
..
cmd display_options: Drop two spaces before the ASCII column 2021-06-08 11:39:09 -04:00
dm Prepare v2021.07-rc5 2021-06-28 16:22:13 -04:00
env sandbox: add test of CONFIG_ENV_IMPORT_FDT 2021-05-04 12:52:30 -04:00
fs Consistently use nproc for counting the CPUs 2020-01-30 13:30:35 -05:00
image spl: test: Add a test for spl_load_simple_fit() 2021-03-12 09:57:31 -05:00
lib test: lmb: add test for lmb_reserve_flags 2021-06-07 10:48:40 -04:00
log log: Convert log values to printf() if not enabled 2021-06-08 11:39:09 -04:00
optee test: Add a macros for finding tests in linker_lists 2021-03-12 09:57:30 -05:00
overlay test: Add a macros for finding tests in linker_lists 2021-03-12 09:57:30 -05:00
py test/py: Wait for guestmount worker to exit after running guestunmount 2021-07-05 15:28:32 -04:00
stdint Remove <inttypes.h> includes and PRI* usages in printf() entirely 2018-09-10 20:48:17 -04:00
trace SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bloblist.c test: Add a macros for finding tests in linker_lists 2021-03-12 09:57:30 -05:00
bootm.c test: Add a macros for finding tests in linker_lists 2021-03-12 09:57:30 -05:00
cmd_ut.c test: Convert print tests to use ut framework 2021-06-08 11:39:09 -04:00
command_ut.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
common.sh Consistently use nproc for counting the CPUs 2020-01-30 13:30:35 -05:00
compression.c test: Add a macros for finding tests in linker_lists 2021-03-12 09:57:30 -05:00
Kconfig test: linking test/compression.c fails 2020-11-05 09:11:31 -07:00
Makefile spl: test: Add a test for spl_load_simple_fit() 2021-03-12 09:57:31 -05:00
nokia_rx51_test.sh Nokia RX-51: Add test for U-Boot serial console 2021-01-12 10:59:04 +05:30
print_ut.c display_options: Split print_buffer() into two functions 2021-06-08 11:39:09 -04:00
run test: Run sandbox_spl tests on sandbox_noinst 2021-03-26 17:03:09 +13:00
str_ut.c test: Add a macros for finding tests in linker_lists 2021-03-12 09:57:30 -05:00
test-main.c test: Use positive conditional in test_matches() 2021-04-29 03:23:39 -07:00
time_ut.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
unicode_ut.c Prepare v2021.04-rc4 2021-03-15 12:15:38 -04:00
ut.c display_options: Drop two spaces before the ASCII column 2021-06-08 11:39:09 -04:00