[PATCH 1/2] test/py: Use loop mounts if guestmount fails in filesystem tests
Simon Glass
sjg at chromium.org
Sat Jun 26 20:29:53 CEST 2021
On Fri, 4 Jun 2021 at 13:05, Alper Nebi Yasak <alpernebiyasak at gmail.com> wrote:
>
> 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 <alpernebiyasak at gmail.com>
> ---
>
> test/py/tests/test_fs/conftest.py | 31 +++++++++++++++----------------
> 1 file changed, 15 insertions(+), 16 deletions(-)
https://source.denx.de/u-boot/custodians/u-boot-dm/-/jobs/282788
thoughts below
>
> diff --git a/test/py/tests/test_fs/conftest.py b/test/py/tests/test_fs/conftest.py
> index 410a675b9714..e3c461635f8e 100644
> --- a/test/py/tests/test_fs/conftest.py
> +++ b/test/py/tests/test_fs/conftest.py
> @@ -205,24 +205,23 @@ def mount_fs(fs_type, device, mount_point):
> """
> global fuse_mounted
>
> - fuse_mounted = False
> try:
> - if tool_is_in_path('guestmount'):
> - fuse_mounted = True
> - check_call('guestmount -a %s -m /dev/sda %s'
> - % (device, mount_point), shell=True)
> - else:
> - mount_opt = 'loop,rw'
> - if re.match('fat', fs_type):
> - mount_opt += ',umask=0000'
> -
> - check_call('sudo mount -o %s %s %s'
> - % (mount_opt, device, mount_point), shell=True)
> -
> - # may not be effective for some file systems
> - check_call('sudo chmod a+rw %s' % mount_point, shell=True)
> + check_call('guestmount -a %s -m /dev/sda %s'
> + % (device, mount_point), shell=True)
> + fuse_mounted = True
> + return
> except CalledProcessError:
> - raise
> + fuse_mounted = False
> +
> + mount_opt = 'loop,rw'
> + if re.match('fat', fs_type):
This seems ambiguous. I think you should use:
if 'fat' in fs_type:
or
if fs_type.startswith('fat'):
or
if fs_type == 'fat':
so it is clear what you mean.
> + mount_opt += ',umask=0000'
> +
> + check_call('sudo mount -o %s %s %s'
> + % (mount_opt, device, mount_point), shell=True)
> +
> + # may not be effective for some file systems
> + check_call('sudo chmod a+rw %s' % mount_point, shell=True)
>
> def umount_fs(mount_point):
> """Unmount a volume.
> --
> 2.32.0.rc2
>
Regards,
Simon
More information about the U-Boot
mailing list