diff mbox series

test: use virt-make-fs to build image

Message ID 20200713221534.433297-1-xypron.glpk@gmx.de
State Accepted
Commit 53ce9a6ed98b69a82e54a28254b014e480fc98ca
Headers show
Series test: use virt-make-fs to build image | expand

Commit Message

Heinrich Schuchardt July 13, 2020, 10:15 p.m. UTC
Avoid sudo for test/py/tests/test_efi_secboot by using virt-make-fs.

Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
---
 test/py/tests/test_efi_secboot/conftest.py | 27 ++++------------------
 test/py/tests/test_efi_secboot/defs.py     |  7 ------
 2 files changed, 4 insertions(+), 30 deletions(-)

--
2.27.0

Comments

AKASHI Takahiro July 13, 2020, 11:02 p.m. UTC | #1
Heinrich,

On Tue, Jul 14, 2020 at 12:15:34AM +0200, Heinrich Schuchardt wrote:
> Avoid sudo for test/py/tests/test_efi_secboot by using virt-make-fs.

Have you read this?
https://lists.denx.de/pipermail/u-boot/2020-July/419345.html

-Takahiro Akashi

> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> ---
>  test/py/tests/test_efi_secboot/conftest.py | 27 ++++------------------
>  test/py/tests/test_efi_secboot/defs.py     |  7 ------
>  2 files changed, 4 insertions(+), 30 deletions(-)
> 
> diff --git a/test/py/tests/test_efi_secboot/conftest.py b/test/py/tests/test_efi_secboot/conftest.py
> index 71ef723e59..c6709700a8 100644
> --- a/test/py/tests/test_efi_secboot/conftest.py
> +++ b/test/py/tests/test_efi_secboot/conftest.py
> @@ -38,34 +38,15 @@ def efi_boot_env(request, u_boot_config):
> 
>      image_path = u_boot_config.persistent_data_dir
>      image_path = image_path + '/' + EFI_SECBOOT_IMAGE_NAME
> -    image_size = EFI_SECBOOT_IMAGE_SIZE
> -    part_size = EFI_SECBOOT_PART_SIZE
> -    fs_type = EFI_SECBOOT_FS_TYPE
> 
>      if HELLO_PATH == '':
>          HELLO_PATH = u_boot_config.build_dir + '/lib/efi_loader/helloworld.efi'
> 
>      try:
> -        mnt_point = u_boot_config.persistent_data_dir + '/mnt_efisecure'
> +        mnt_point = u_boot_config.build_dir + '/mnt_efisecure'
> +        check_call('rm -rf {}'.format(mnt_point), shell=True)
>          check_call('mkdir -p {}'.format(mnt_point), shell=True)
> 
> -        # create a disk/partition
> -        check_call('dd if=/dev/zero of=%s bs=1MiB count=%d'
> -                   % (image_path, image_size), shell=True)
> -        check_call('sgdisk %s -n 1:0:+%dMiB'
> -                   % (image_path, part_size), shell=True)
> -        # create a file system
> -        check_call('dd if=/dev/zero of=%s.tmp bs=1MiB count=%d'
> -                   % (image_path, part_size), shell=True)
> -        check_call('mkfs -t %s %s.tmp' % (fs_type, image_path), shell=True)
> -        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)
> -        loop_dev = check_output('sudo losetup -o 1MiB --sizelimit %dMiB --show -f %s | tr -d "\n"'
> -                                % (part_size, image_path), shell=True).decode()
> -        check_output('sudo mount -t %s -o umask=000 %s %s'
> -                     % (fs_type, loop_dev, mnt_point), shell=True)
> -
>          # suffix
>          # *.key: RSA private key in PEM
>          # *.crt: X509 certificate (self-signed) in PEM
> @@ -145,8 +126,8 @@ def efi_boot_env(request, u_boot_config):
>                     % (mnt_point, EFITOOLS_PATH),
>                     shell=True)
> 
> -        check_call('sudo umount %s' % loop_dev, shell=True)
> -        check_call('sudo losetup -d %s' % loop_dev, shell=True)
> +        check_call('virt-make-fs --partition=gpt --size=+1M --type=vfat {} {}'.format(mnt_point, image_path), shell=True)
> +        check_call('rm -rf {}'.format(mnt_point), shell=True)
> 
>      except CalledProcessError as exception:
>          pytest.skip('Setup failed: %s' % exception.cmd)
> diff --git a/test/py/tests/test_efi_secboot/defs.py b/test/py/tests/test_efi_secboot/defs.py
> index 099f453979..ba6b9f391e 100644
> --- a/test/py/tests/test_efi_secboot/defs.py
> +++ b/test/py/tests/test_efi_secboot/defs.py
> @@ -3,13 +3,6 @@
>  # Disk image name
>  EFI_SECBOOT_IMAGE_NAME = 'test_efi_secboot.img'
> 
> -# Size in MiB
> -EFI_SECBOOT_IMAGE_SIZE = 16
> -EFI_SECBOOT_PART_SIZE = 8
> -
> -# Partition file system type
> -EFI_SECBOOT_FS_TYPE = 'vfat'
> -
>  # Owner guid
>  GUID = '11111111-2222-3333-4444-123456789abc'
> 
> --
> 2.27.0
>
Heinrich Schuchardt July 13, 2020, 11:18 p.m. UTC | #2
Am 14. Juli 2020 01:02:07 MESZ schrieb AKASHI Takahiro <takahiro.akashi at linaro.org>:
>Heinrich,
>
>On Tue, Jul 14, 2020 at 12:15:34AM +0200, Heinrich Schuchardt wrote:
>> Avoid sudo for test/py/tests/test_efi_secboot by using virt-make-fs.
>
>Have you read this?
>https://lists.denx.de/pipermail/u-boot/2020-July/419345.html
>
>-Takahiro Akashi

Just put chmod 644 /boot/vmlinu* into your update-initramfs hook directory /etc/initramfs-tools and complain to Ubuntu maintainers about them breaking their own packages.

Hook scripts are described here: http://manpages.ubuntu.com/manpages/xenial/man8/initramfs-tools.8.html

>
>> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
>> ---
>>  test/py/tests/test_efi_secboot/conftest.py | 27
>++++------------------
>>  test/py/tests/test_efi_secboot/defs.py     |  7 ------
>>  2 files changed, 4 insertions(+), 30 deletions(-)
>> 
>> diff --git a/test/py/tests/test_efi_secboot/conftest.py
>b/test/py/tests/test_efi_secboot/conftest.py
>> index 71ef723e59..c6709700a8 100644
>> --- a/test/py/tests/test_efi_secboot/conftest.py
>> +++ b/test/py/tests/test_efi_secboot/conftest.py
>> @@ -38,34 +38,15 @@ def efi_boot_env(request, u_boot_config):
>> 
>>      image_path = u_boot_config.persistent_data_dir
>>      image_path = image_path + '/' + EFI_SECBOOT_IMAGE_NAME
>> -    image_size = EFI_SECBOOT_IMAGE_SIZE
>> -    part_size = EFI_SECBOOT_PART_SIZE
>> -    fs_type = EFI_SECBOOT_FS_TYPE
>> 
>>      if HELLO_PATH == '':
>>          HELLO_PATH = u_boot_config.build_dir +
>'/lib/efi_loader/helloworld.efi'
>> 
>>      try:
>> -        mnt_point = u_boot_config.persistent_data_dir +
>'/mnt_efisecure'
>> +        mnt_point = u_boot_config.build_dir + '/mnt_efisecure'
>> +        check_call('rm -rf {}'.format(mnt_point), shell=True)
>>          check_call('mkdir -p {}'.format(mnt_point), shell=True)
>> 
>> -        # create a disk/partition
>> -        check_call('dd if=/dev/zero of=%s bs=1MiB count=%d'
>> -                   % (image_path, image_size), shell=True)
>> -        check_call('sgdisk %s -n 1:0:+%dMiB'
>> -                   % (image_path, part_size), shell=True)
>> -        # create a file system
>> -        check_call('dd if=/dev/zero of=%s.tmp bs=1MiB count=%d'
>> -                   % (image_path, part_size), shell=True)
>> -        check_call('mkfs -t %s %s.tmp' % (fs_type, image_path),
>shell=True)
>> -        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)
>> -        loop_dev = check_output('sudo losetup -o 1MiB --sizelimit
>%dMiB --show -f %s | tr -d "\n"'
>> -                                % (part_size, image_path),
>shell=True).decode()
>> -        check_output('sudo mount -t %s -o umask=000 %s %s'
>> -                     % (fs_type, loop_dev, mnt_point), shell=True)
>> -
>>          # suffix
>>          # *.key: RSA private key in PEM
>>          # *.crt: X509 certificate (self-signed) in PEM
>> @@ -145,8 +126,8 @@ def efi_boot_env(request, u_boot_config):
>>                     % (mnt_point, EFITOOLS_PATH),
>>                     shell=True)
>> 
>> -        check_call('sudo umount %s' % loop_dev, shell=True)
>> -        check_call('sudo losetup -d %s' % loop_dev, shell=True)
>> +        check_call('virt-make-fs --partition=gpt --size=+1M
>--type=vfat {} {}'.format(mnt_point, image_path), shell=True)
>> +        check_call('rm -rf {}'.format(mnt_point), shell=True)
>> 
>>      except CalledProcessError as exception:
>>          pytest.skip('Setup failed: %s' % exception.cmd)
>> diff --git a/test/py/tests/test_efi_secboot/defs.py
>b/test/py/tests/test_efi_secboot/defs.py
>> index 099f453979..ba6b9f391e 100644
>> --- a/test/py/tests/test_efi_secboot/defs.py
>> +++ b/test/py/tests/test_efi_secboot/defs.py
>> @@ -3,13 +3,6 @@
>>  # Disk image name
>>  EFI_SECBOOT_IMAGE_NAME = 'test_efi_secboot.img'
>> 
>> -# Size in MiB
>> -EFI_SECBOOT_IMAGE_SIZE = 16
>> -EFI_SECBOOT_PART_SIZE = 8
>> -
>> -# Partition file system type
>> -EFI_SECBOOT_FS_TYPE = 'vfat'
>> -
>>  # Owner guid
>>  GUID = '11111111-2222-3333-4444-123456789abc'
>> 
>> --
>> 2.27.0
>>
diff mbox series

Patch

diff --git a/test/py/tests/test_efi_secboot/conftest.py b/test/py/tests/test_efi_secboot/conftest.py
index 71ef723e59..c6709700a8 100644
--- a/test/py/tests/test_efi_secboot/conftest.py
+++ b/test/py/tests/test_efi_secboot/conftest.py
@@ -38,34 +38,15 @@  def efi_boot_env(request, u_boot_config):

     image_path = u_boot_config.persistent_data_dir
     image_path = image_path + '/' + EFI_SECBOOT_IMAGE_NAME
-    image_size = EFI_SECBOOT_IMAGE_SIZE
-    part_size = EFI_SECBOOT_PART_SIZE
-    fs_type = EFI_SECBOOT_FS_TYPE

     if HELLO_PATH == '':
         HELLO_PATH = u_boot_config.build_dir + '/lib/efi_loader/helloworld.efi'

     try:
-        mnt_point = u_boot_config.persistent_data_dir + '/mnt_efisecure'
+        mnt_point = u_boot_config.build_dir + '/mnt_efisecure'
+        check_call('rm -rf {}'.format(mnt_point), shell=True)
         check_call('mkdir -p {}'.format(mnt_point), shell=True)

-        # create a disk/partition
-        check_call('dd if=/dev/zero of=%s bs=1MiB count=%d'
-                   % (image_path, image_size), shell=True)
-        check_call('sgdisk %s -n 1:0:+%dMiB'
-                   % (image_path, part_size), shell=True)
-        # create a file system
-        check_call('dd if=/dev/zero of=%s.tmp bs=1MiB count=%d'
-                   % (image_path, part_size), shell=True)
-        check_call('mkfs -t %s %s.tmp' % (fs_type, image_path), shell=True)
-        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)
-        loop_dev = check_output('sudo losetup -o 1MiB --sizelimit %dMiB --show -f %s | tr -d "\n"'
-                                % (part_size, image_path), shell=True).decode()
-        check_output('sudo mount -t %s -o umask=000 %s %s'
-                     % (fs_type, loop_dev, mnt_point), shell=True)
-
         # suffix
         # *.key: RSA private key in PEM
         # *.crt: X509 certificate (self-signed) in PEM
@@ -145,8 +126,8 @@  def efi_boot_env(request, u_boot_config):
                    % (mnt_point, EFITOOLS_PATH),
                    shell=True)

-        check_call('sudo umount %s' % loop_dev, shell=True)
-        check_call('sudo losetup -d %s' % loop_dev, shell=True)
+        check_call('virt-make-fs --partition=gpt --size=+1M --type=vfat {} {}'.format(mnt_point, image_path), shell=True)
+        check_call('rm -rf {}'.format(mnt_point), shell=True)

     except CalledProcessError as exception:
         pytest.skip('Setup failed: %s' % exception.cmd)
diff --git a/test/py/tests/test_efi_secboot/defs.py b/test/py/tests/test_efi_secboot/defs.py
index 099f453979..ba6b9f391e 100644
--- a/test/py/tests/test_efi_secboot/defs.py
+++ b/test/py/tests/test_efi_secboot/defs.py
@@ -3,13 +3,6 @@ 
 # Disk image name
 EFI_SECBOOT_IMAGE_NAME = 'test_efi_secboot.img'

-# Size in MiB
-EFI_SECBOOT_IMAGE_SIZE = 16
-EFI_SECBOOT_PART_SIZE = 8
-
-# Partition file system type
-EFI_SECBOOT_FS_TYPE = 'vfat'
-
 # Owner guid
 GUID = '11111111-2222-3333-4444-123456789abc'