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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox