From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: u-boot@lists.denx.de
Subject: [PATCH 2/2] test/py: fix test_efi_secboot/conftest.py
Date: Thu, 23 Apr 2020 09:15:26 +0900 [thread overview]
Message-ID: <20200423001526.GB28438@laputa> (raw)
In-Reply-To: <20200422155255.148711-3-xypron.glpk@gmx.de>
Heinrich,
On Wed, Apr 22, 2020 at 05:52:55PM +0200, Heinrich Schuchardt wrote:
> If udisksctl is present
> test/py/tests/test_efi_secboot/conftest.py
> fails because the disk image is never mounted.
>
> Normal users can only mount fuse file systems. Unfortunately fusefat is
> still in an experimental state and seems not to work here correctly.
I haven't confirmed that fuse/fat is not stable, but
> So as we have to be root or use the sudo command anyway delete all coding
> referring to udisksctl.
I don't mind non-root path being deleted as it was used when Travis CI
didn't work with "sudo".
> --
>
> We should not use mount point /mnt as this directory or one of its
> sub-directories might already be in use as active mount points. Instead
> create a new directory in the build root as mount point.
>
> --
>
> Remove debug print statements that have been commented out. print without
> parentheses is anyway invalid in Python 3. And pytest anyway filters out
> the output if there is no exception reported.
'printing a mount point' was mostly useful for debugging
non-root path.
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> ---
> test/py/tests/test_efi_secboot/conftest.py | 30 +++++-----------------
> 1 file changed, 6 insertions(+), 24 deletions(-)
>
> diff --git a/test/py/tests/test_efi_secboot/conftest.py b/test/py/tests/test_efi_secboot/conftest.py
> index 40cdf15bf2..93d308cf0d 100644
> --- a/test/py/tests/test_efi_secboot/conftest.py
> +++ b/test/py/tests/test_efi_secboot/conftest.py
> @@ -43,7 +43,8 @@ def efi_boot_env(request, u_boot_config):
> HELLO_PATH = u_boot_config.build_dir + '/lib/efi_loader/helloworld.efi'
>
> try:
> - non_root = tool_is_in_path('udisksctl')
> + mnt_point = u_boot_config.persistent_data_dir + '/mnt_efisecure'
> + check_call('mkdir -p {}'.format(mnt_point), shell=True)
For consistency, it would be better to use "%" formatting as elsewhere
in the file.
Thanks,
-Takahiro Akashi
>
> # create a disk/partition
> check_call('dd if=/dev/zero of=%s bs=1MiB count=%d'
> @@ -57,25 +58,11 @@ def efi_boot_env(request, u_boot_config):
> check_call('dd if=%s.tmp of=%s bs=1MiB seek=1 count=%d conv=notrunc'
> % (image_path, image_path, 1), shell=True)
> check_call('rm %s.tmp' % image_path, shell=True)
> - if non_root:
> - out_data = check_output('udisksctl loop-setup -f %s -o %d'
> - % (image_path, 1048576), shell=True).decode()
> - m = re.search('(?<= as )(.*)\.', out_data)
> - loop_dev = m.group(1)
> - # print 'loop device is: %s' % loop_dev
> - out_data = check_output('udisksctl info -b %s'
> - % loop_dev, shell=True).decode()
> - m = re.search('MountPoints:[ \t]+(.*)', out_data)
> - mnt_point = m.group(1)
> - else:
> - loop_dev = check_output('sudo losetup -o 1MiB --sizelimit %dMiB --show -f %s | tr -d "\n"'
> + loop_dev = check_output('sudo losetup -o 1MiB --sizelimit %dMiB --show -f %s | tr -d "\n"'
> % (part_size, image_path), shell=True).decode()
> - mnt_point = '/mnt'
> - check_output('sudo mount -t %s -o umask=000 %s %s'
> + check_output('sudo mount -t %s -o umask=000 %s %s'
> % (fs_type, loop_dev, mnt_point), shell=True)
>
> - # print 'mount point is: %s' % mnt_point
> -
> # suffix
> # *.key: RSA private key in PEM
> # *.crt: X509 certificate (self-signed) in PEM
> @@ -134,13 +121,8 @@ def efi_boot_env(request, u_boot_config):
> % (mnt_point, EFITOOLS_PATH, EFITOOLS_PATH),
> shell=True)
>
> - if non_root:
> - check_call('udisksctl unmount -b %s' % loop_dev, shell=True)
> - # not needed
> - # check_call('udisksctl loop-delete -b %s' % loop_dev, shell=True)
> - else:
> - check_call('sudo umount %s' % loop_dev, shell=True)
> - check_call('sudo losetup -d %s' % loop_dev, shell=True)
> + check_call('sudo umount %s' % loop_dev, shell=True)
> + check_call('sudo losetup -d %s' % loop_dev, shell=True)
>
> except CalledProcessError as e:
> pytest.skip('Setup failed: %s' % e.cmd)
> --
> 2.26.1
>
next prev parent reply other threads:[~2020-04-23 0:15 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-22 15:52 [PATCH 0/2] test/py: fix test_efi_secboot/conftest.py Heinrich Schuchardt
2020-04-22 15:52 ` [PATCH 1/2] test/py: efi_secboot should not assume sbin is in the path Heinrich Schuchardt
2020-04-23 0:03 ` AKASHI Takahiro
2020-05-15 15:39 ` Heinrich Schuchardt
2020-05-18 0:47 ` AKASHI Takahiro
2020-04-22 15:52 ` [PATCH 2/2] test/py: fix test_efi_secboot/conftest.py Heinrich Schuchardt
2020-04-23 0:15 ` AKASHI Takahiro [this message]
2020-04-23 7:47 ` Heinrich Schuchardt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200423001526.GB28438@laputa \
--to=takahiro.akashi@linaro.org \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.