Message ID | 20200709134225.10412-1-trini@konsulko.com |
---|---|
State | New |
Headers | show |
Series | [v2] test: Have test_fs work with non-functional guestmount tools | expand |
On 7/9/20 7:42 AM, Tom Rini wrote: > Since 2011 Ubuntu has intentionally broken support for guestmount[1] by > default and requires sysadmin intervention to re-enable support. This > in turn exposed that in our tests if guestmount is available but fails > we do not fall back to trying to use sudo. Restructure our code to try > sudo if guestmount fails rather than only when it is not in our path. > Further, only note that we are using fuse on success of the call. > > [1]: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725 Reviewed-by: Stephen Warren <swarren at nvidia.com>
On Thu, 9 Jul 2020 at 07:42, Tom Rini <trini at konsulko.com> wrote: > > Since 2011 Ubuntu has intentionally broken support for guestmount[1] by > default and requires sysadmin intervention to re-enable support. This > in turn exposed that in our tests if guestmount is available but fails > we do not fall back to trying to use sudo. Restructure our code to try > sudo if guestmount fails rather than only when it is not in our path. > Further, only note that we are using fuse on success of the call. > > [1]: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725 > > Cc: Heinrich Schuchardt <xypron.glpk at gmx.de> > Cc: Simon Glass <sjg at chromium.org> > Cc: Stephen Warren <swarren at nvidia.com> > Signed-off-by: Tom Rini <trini at konsulko.com> > --- > Changes in v2: > - Rework to not have another try/except nesting as Stephen suggested. > Tested this out and we still skip the tests and now note that sudo > doesn't work. Since the README for tests says sudo or guestmount, I > think this is OK. > > This, I suspect, will also fix the cases where in CI we attempt to run > the FS tests but do not as guestmount fails. I'm not going to remove > guestmount from the Docker containers as it's a useful reference for > "what is required for a minimal environment for U-Boot builds" and > perhaps we will switch to Debian instead at some point. > --- > test/py/tests/test_fs/conftest.py | 20 +++++++++----------- > 1 file changed, 9 insertions(+), 11 deletions(-) Reviewed-by: Simon Glass <sjg at chromium.org>
diff --git a/test/py/tests/test_fs/conftest.py b/test/py/tests/test_fs/conftest.py index ee82169c2a37..188b9b1ddef8 100644 --- a/test/py/tests/test_fs/conftest.py +++ b/test/py/tests/test_fs/conftest.py @@ -206,21 +206,19 @@ def mount_fs(fs_type, device, mount_point): 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' + fuse_mounted = True + except CalledProcessError: + 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) + 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) - except CalledProcessError: - raise + # 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.
Since 2011 Ubuntu has intentionally broken support for guestmount[1] by default and requires sysadmin intervention to re-enable support. This in turn exposed that in our tests if guestmount is available but fails we do not fall back to trying to use sudo. Restructure our code to try sudo if guestmount fails rather than only when it is not in our path. Further, only note that we are using fuse on success of the call. [1]: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725 Cc: Heinrich Schuchardt <xypron.glpk at gmx.de> Cc: Simon Glass <sjg at chromium.org> Cc: Stephen Warren <swarren at nvidia.com> Signed-off-by: Tom Rini <trini at konsulko.com> --- Changes in v2: - Rework to not have another try/except nesting as Stephen suggested. Tested this out and we still skip the tests and now note that sudo doesn't work. Since the README for tests says sudo or guestmount, I think this is OK. This, I suspect, will also fix the cases where in CI we attempt to run the FS tests but do not as guestmount fails. I'm not going to remove guestmount from the Docker containers as it's a useful reference for "what is required for a minimal environment for U-Boot builds" and perhaps we will switch to Debian instead at some point. --- test/py/tests/test_fs/conftest.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-)