[Buildroot] [PATCH v3 7/7] support/testing/tests/fs/test_iso9660.py: add support to test using EFI BIOS

Yann E. MORIN yann.morin.1998 at free.fr
Sun Oct 3 12:50:17 UTC 2021


Köry, All,

On 2021-09-23 17:57 +0200, Kory Maincent spake thusly:
> The ISO9660 tests are only testing BIOS Legacy.
> Add support to test an ISO9660 image based on EFI BIOS.
> Add support to test an ISO9660 hybrid image based on Legacy and EFI BIOS.
> Add dedicated Grub2 builtin config for the EFI compatible cases.
> 
> Signed-off-by: Kory Maincent <kory.maincent at bootlin.com>
> ---
>  support/testing/conf/grub2-efi.cfg       |  2 +
>  support/testing/tests/fs/test_iso9660.py | 74 +++++++++++++++++++++++-
>  2 files changed, 74 insertions(+), 2 deletions(-)
>  create mode 100644 support/testing/conf/grub2-efi.cfg
> 
> diff --git a/support/testing/conf/grub2-efi.cfg b/support/testing/conf/grub2-efi.cfg
> new file mode 100644
> index 0000000000..11c32e880e
> --- /dev/null
> +++ b/support/testing/conf/grub2-efi.cfg
> @@ -0,0 +1,2 @@
> +set root=(cd0)
> +set prefix=/boot/grub
> diff --git a/support/testing/tests/fs/test_iso9660.py b/support/testing/tests/fs/test_iso9660.py
> index 1b699e1fef..8315442604 100644
> --- a/support/testing/tests/fs/test_iso9660.py
> +++ b/support/testing/tests/fs/test_iso9660.py
> @@ -25,9 +25,13 @@ BASIC_CONFIG = \
>      """.format(infra.filepath("conf/minimal-x86-qemu-kernel.config"))
>  
>  
> -def test_mount_internal_external(emulator, builddir, internal=True):
> +def test_mount_internal_external(emulator, builddir, internal=True, efi=False):
>      img = os.path.join(builddir, "images", "rootfs.iso9660")
> -    emulator.boot(arch="i386", options=["-cdrom", img])
> +    if efi:
> +        efi_img = os.path.join(builddir, "images", "OVMF.fd")
> +        emulator.boot(arch="i386", options=["-cdrom", img, "-bios", efi_img])
> +    else:
> +        emulator.boot(arch="i386", options=["-cdrom", img])
>      emulator.login()
>  
>      if internal:
> @@ -53,6 +57,7 @@ class TestIso9660Grub2External(infra.basetest.BRTest):
>          BR2_TARGET_ROOTFS_ISO9660=y
>          # BR2_TARGET_ROOTFS_ISO9660_INITRD is not set
>          BR2_TARGET_GRUB2=y
> +        BR2_TARGET_GRUB2_I386_PC=y

This is no longer needed now that we ensure that it is the default
setting. Ditto for the following two, of course.

Applied to master, thanks.

Regards,
Yann E. MORIN.

>          BR2_TARGET_GRUB2_BOOT_PARTITION="cd"
>          BR2_TARGET_GRUB2_BUILTIN_MODULES_PC="boot linux ext2 fat part_msdos part_gpt normal biosdisk iso9660"
>          BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}"
> @@ -74,6 +79,7 @@ class TestIso9660Grub2ExternalCompress(infra.basetest.BRTest):
>          # BR2_TARGET_ROOTFS_ISO9660_INITRD is not set
>          BR2_TARGET_ROOTFS_ISO9660_TRANSPARENT_COMPRESSION=y
>          BR2_TARGET_GRUB2=y
> +        BR2_TARGET_GRUB2_I386_PC=y
>          BR2_TARGET_GRUB2_BOOT_PARTITION="cd"
>          BR2_TARGET_GRUB2_BUILTIN_MODULES_PC="boot linux ext2 fat part_msdos part_gpt normal biosdisk iso9660"
>          BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}"
> @@ -94,6 +100,7 @@ class TestIso9660Grub2Internal(infra.basetest.BRTest):
>          BR2_TARGET_ROOTFS_ISO9660=y
>          BR2_TARGET_ROOTFS_ISO9660_INITRD=y
>          BR2_TARGET_GRUB2=y
> +        BR2_TARGET_GRUB2_I386_PC=y
>          BR2_TARGET_GRUB2_BOOT_PARTITION="cd"
>          BR2_TARGET_GRUB2_BUILTIN_MODULES_PC="boot linux ext2 fat part_msdos part_gpt normal biosdisk iso9660"
>          BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}"
> @@ -107,6 +114,69 @@ class TestIso9660Grub2Internal(infra.basetest.BRTest):
>          exit_code = test_touch_file(self.emulator)
>          self.assertEqual(exit_code, 0)
>  
> +
> +class TestIso9660Grub2EFI(infra.basetest.BRTest):
> +    config = BASIC_CONFIG + \
> +        """
> +        BR2_TARGET_ROOTFS_ISO9660=y
> +        BR2_TARGET_ROOTFS_ISO9660_INITRD=y
> +        BR2_TARGET_GRUB2=y
> +        BR2_TARGET_GRUB2_I386_EFI=y
> +        BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 fat part_msdos part_gpt normal iso9660"
> +        BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI="{}"
> +        BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}"
> +        BR2_TARGET_EDK2=y
> +        """.format(infra.filepath("conf/grub2-efi.cfg"),
> +                   infra.filepath("conf/grub2.cfg"))
> +
> +    def test_run(self):
> +        exit_code = test_mount_internal_external(self.emulator,
> +                                                 self.builddir, internal=True,
> +                                                 efi=True)
> +        self.assertEqual(exit_code, 0)
> +
> +        exit_code = test_touch_file(self.emulator)
> +        self.assertEqual(exit_code, 0)
> +
> +
> +class TestIso9660Grub2Hybrid(infra.basetest.BRTest):
> +    config = BASIC_CONFIG + \
> +        """
> +        BR2_TARGET_ROOTFS_ISO9660=y
> +        BR2_TARGET_ROOTFS_ISO9660_INITRD=y
> +        BR2_TARGET_GRUB2=y
> +        BR2_TARGET_GRUB2_I386_PC=y
> +        BR2_TARGET_GRUB2_I386_EFI=y
> +        BR2_TARGET_GRUB2_BOOT_PARTITION="cd"
> +        BR2_TARGET_GRUB2_BUILTIN_MODULES_PC="boot linux ext2 fat squash4 part_msdos part_gpt normal iso9660 biosdisk"
> +        BR2_TARGET_GRUB2_BUILTIN_CONFIG_PC=""
> +        BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 fat squash4 part_msdos part_gpt normal iso9660 efi_gop"
> +        BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI="{}"
> +        BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}"
> +        BR2_TARGET_EDK2=y
> +        """.format(infra.filepath("conf/grub2-efi.cfg"),
> +                   infra.filepath("conf/grub2.cfg"))
> +
> +    def test_run(self):
> +        exit_code = test_mount_internal_external(self.emulator,
> +                                                 self.builddir, internal=True,
> +                                                 efi=False)
> +        self.assertEqual(exit_code, 0)
> +
> +        exit_code = test_touch_file(self.emulator)
> +        self.assertEqual(exit_code, 0)
> +
> +        self.emulator.stop()
> +
> +        exit_code = test_mount_internal_external(self.emulator,
> +                                                 self.builddir, internal=True,
> +                                                 efi=True)
> +        self.assertEqual(exit_code, 0)
> +
> +        exit_code = test_touch_file(self.emulator)
> +        self.assertEqual(exit_code, 0)
> +
> +
>  #
>  # Syslinux
>  
> -- 
> 2.25.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at lists.buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list