Commit Graph

2258 Commits

Author SHA1 Message Date
Thomas Petazzoni
3ea79058c0 support/testing/tests: new NetworkManager/GOI test
This test is inspired from the details provided by Fiona Klute's cover
letter for a GOI/glib bump series at:

  https://lore.kernel.org/buildroot/20250120211707.2381182-1-fiona.klute@gmx.de/

Which itself uses the example code at:

  https://networkmanager.dev/docs/developers/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2025-02-04 16:16:16 +01:00
Thomas Petazzoni
91e51e2679 support/testing/tests/package/test_python_sdbus_networkmanager: use more recent toolchain
Since the bump of NetworkManager to 1.50.0 in Buildroot commit
489d1f9249, the
tests.package.test_python_sdbus_networkmanager.TestPythonPy3SdbusNetworkmanager
is failing to build as NM >= 1.50.0 needs headers >= 4.20.

We fix this test by using a newer toolchain. This means we can't use
anymore the basic toolchain config, so we use a fully specific
defconfig for this test.

Fixes:

  https://gitlab.com/buildroot.org/buildroot/-/jobs/9019173666

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2025-02-04 16:16:09 +01:00
Adam Duskett
67c6d1b12c package/mender: bump version to 3.5.3
Updating directly to 4.x is too difficult and complex, as mender 4.x is
a complete rewrite in C++, with several new dependencies and changes.

As such, update to the last version that was written in Go, which is
3.5.3. The following changes are necessary:

The artifact_info file is no longer supported. Instead, mender now expects a
bootstrap.mender artifact created by mender-artifact /var/lib/mender.
See the following for more information:
https://northerntech.atlassian.net/browse/MEN-2585
https://northerntech.atlassian.net/browse/MEN-2583
https://docs.mender.io/release-information/release-notes-changelog/mender-client#mender-3-5-0-1
https://github.com/mendersoftware/mender/blob/3.5.3/Documentation/automatic-bootstrap-artifact.md

  - Remove all instances of creating or copying an artifact_info file
    from board examples and package/mender.

  - Add a generate_mender_bootstrap_artifact method to
    board/mender/x86_64/post-image-efi.sh which creates a proper
    bootstrap.mender file and places it in the data partition.

  - Add a post-build.sh script to support/testing/tests/package/test_mender
    with the same generate_mender_bootstrap_artifact method with one change:
    As the rootfs.ext4 file is not yet created; we omit the optional
    --provides "rootfs-image.checksum:${img_checksum}" argument when
    generating the bootstrap.mender file.

Mender expects the device_type file to exist in /var/lib/mender/device_type.
  This is further supported by the following line in tests/Dockerfile.daemon:
  `echo device_type=docker-client > /var/lib/mender/device_type`

Add a migration section in docs/manual/migrating.adoc

Update the package/mender/readme.txt to include a quick mention of the
bootstrap.mender artifact change.

License changes:

New:
vendor/github.com/klauspost/compress/internal/snapref/LICENSE (BSD-3-Clause)
vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt (MIT)

Removed:
vendor/github.com/klauspost/compress/internal/snapref/LICENSE
vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt

Modified:
LICENSE: Update year from 2022 to 2024
LIC_FILES_CHKSUM.sha256: Sum of all Licenses changed
vendor/github.com/mendersoftware/mender-artifact/LICENSE
  - Update year from 2022 to 2023

Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
[Arnout:
  - fix LIC_FILES_CHKSUM.sha256 hash
  - Better URL for bootstrap artifact doc
  - Migrate to 2025.02 instead of 2024.11
  - Improve migrating text (editorial changes)
]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2025-02-04 15:00:19 +01:00
Adam Duskett
c4772ecef6 support/testing/tests/package/test_mender.py: Add a systemd test
- Move the check for /var/run/mender.pid to before self.run_mender_test()
    for the two tests using sysvinit.

  - Instead of checking for /var/run/mender.pid during the systemd test,
    check to ensure "systemctl is-active mender-client" returns "active"

Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
[Arnout: fix flake8 issue]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2025-02-04 13:57:11 +01:00
Adam Duskett
5389f9b1a2 support/testing/tests/package/test_mender.py: Add RO fs test
Add a test for read-only file systems.

Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2025-02-04 13:19:56 +01:00
Julien Olivain
da66b838e4 support/testing: new gstreamer1 runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2025-02-03 23:13:41 +01:00
Julien Olivain
41bceec4e8 support/testing: new patch runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2025-02-03 23:06:33 +01:00
Julien Olivain
fefe7024a3 support/testing: new wget runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2025-02-03 23:05:08 +01:00
Julien Olivain
292631cd09 support/testing: add libcurl runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2025-02-03 23:03:58 +01:00
Peter Korsgaard
ba38576aa6 fs/ext2: remove ext2 revision 0 support
Revision 0 is very old and misses a number of features.  From man mkfs.ext2:

Set  the  file system revision for the new file system.  Note that 1.2
kernels only support revision 0 file systems.  The default is to create
revision 1 file systems.

We are unlikely to have a lot of Linux 1.2.x users, so drop support for it.

As revision 1 is the default, drop the -E revision argument to mkfs.ext2 for
simplicity.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-02-03 18:48:10 +01:00
Julien Olivain
4e67d0730f support/testing: new ltp-testsuite runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Reviewed-by: Vincent Jardin <vjardin@free.fr>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2025-02-03 14:01:25 +01:00
Tobias Waldekranz
85376a7181 support/scripts/fix-rpath: Reduce overhead of parallelization
Rather than fork+exec:ing a whole bash process for every file of
interest, split up the work into ${PARALLEL_JOBS} separate file lists,
and then fork off a single worker per list.

Since workers now run in a fork, we also don't have to re-parse the
arguments on every call to patch_file().

In the worker, we also add a low-overhead check for the ELF magic,
which allows us to skip all non-ELFs without having to fork off
additional processes. In the event that we encounter an invalid ELF,
that is still taken care of by the existing exitcode-test in
patch_file().

On a 4-core/8-thread box, this cuts down the time it takes to fix the
RPATHS in the host directory from around 25s to 1.5s.

Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
[Peter: fix shellcheck issues]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2025-02-03 11:07:48 +01:00
Gaël PORTAY
294d13bb85 support/scripts/genimage.sh: add shell option -e
The commit 6889056f1e (support/scripts/genimage.sh) adds support for
creating bmap images.

Since then, the script genimage.sh looses the error returned by the
genimage command.

As a consequence, the target-finalize target looses the error as well,
and so on up to make.

This adds the shell option -e to exit immediately if a command ends with
an error, so the error is not ignored.

Fixes:

	gportay@archlinux ~/src/rtone-br2-external $ make
	(...)
	>>>   Executing post-image script support/scripts/genimage.sh
	INFO: cmd: "mkdir -p "/home/gportay/src/rtone-br2-external/output/build/genimage.tmp"" (stderr):
	INFO: cmd: "rm -rf "/home/gportay/src/rtone-br2-external/output/build/genimage.tmp"/*" (stderr):
	INFO: cmd: "mkdir -p "/home/gportay/src/rtone-br2-external/output/build/genimage.tmp"" (stderr):
	INFO: cmd: "cp -a "/tmp/tmp.EclKGwtA4R" "/home/gportay/src/rtone-br2-external/output/build/genimage.tmp/root"" (stderr):
	INFO: cmd: "mkdir -p "/home/gportay/src/rtone-br2-external/output/images"" (stderr):
	INFO: vfat(efi-part.vfat): cmd: "mkdosfs   '/home/gportay/src/rtone-br2-external/output/images/efi-part.vfat'" (stderr):
	INFO: vfat(efi-part.vfat): adding file 'efi-part/EFI' as 'EFI' ...
	INFO: vfat(efi-part.vfat): cmd: "MTOOLS_SKIP_CHECK=1 mcopy -sp -i '/home/gportay/src/rtone-br2-external/output/images/efi-part.vfat' '/home/gportay/src/rtone-br2-external/output/images/efi-part/EFI' '::EFI'" (stderr):
	Disk full
	INFO: vfat(efi-part.vfat): cmd: "rm -f "/home/gportay/src/rtone-br2-external/output/images/efi-part.vfat"" (stderr):
	ERROR: vfat(efi-part.vfat): failed to generate efi-part.vfat
	INFO: cmd: "rm -rf "/home/gportay/src/rtone-br2-external/output/build/genimage.tmp/"" (stderr):
	make[1]: Leaving directory '/home/gportay/src/rtone-br2-external/buildroot'
	gportay@archlinux ~/src/rtone-br2-external $ echo $?
	0

Signed-off-by: Gaël PORTAY <gael.portay+rtone@gmail.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-28 19:09:28 +01:00
Vincent Stehlé
cd0ffd598c support/testing: test_xen: repair and leverage xen tools
Current test runs a Xen hypervisor and a Linux dom0, from which we can
detect that we run under Xen but not much more. Indeed, with current
test's setup the Xen tools are not functional.

We add back networking to our stripped-down kernel config to repair Xen
tools.

With Xen tools functionals, we can enhance the test with the creation of
a VM. To be able to use the rootfs that we build in both the dom0 and in
this new dom1, we switch to an initramfs; no more rootfs partition in
the image. After stripping the ramdisk a bit we can even reduce Qemu's
memory to 1 GB.

Suggested-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Vincent Stehlé <vincent.stehle@laposte.net>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-28 00:11:17 +01:00
Thomas Petazzoni
e3d74c76ee support/testing/tests/toolchain/test_external_synopsys.py: drop tests
The Synopsys external toolchain has been disabled in commit
11a8cdd2bb, causing the test cases
testing this toolchain to fail. Let's drop those tests for now, they
can always be re-added later on.

Fixes:

  https://gitlab.com/buildroot.org/buildroot/-/jobs/8892697531
  https://gitlab.com/buildroot.org/buildroot/-/jobs/8892697528
  https://gitlab.com/buildroot.org/buildroot/-/jobs/8892697524
  https://gitlab.com/buildroot.org/buildroot/-/jobs/8892697519
  https://gitlab.com/buildroot.org/buildroot/-/jobs/8892697517
  https://gitlab.com/buildroot.org/buildroot/-/jobs/8892697516

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
[Julien: remove the DEVELOPERS entry]
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-26 17:58:36 +01:00
Thomas Petazzoni
d577c0208c support/testing/tests/package/test_gdb.py: fix ARC test
Since the disabling of the Synopsys ARC toolchain in
11a8cdd2bb, the test
tests.package.test_gdb.TestGdbArc was failing as it was relying on
this external toolchain.

Let's switch the test to use BR2_archs38, which allows to use a
Bootlin toolchain.

Fixes:

  https://gitlab.com/buildroot.org/buildroot/-/jobs/8892696282

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-26 16:46:20 +01:00
Francois Perrad
21f57ed4ed package/lua-periphery: add test
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-25 13:49:51 +01:00
José Luis Salvador Rufo
16adbd4df0 support/testing: replace x86-64 with aarch64 for ZFS tests
Previously, ZFS tests were limited to x86-64 due to lack of cross-platform support.
However, upstream efforts have improved cross-platform compatibility.
Update the ZFS test platform from x86-64 to aarch64, aligning it with other tests.

Signed-off-by: José Luis Salvador Rufo <salvador.joseluis@gmail.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-21 22:10:00 +01:00
José Luis Salvador Rufo
fbc4d5215f support/testing: update zfs tests to Linux 6.12.9
The previous version, Linux 5.15.35, is outdated.
Upgrade to the latest LTS release.

Signed-off-by: José Luis Salvador Rufo <salvador.joseluis@gmail.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-21 22:09:56 +01:00
Yann E. MORIN
29e1af8430 support/testing/utils: check patch on stdin to get-developers
Since commit d10d22221f (utils/get-developers: read patch from stdin
when it's not a tty), get-developers accepts to read a patch fromn its
stdin when it is not a tty.

Add a test for this.

Reported-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Yann E. MORIN <yann.morin@orange.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-20 21:08:47 +01:00
Yann E. MORIN
3778f704cd support/testing/utils: fix get-developers test without a tty
get-developers will check its stdin to decide whether it is a tty or
not, and behave differently whether it is or not. So, when we run the
tests, we need an actual tty.

However, when running in a CI pipeline, like on Gitlab-CI, there is no
tty available on stdin.

Fake one. We don't need anything too fancy, so just a slave pty will
suffice.

Fixes: https://gitlab.com/buildroot.org/buildroot/-/jobs/8830671800
Fixes: d10d22221f (utils/get-developers: read patch from stdin when
it's not a tty)

Reported-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Yann E. MORIN <yann.morin@orange.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-20 20:58:56 +01:00
Thomas Petazzoni
f6cc52627d support/testing/tests/boot/test_syslinux: use newer toolchains
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-19 11:36:06 +01:00
Romain Naour
49cc81057b toolchain/toolchain-external: remove Bootlin nios2 external toolchain
We are going to remove nios2 support, so remove the Bootlin nios2
external toolchain.

Remove this toolchain from the Buildroot testsuite.

Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-15 21:30:18 +01:00
Romain Naour
9fb788dc17 support/scripts/gen-bootlin-toolchains: remove nios2 toolchain
Nios2 will be removed from Buildroot, so Bootlin toolchains will
no longer provide nios2 toolchain in further releases.

Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-15 21:30:13 +01:00
Romain Naour
e56ae61ff9 support/config-fragments: remove nios2 toolchain
The nios2 architecture was deprecated in gcc-14 and has been removed
in the upcoming gcc-15 [1][2].

Our last and only nios2 defconfig "qemu_nios2_10m50_defconfig" was
removed in 2024.11 due to nios2 removal from Qemu 9.1.0 [3].

Remove nios2 testing from Buildroot autobuilders.

[1] https://sourceware.org/pipermail/binutils/2024-April/133675.html
[2] https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=e876acab6cdd84bb2b32c98fc69fb0ba29c81153
[3] f96b4c176f

Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Julien Olivain <ju.o@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-15 21:30:09 +01:00
Vincent Stehlé
055f82ebbd support/testing: new xen runtime test
Signed-off-by: Vincent Stehlé <vincent.stehle@laposte.net>
[Julien: switch to human readable genimage.cfg partition uuid]
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-14 20:54:24 +01:00
Peter Korsgaard
c04ba4b580 Update for 2024.11.1
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 31462e4169)
[Peter: drop Makefile change]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2025-01-09 16:05:08 +01:00
Yann E. MORIN
3722998a3d support/dependencies: remove confusing comment about host system python
Since commit 9c0c7846cd (support/dependencies: don't check for python
on the host), we no longer check for a host python interpreter installed
on the system.

Drop the comment in support/dependencies/check-host-python3.sh, as it is
now confusing.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-06 23:23:35 +01:00
Yann E. MORIN
35f381b93e utils/get-developers: use parser.error() rather than canned print+return
parser.error() reports a nice error message, that also displays a short
reminder of the available options.

Adapt the test-suite accordingly: previously, the error string was an
exact string in the stdout list, while it now is a substring in one of
the strings in stderr. The exit code changes, too.

Signed-off-by: Yann E. MORIN <yann.morin@orange.com>
Cc: Julien Olivain <ju.o@free.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-05 14:09:10 +01:00
Romain Naour
9ee173ba5f support/testing/{test_edk2, test_grub, test_iso9660, test_fwts}: remove edk2 download fix
Remove the download fix introduced by [1] now the edk2 git repository
has been fixed in version stable202411 [2].

[1] 47fc9e5509.
[2] 95d8a1c255

Cc: Julien Olivain <ju.o@free.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-04 21:38:54 +01:00
Romain Naour
3eb28657f8 support/testing: test_edk2: bump ATF to 2.12
Since edk2-202408, ATF >= 2.12 is required for qemu aarch64 sbsa target
to support CPU topology information provided by edk2 firmware [1].

If ATF <= 2.11 is used, the boot will hand with the following error:

      sbsa_sip_smc_handler: unhandled SMC (0xc20000ca) (function id: 202)

In order to update edk2 package to a newer version, update ATF version
used by TestEdk2 to 2.12.

[1] c891b4d835

Cc: Julien Olivain <ju.o@free.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-04 21:30:21 +01:00
Romain Naour
3bbbe8722f support/testing: test_fwts: bump ATF to 2.12
Since edk2-202408, ATF >= 2.12 is required for qemu aarch64 sbsa target
to support CPU topology information provided by edk2 firmware [1].

If ATF <= 2.11 is used, the boot will hand with the following error:

      sbsa_sip_smc_handler: unhandled SMC (0xc20000ca) (function id: 202)

In order to update edk2 package to a newer version, update ATF version
used by TestFwts to 2.12.

[1] c891b4d835

Cc: Julien Olivain <ju.o@free.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-04 21:30:18 +01:00
Julien Olivain
c26da42560 package/libcamera: bump to version 0.4.0
For change log since 0.3.2, see:
https://git.libcamera.org/libcamera/libcamera.git/tag/?h=v0.4.0

libcamera dropped the gcc 8 support in [1] and increased the minimal
version to 9. This commit updates that requirement in the package
Config.in and in reverse dependency (in libcamera-apps).

This commit also updates the libcamera runtime test to the new format
of the "cam --list-properties" output.

[1] https://git.libcamera.org/libcamera/libcamera.git/commit/?id=9f513439b6896d1a33c91a400bd02b7b8829feb6

Cc: Kieran Bingham <kieran.bingham@ideasonboard.com>
Cc: Marcus Folkesson <marcus.folkesson@gmail.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-03 18:54:59 +01:00
Julien Olivain
566e9afac4 support/testing: new usbip runtime test
Commit [1] introduced the usbip package. This commit adds a new runtime
test to check this functionality.

[1] f05f2c1ad7

Cc: Yann E. MORIN <yann.morin@orange.com>
Reviewed-by: Yann E. MORIN <yann.morin@orange.com>
Tested-by: Yann E. MORIN <yann.morin@orange.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-01-02 19:36:22 +01:00
Julien Olivain
b118c9dcf3 support/testing: new xxhash runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-12-30 22:43:31 +01:00
Julien Olivain
89061166ec support/testing: add dpdk runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-12-29 22:52:32 +01:00
Julien Olivain
e14380b3c4 support/testing/tests/package/test_xvisor.py: new runtime test
This is a basic test for Xvisor RISC-V 64bit. It is running few
management and status commands. It does not start a Linux kernel.

RISC-V 64bit was chosen for this test because it was the simplest
solution to run xvisor in a qemu emulator.

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-12-29 22:31:01 +01:00
Julien Olivain
15dbc33be8 support/testing: new proj runtime test
Tested-by: Zoltan Gyarmati <zgyarmati@zgyarmati.de>
Reviewed-by: Zoltan Gyarmati <zgyarmati@zgyarmati.de>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2024-12-20 22:56:15 +01:00
Julien Olivain
ed9da08944 support/testing/infra/emulator.py: add qemu version in run log
In some specific situations, there is subtle bugs which depends on a
specific Qemu emulator version and the code it runs.

For example, EDK2 on Aarch64 could work with specific versions of Qemu,
EDK2 and ATF. See commit cc0823c2d "boot/edk2: bump to version
edk2-stable202405" [1].

Also, some Qemu bugs made the guest OS crash. See for example commit
9534b9c00 "package/qemu: fix qemu 9.x issue for AArch32 Secure
PL1&0" [2].

Commit 0d4177598 "support/testing/infra/emulator.py: add build host
dir to qemu search path" added the ability for a runtime test to
select host-qemu in order to use it. It is also possible for a user
to use the "utils/run-tests" script on its host system providing its
own version of Qemu. The Buildroot CI can also use its Qemu version
included in the reference Docker image.

This means the Qemu emulator for running a runtime test can be from
several sources:
- Buildroot Docker reference image,
- Buildroot host-qemu package version,
- Developer host OS qemu version.

Those versions can also change in time.

In order to help debugging of those subtle emulator bugs, this commit
adds a recording of the actual Qemu version used to run a test.

[1] cc0823c2d1
[2] 9534b9c00c
[3] 0d4177598c

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-12-11 17:50:52 +01:00
Julien Olivain
c2f91e9046 support/testing/tests/package/test_fwts.py: switch to neoverse-n1 cpu
The SBSA Reference Platform was updated to use the neoverse-n1 cpu
(armv8.2a) in Qemu v8.1 [1].

Commit c58a2a968 "configs/qemu_aarch64_sbsa_defconfig: switch to
neoverse-n1 (armv8.2a)" [2] reflected this change in
qemu_aarch64_sbsa_defconfig.

This commit updates the test_fwts runtime test the same way.

This update is possible with the help of commits [3] and [4].

[1] 1877272bad
[2] c58a2a9687
[3] 0d4177598c
[4] 027ddcbff6

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-12-11 16:57:29 +01:00
Julien Olivain
36c7a5366a support/testing/tests/boot/test_edk2.py: switch to neoverse-n1 cpu
The SBSA Reference Platform was updated to use the neoverse-n1 cpu
(armv8.2a) in Qemu v8.1 [1].

Commit c58a2a968 "configs/qemu_aarch64_sbsa_defconfig: switch to
neoverse-n1 (armv8.2a)" [2] reflected this change in
qemu_aarch64_sbsa_defconfig.

This commit updates the test_edk2 runtime test the same way.

This update is possible with the help of commits [3] and [4].

[1] 1877272bad
[2] c58a2a9687
[3] 0d4177598c
[4] fba62f2ab1

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-12-11 16:57:15 +01:00
Peter Korsgaard
8f9ce0c913 Update for 2024.11
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2024-12-08 11:18:01 +01:00
Julien Olivain
6561a5d773 support/testing: improve weston test reliability
The weston runtime test is unreliable, depending on the execution speed
of its runner. Example of failure is [1], and success is [2]. This
commit improves the test in several ways, to make it more robust to
execution speed variations:

- The command started in background (weston, weston-simple-egl) are
  now started in a subshell. This suppresses the job control messages
  when they are stopped. Those messages could interfere with the parsing
  of the output;

- Wait time are moved outside the emulator;

- The kernel argument vt.global_cursor_default=0 is added, to make sure
  cursors are globally disabled, since the test use vkms display CRCs;

- The memory of the emulator is increased to 512M. This test uses cpio
  initramfs, and the filesystem size increased;

- The vkms driver emulates a "vsync" event, but can generate a warning
  when the system is too slow. This warning is printed on the console by
  the klogd daemon in its default configuration. This commit adds the
  overlay file /etc/default/klogd to limit only kernel emergency
  messages to be printed on the console. This change fixes the failure
  seen in [1] ;

- Some sleep time values were adjusted to run on a "performant" idle
  host. Those values are not suitable in all situations. In the
  meantime a generic retry mechanism is added in the test infra, this
  commit adds a retry logic inspired from the test_flutter runtime
  test.

Fixes: [1]

[1] https://gitlab.com/buildroot.org/buildroot/-/jobs/8562483474
[2] https://gitlab.com/buildroot.org/buildroot/-/jobs/8435236652

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2024-12-07 23:22:15 +01:00
Julien Olivain
07a444d088 support/testing: improve mosquitto test reliability
The mosquitto runtime test can randomly fail on slow
runners, see [1].

This commit improves this test in the following ways:

- the mosquitto_sub subscriber process is now started in a subshell
to suppress the job control messages (to prevent any spurious
messages when the job stops),

- the standard error is redirected to /dev/null, to prevent the
printing of any messages,

- the mosquitto_pub publisher process is started later, by increasing
the sleep time,

- finally, a new sleep time is introduced between the mosquitto_pub
publisher process and the check of the mosquitto_sub subscriber, to
make sure it will have time to write its output and exit.

Fixes: [1]

[1] https://gitlab.com/buildroot.org/buildroot/-/jobs/8453386454

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-11-28 21:14:55 +01:00
Peter Korsgaard
5eeab05e48 Update for 2024.08.2
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit a91b9c7400)
[Peter: drop Makefile change]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2024-11-14 14:47:41 +01:00
Julien Olivain
fca1933e19 support/testing/tests/boot/test_grub.py: new test for RISCV64 EFI
Commit f439b47ed "boot/grub2: add RISC-V 64bit EFI support" [1]
introduced the grub2 RISC-V UEFI support.

At that time, it was not possible to have a runtime test for this.
qemu-system-riscv64 is not in the Buildroot Docker reference image,
and the base distribution (Debian 11) does not provide a
sufficiently recent version. A qemu-system-riscv64 >= 8.0.0 is needed.

Commit 0d4177598 "support/testing/infra/emulator.py: add build host
dir to qemu search path" [2] added the capability to use the
Buildroot host-qemu package inside runtime test.

With this support, it is now possible to add a runtime test for a
grub2 UEFI boot on RISC-V 64bit.

Also, due to an upstream edk2 git submodule issue, this commit
includes a workaround to use https://sources.buildroot.net for this
test. See [3].

[1] f439b47ed6
[2] 0d4177598c
[3] 47fc9e5509

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-11-11 21:15:33 +01:00
Romain Naour
47fc9e5509 support/testing/{test_edk2, test_grub, test_iso9660, test_fwts}: fix edk2 download
All EDK2 releases <= edk2-stable202408 can't be fetched from git
anymore due to a missing git submodule as reported by [1].

Usually Buildroot fall-back using https://sources.buildroot.net thanks
to BR2_BACKUP_SITE where a backup of the generated archive is
available. But the BRConfigTest remove BR2_BACKUP_SITE default value
while generating the .config used by runtime tests. See [2].

Replace the BR2_BACKUP_SITE override from BRConfigTest in order to
continue testing EDK2 package using the usual backup site.

This workaround needs to be removed with the next EDK2 version bump
using this commit [3].

Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/8258995977 (TestGrubX8664EFI)
https://gitlab.com/buildroot.org/buildroot/-/jobs/8258995962 (TestGrubi386EFI)
https://gitlab.com/buildroot.org/buildroot/-/jobs/8258995455 (TestFwts)
https://gitlab.com/buildroot.org/buildroot/-/jobs/8258995427 (TestIso9660Grub2Hybrid)
https://gitlab.com/buildroot.org/buildroot/-/jobs/8258995416 (TestIso9660Grub2EFI)
https://gitlab.com/buildroot.org/buildroot/-/jobs/8258992621 (TestEdk2)
https://gitlab.com/buildroot.org/buildroot/-/jobs/8258990697 (TestGrubAArch64EFI)

[1] https://github.com/tianocore/edk2/issues/6398
[2] 559bb33ae7
[3] 95d8a1c255

Signed-off-by: Romain Naour <romain.naour@smile.fr>
[Julien: insert link to [2] in commit log]
Signed-off-by: Julien Olivain <ju.o@free.fr>
2024-11-07 21:08:38 +01:00
Julien Olivain
f27fc081e8 support/testing: test_grub: update and re-enable the test
The EDK2 bump to stable202405 introduced an incompatibility with the
Qemu version 5.2.0 present in the reference Docker image. For that
reason, this test was disabled.

This commit enables host-qemu in the build, to be used by the runtime
test infrastructure.

Since this commit switch to a more recent host-qemu, it also removes
firmware options to workaround old qemu bugs.

Those changes are fixing this test, which is why this commit re-enables
it by removing the skipTest() invocation.

Signed-off-by: Julien Olivain <ju.o@free.fr>
Reviewed-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-11-04 23:03:57 +01:00
Julien Olivain
027ddcbff6 support/testing: test_fwts: update and re-enable the test
The EDK2 bump to stable202405 introduced an incompatibility with the
Qemu version 5.2.0 present in the reference Docker image. For that
reason, this test was disabled.

This commit updates ATF to 2.11, and enables host-qemu in the build,
to be used by the runtime test infrastructure.

Those changes are fixing this test, which is why this commit re-enables
it by removing the skipTest() invocation.

Signed-off-by: Julien Olivain <ju.o@free.fr>
Reviewed-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-11-04 23:03:55 +01:00
Julien Olivain
fba62f2ab1 support/testing: test_edk2: update and re-enable the test
The EDK2 bump to stable202405 introduced an incompatibility with the
Qemu version 5.2.0 present in the reference Docker image. For that
reason, this test was disabled.

This commit updates ATF to 2.11 and kernel to 6.6.58, and enables
host-qemu in the build, to be used by the runtime test infrastructure.

Those changes are fixing this test, which is why this commit re-enables
it by removing the skipTest() invocation.

Signed-off-by: Julien Olivain <ju.o@free.fr>
Reviewed-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-11-04 23:03:52 +01:00