[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