* [Buildroot] [PATCH] support/testing: test_edk2: add a few build tests
@ 2025-04-11 15:53 Vincent Stehlé
2025-04-19 16:37 ` Thomas Petazzoni via buildroot
2025-05-02 10:29 ` Arnout Vandecappelle via buildroot
0 siblings, 2 replies; 3+ messages in thread
From: Vincent Stehlé @ 2025-04-11 15:53 UTC (permalink / raw)
To: buildroot; +Cc: Vincent Stehlé, Dick Olsson
Some EDK II configurations have complex dependencies on several packages
and additional build options; build tests help keeping track of those
more easily.
Factorize some code common to all the build tests into a new
TestEdk2BuildBase class, which defines a base configuration and a method
to assert that binaries do indeed exist after the build.
While at it, add myself in DEVELOPERS.
Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Dick Olsson <hi@senzilla.io>
---
Hi,
I will also send a build test for the MACCHIATObin platform later on,
after a couple of fixes have been integrated. [1][2]
Best regards,
Vincent.
[1] https://patchwork.ozlabs.org/project/buildroot/patch/20250411125452.1377323-1-vincent.stehle@arm.com/
[2] https://patchwork.ozlabs.org/project/buildroot/patch/20250410153114.1374261-1-vincent.stehle@arm.com/
DEVELOPERS | 1 +
support/testing/tests/boot/test_edk2.py | 101 ++++++++++++++++++++++++
2 files changed, 102 insertions(+)
diff --git a/DEVELOPERS b/DEVELOPERS
index 1c84f95943..1e6a029512 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -3350,6 +3350,7 @@ F: configs/qemu_aarch64_ebbr_defconfig
F: configs/qemu_arm_ebbr_defconfig
F: configs/rockpro64_ebbr_defconfig
F: package/edk2-non-osi/
+F: support/testing/tests/boot/test_edk2.py
N: Vincent Stehlé <vincent.stehle@laposte.net>
F: board/arm/foundation-v8/
diff --git a/support/testing/tests/boot/test_edk2.py b/support/testing/tests/boot/test_edk2.py
index 90583b56fe..4e0942b3a4 100644
--- a/support/testing/tests/boot/test_edk2.py
+++ b/support/testing/tests/boot/test_edk2.py
@@ -48,3 +48,104 @@ class TestEdk2(infra.basetest.BRTest):
"-pflash", flash1,
"-hda", hda])
self.emulator.login()
+
+
+class TestEdk2BuildBase(infra.basetest.BRTest):
+ """A class to test the build of various edk2 platforms."""
+ base_config = \
+ """
+ # BR2_PACKAGE_BUSYBOX is not set
+ # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
+ # BR2_TARGET_ROOTFS_TAR is not set
+ BR2_INIT_NONE=y
+ BR2_SYSTEM_BIN_SH_NONE=y
+ BR2_TARGET_EDK2=y
+ BR2_TOOLCHAIN_EXTERNAL=y
+ """
+
+ def assertBinariesExist(self, *binaries: str) -> None:
+ """Assert that the binaries passed as argument exist
+ under the images folder.
+ We print a message to the emulator logfile for each binary found.
+ """
+ for binary in binaries:
+ binpath = os.path.join(self.builddir, "images", binary)
+ self.assertTrue(os.path.exists(binpath), f"Missing {binpath}!")
+ print(f"{binary} exists: {binpath}", file=self.emulator.logfile,
+ flush=True)
+
+
+class TestEdk2BuildArmVirtQemu(TestEdk2BuildBase):
+ config = TestEdk2BuildBase.base_config + \
+ """
+ BR2_aarch64=y
+ BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU=y
+ """
+
+ def test_run(self) -> None:
+ self.assertBinariesExist("QEMU_EFI.fd", "QEMU_VARS.fd")
+
+
+class TestEdk2BuildArmVirtQemuKernel(TestEdk2BuildBase):
+ config = TestEdk2BuildBase.base_config + \
+ """
+ BR2_aarch64=y
+ BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU_KERNEL=y
+ """
+
+ def test_run(self) -> None:
+ self.assertBinariesExist("QEMU_EFI.fd", "QEMU_VARS.fd")
+
+
+class TestEdk2BuildArmSgi575(TestEdk2BuildBase):
+ config = TestEdk2BuildBase.base_config + \
+ """
+ BR2_aarch64=y
+ BR2_TARGET_EDK2_PLATFORM_ARM_SGI575=y
+ """
+
+ def test_run(self) -> None:
+ self.assertBinariesExist("BL33_AP_UEFI.fd")
+
+
+class TestEdk2BuildArmVexpressFvpAarch64(TestEdk2BuildBase):
+ config = TestEdk2BuildBase.base_config + \
+ """
+ BR2_aarch64=y
+ BR2_TARGET_EDK2_PLATFORM_ARM_VEXPRESS_FVP_AARCH64=y
+ """
+
+ def test_run(self) -> None:
+ self.assertBinariesExist("FVP_AARCH64_EFI.fd")
+
+
+class TestEdk2BuildSocionextDeveloperbox(TestEdk2BuildBase):
+ config = TestEdk2BuildBase.base_config + \
+ """
+ BR2_aarch64=y
+ BR2_TARGET_EDK2_PLATFORM_SOCIONEXT_DEVELOPERBOX=y
+ BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
+ BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="synquacer"
+ BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y
+ BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_TARGETS="PRELOADED_BL33_BASE=0x8200000"
+ """
+
+ def test_run(self) -> None:
+ self.assertBinariesExist("SPI_NOR_IMAGE.fd", "fip.bin")
+
+
+class TestEdk2BuildQemuSbsa(TestEdk2BuildBase):
+ # This configuration is not exactly identical to the configuration built
+ # during TestEdk2, as we use the latest arm-trusted-firmware version, among
+ # other things.
+ config = TestEdk2BuildBase.base_config + \
+ """
+ BR2_aarch64=y
+ BR2_TARGET_EDK2_PLATFORM_QEMU_SBSA=y
+ BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
+ BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="qemu_sbsa"
+ BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP=y
+ """
+
+ def test_run(self) -> None:
+ self.assertBinariesExist("SBSA_FLASH0.fd", "SBSA_FLASH1.fd", "fip.bin")
--
2.47.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH] support/testing: test_edk2: add a few build tests
2025-04-11 15:53 [Buildroot] [PATCH] support/testing: test_edk2: add a few build tests Vincent Stehlé
@ 2025-04-19 16:37 ` Thomas Petazzoni via buildroot
2025-05-02 10:29 ` Arnout Vandecappelle via buildroot
1 sibling, 0 replies; 3+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-04-19 16:37 UTC (permalink / raw)
To: Vincent Stehlé; +Cc: buildroot, Dick Olsson
On Fri, 11 Apr 2025 17:53:14 +0200
Vincent Stehlé <vincent.stehle@arm.com> wrote:
> Some EDK II configurations have complex dependencies on several packages
> and additional build options; build tests help keeping track of those
> more easily.
>
> Factorize some code common to all the build tests into a new
> TestEdk2BuildBase class, which defines a base configuration and a method
> to assert that binaries do indeed exist after the build.
>
> While at it, add myself in DEVELOPERS.
>
> Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
> Cc: Dick Olsson <hi@senzilla.io>
> ---
Applied to master, thanks.
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH] support/testing: test_edk2: add a few build tests
2025-04-11 15:53 [Buildroot] [PATCH] support/testing: test_edk2: add a few build tests Vincent Stehlé
2025-04-19 16:37 ` Thomas Petazzoni via buildroot
@ 2025-05-02 10:29 ` Arnout Vandecappelle via buildroot
1 sibling, 0 replies; 3+ messages in thread
From: Arnout Vandecappelle via buildroot @ 2025-05-02 10:29 UTC (permalink / raw)
To: Vincent Stehlé, buildroot; +Cc: Dick Olsson
On 11/04/2025 17:53, Vincent Stehlé wrote:
> Some EDK II configurations have complex dependencies on several packages
> and additional build options; build tests help keeping track of those
> more easily.
>
> Factorize some code common to all the build tests into a new
> TestEdk2BuildBase class, which defines a base configuration and a method
> to assert that binaries do indeed exist after the build.
>
> While at it, add myself in DEVELOPERS.
>
> Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
> Cc: Dick Olsson <hi@senzilla.io>
Applied to 2025.02.x, thanks.
Regards,
Arnout
> ---
>
>
> Hi,
>
> I will also send a build test for the MACCHIATObin platform later on,
> after a couple of fixes have been integrated. [1][2]
>
> Best regards,
> Vincent.
>
> [1] https://patchwork.ozlabs.org/project/buildroot/patch/20250411125452.1377323-1-vincent.stehle@arm.com/
> [2] https://patchwork.ozlabs.org/project/buildroot/patch/20250410153114.1374261-1-vincent.stehle@arm.com/
>
>
> DEVELOPERS | 1 +
> support/testing/tests/boot/test_edk2.py | 101 ++++++++++++++++++++++++
> 2 files changed, 102 insertions(+)
>
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 1c84f95943..1e6a029512 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -3350,6 +3350,7 @@ F: configs/qemu_aarch64_ebbr_defconfig
> F: configs/qemu_arm_ebbr_defconfig
> F: configs/rockpro64_ebbr_defconfig
> F: package/edk2-non-osi/
> +F: support/testing/tests/boot/test_edk2.py
>
> N: Vincent Stehlé <vincent.stehle@laposte.net>
> F: board/arm/foundation-v8/
> diff --git a/support/testing/tests/boot/test_edk2.py b/support/testing/tests/boot/test_edk2.py
> index 90583b56fe..4e0942b3a4 100644
> --- a/support/testing/tests/boot/test_edk2.py
> +++ b/support/testing/tests/boot/test_edk2.py
> @@ -48,3 +48,104 @@ class TestEdk2(infra.basetest.BRTest):
> "-pflash", flash1,
> "-hda", hda])
> self.emulator.login()
> +
> +
> +class TestEdk2BuildBase(infra.basetest.BRTest):
> + """A class to test the build of various edk2 platforms."""
> + base_config = \
> + """
> + # BR2_PACKAGE_BUSYBOX is not set
> + # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
> + # BR2_TARGET_ROOTFS_TAR is not set
> + BR2_INIT_NONE=y
> + BR2_SYSTEM_BIN_SH_NONE=y
> + BR2_TARGET_EDK2=y
> + BR2_TOOLCHAIN_EXTERNAL=y
> + """
> +
> + def assertBinariesExist(self, *binaries: str) -> None:
> + """Assert that the binaries passed as argument exist
> + under the images folder.
> + We print a message to the emulator logfile for each binary found.
> + """
> + for binary in binaries:
> + binpath = os.path.join(self.builddir, "images", binary)
> + self.assertTrue(os.path.exists(binpath), f"Missing {binpath}!")
> + print(f"{binary} exists: {binpath}", file=self.emulator.logfile,
> + flush=True)
> +
> +
> +class TestEdk2BuildArmVirtQemu(TestEdk2BuildBase):
> + config = TestEdk2BuildBase.base_config + \
> + """
> + BR2_aarch64=y
> + BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU=y
> + """
> +
> + def test_run(self) -> None:
> + self.assertBinariesExist("QEMU_EFI.fd", "QEMU_VARS.fd")
> +
> +
> +class TestEdk2BuildArmVirtQemuKernel(TestEdk2BuildBase):
> + config = TestEdk2BuildBase.base_config + \
> + """
> + BR2_aarch64=y
> + BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU_KERNEL=y
> + """
> +
> + def test_run(self) -> None:
> + self.assertBinariesExist("QEMU_EFI.fd", "QEMU_VARS.fd")
> +
> +
> +class TestEdk2BuildArmSgi575(TestEdk2BuildBase):
> + config = TestEdk2BuildBase.base_config + \
> + """
> + BR2_aarch64=y
> + BR2_TARGET_EDK2_PLATFORM_ARM_SGI575=y
> + """
> +
> + def test_run(self) -> None:
> + self.assertBinariesExist("BL33_AP_UEFI.fd")
> +
> +
> +class TestEdk2BuildArmVexpressFvpAarch64(TestEdk2BuildBase):
> + config = TestEdk2BuildBase.base_config + \
> + """
> + BR2_aarch64=y
> + BR2_TARGET_EDK2_PLATFORM_ARM_VEXPRESS_FVP_AARCH64=y
> + """
> +
> + def test_run(self) -> None:
> + self.assertBinariesExist("FVP_AARCH64_EFI.fd")
> +
> +
> +class TestEdk2BuildSocionextDeveloperbox(TestEdk2BuildBase):
> + config = TestEdk2BuildBase.base_config + \
> + """
> + BR2_aarch64=y
> + BR2_TARGET_EDK2_PLATFORM_SOCIONEXT_DEVELOPERBOX=y
> + BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
> + BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="synquacer"
> + BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y
> + BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_TARGETS="PRELOADED_BL33_BASE=0x8200000"
> + """
> +
> + def test_run(self) -> None:
> + self.assertBinariesExist("SPI_NOR_IMAGE.fd", "fip.bin")
> +
> +
> +class TestEdk2BuildQemuSbsa(TestEdk2BuildBase):
> + # This configuration is not exactly identical to the configuration built
> + # during TestEdk2, as we use the latest arm-trusted-firmware version, among
> + # other things.
> + config = TestEdk2BuildBase.base_config + \
> + """
> + BR2_aarch64=y
> + BR2_TARGET_EDK2_PLATFORM_QEMU_SBSA=y
> + BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
> + BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="qemu_sbsa"
> + BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP=y
> + """
> +
> + def test_run(self) -> None:
> + self.assertBinariesExist("SBSA_FLASH0.fd", "SBSA_FLASH1.fd", "fip.bin")
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-05-02 10:29 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-11 15:53 [Buildroot] [PATCH] support/testing: test_edk2: add a few build tests Vincent Stehlé
2025-04-19 16:37 ` Thomas Petazzoni via buildroot
2025-05-02 10:29 ` Arnout Vandecappelle via buildroot
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.