2404 Commits

Author SHA1 Message Date
Marcin Niestroj
4456d899d0 support/testing: add runtime test for easydbus
Test an actual D-Bus round-trip using easydbus:
 - obtain a name on the system bus
 - subscribe to a signal on a chosen object/interface
 - emit signal with a string payload
 - run the easydbus mainloop
 - verify the handler received the expected payload

This covers both the default Lua interpreter (Lua 5.4) and LuaJIT
(Lua 5.1 ABI).

Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
[Julien:
 - move test files into a rootfs-overlay
 - move common BR2_PACKAGE_{,EASY}DBUS configs to EasyDBusBase
 - make stricter check of script output
 - add DEVELOPERS entry for rootfs-overlay files
]
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-08-09 11:56:41 +02:00
Thomas Petazzoni
9fa59eb7db support/testing: add pyudev test
In order to verify that pyudev works fine, including with just
libudev-zero, add a basic test for this package.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-08-08 16:08:53 +02:00
Deividas Puplauskas
7b822ef500 package/perl-cgi-session: new package
See here for a description:
https://metacpan.org/pod/CGI::Session

Signed-off-by: Deividas Puplauskas <deividas.puplauskas@gmail.com>
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-08-04 22:44:39 +02:00
Romain Naour
933a591d8a support/testing: usbip: wait for the keyboard be detected
Running TestUsbIp may fail when checking if two QEMU USB Keyboards are
reported by lsusb. On fast host, the second QEMU USB keyboard may not
aleady detected when lsusb is executed. So wait a bit, to let the new
keyboard be detected.

Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-08-02 22:04:18 +02:00
Julien Olivain
67d6e6602f support/testing: python-pydal: new runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-08-02 21:50:38 +02:00
Julien Olivain
29c988c7fc support/testing: guile: new runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-08-02 21:50:24 +02:00
Julien Olivain
b1571cab59 support/testing: libgpiod2: new runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-08-02 21:50:17 +02:00
Julien Olivain
43e87a583f support/testing: php: new runtime test
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-08-01 14:02:18 +02:00
James Hilliard
928cc5dc5c package/uboot-tools: fix host FIT signature support
U-Boot host tools use the tools configuration namespace when code calls
CONFIG_IS_ENABLED(). With USE_HOSTCC, CONFIG_IS_ENABLED(FIT_SIGNATURE)
resolves to CONFIG_TOOLS_FIT_SIGNATURE, while
CONFIG_VAL(FIT_SIGNATURE_MAX_SIZE) resolves to
CONFIG_TOOLS_FIT_SIGNATURE_MAX_SIZE.

The host-uboot-tools package only generates the old CONFIG_FIT_SIGNATURE
define. This makes tools/Makefile include fit_check_sign, but the host code
sees FIT signature support as disabled and the OpenSSL-backed signing and
verification objects are omitted. As a result, mkimage accepts a signature
node without writing its value or injecting a required public key.
fit_check_sign then has no required key and reports success without
checking the configuration signature.

A FIT-support-only configuration never exercises this path, which is why
the existing hash-only runtime test still passes.

Generate the tools FIT signature options needed by the host code and pass
CONFIG_TOOLS_LIBCRYPTO=y so the OpenSSL-backed signing, verification and
cipher objects are selected. Keep CONFIG_FIT_SIGNATURE=y in the make
options because U-Boot tools/Makefile still uses it to build
fit_check_sign.

Extend TestHostUbootTools to create an RSA-signed FIT, require a 256-byte
configuration signature and a required public key, verify the FIT, corrupt
the signature, and require verification to fail.

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
[Julien: add comments in runtime test]
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-07-29 20:38:07 +02:00
Joachim Wiberg
4cd5559163 support/testing: mdnsd: new runtime test
Boot an armv5 image running the mdnsd responder alongside the mquery
client, then check that service discovery works: mquery browses for the
bundled _http._tcp service and mdnsd, on the same host, answers over the
loopback of the eth0 multicast group.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
[Julien: add "mdnsd -v" invocation to show version]
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-07-19 12:42:43 +02:00
Yann E. MORIN
3460675872 support/docker: make the image reproducible again
The Debian 12 Bookworm snapshot we use, 20250203, uses the new deb822
format [0] for source list files; it carries a source list file that
points to the current repository, not to the snapshot.

Even though we do inject an old-style source list that points to the
snapshot repository, the packages in the current repository are more
recent than the one in the snapshot, so when we install our packages,
they get retrieved mostly from the current repository rather than from
the snapshot. The image is not reproducible.

Switch to using the new deb822-style source list file.

Note: we do not need to carry the "Latest just before" trick: the
snapshot repository will use the most recent actual snapshot before the
requested dated, so we can just use the date of the image we use (stuck
at midnight because we don't have better).

Since the snapshot repository can be really slow, while at the same time
the remote http server not dropping connections, it can take a very long
while to build the image; add a timeout so that stale connections are
detected and re-attemped early-ish (the timeout applies to both the
connect and the actual download, so it should be large enough to
accomodate slowish network connections).

Fixes: c95d5b8e1e (support/docker: move to current bookworm (Debian
12) snapshot)

[0] https://manpages.debian.org/trixie/apt/sources.list.5.en.html#DEB822-STYLE_FORMAT

Signed-off-by: Yann E. MORIN <yann.morin@orange.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2026-07-08 23:19:23 +02:00
Peter Korsgaard
3bd4b9f434 package/agec: new package
Agec is a simple file encryption tool that implements the
age format in C with minimal dependencies. The tool supports
asymmetric encryption based on X25519, and a passphrase
encryption based on scrypt.

https://git.sr.ht/~min/agec
https://age-encryption.org

Encryption is silently broken for files <35 bytes, so add a patch submitted
upstream to fix that.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-07-01 22:01:31 +02:00
Dowan Gullient via buildroot
cfd7483a26 support/testing: test_gnupg2: fix runtime failure
In the precedent patch "support/testing: test_gnupg2.py: use
assertRunNotOk()" [1] a small typo (OK instead of Ok) was introduced
in the test_gnupg2.py file, which caused a runtime failure.

This patch simply replace "self.assertRunNotOK(cmd)" with
"self.assertRunNotOk(cmd)" to correct this typo.

[1] cb791850ad

Signed-off-by: Dowan Gullient <dowan.gullient@smile.fr>
[Fiona: fix commit message formatting]
Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
2026-07-01 19:56:24 +02:00
Fiona Klute
f38f5bb593 support/testing: TestPythonPy3NetworkmanagerGoi: check we actually get data
The sample script would've passed even if the connections list was
empty. Check that there is at least one connection, and that the
sample script can read loopback device information.

Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2026-06-29 23:22:21 +02:00
Fiona Klute
4245fefb34 support/testing: TestIptablesNft: add test for iptables with nftables backend
The new test inherits from TestIptables, with only minimal changes to
use the nftables backend instead.

Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2026-06-29 21:45:45 +02:00
Romain Naour
92214c922d support/testing: TestIptables: bump kernel to 6.18 LTS
Tested-by: Fiona Klute <fiona.klute@gmx.de>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
2026-06-25 10:35:18 +02:00
Romain Naour
1b2f65bbe9 support/testing: TestIptables: check for netfilter legacy tables enabled
TestIptables expect netfilter legacy tables enabled in the kernel.

Make sure we use iptables-legacy:

  iptables --version
  iptables v1.8.11 (legacy)

The test would fail if nftables compat (iptables-nft) is enabled.

  iptables --version
  iptables v1.8.11 (nf_tables)

Add the following configuration fragment to enable iptables-nft:

  BR2_PACKAGE_IPTABLES_NFTABLES=y
  BR2_PACKAGE_IPTABLES_NFTABLES_DEFAULT=y

Acked-by: Fiona Klute <fiona.klute@gmx.de>
Tested-by: Fiona Klute <fiona.klute@gmx.de>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
2026-06-25 10:35:18 +02:00
Joseph Kogut
8b165e728e support/testing: add virglrenderer test
Add basic smoke test for glmark2 running in a nested qemu guest with
virtio-gpu-gl-pci.

The outer machine uses the Mesa softpipe driver for GLES support with
minimal dependencies. Just test virgl for now, as lavapipe
(software Vulkan driver) requires LLVM, and this validates
virglrenderer.

Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com>
[Romain: add gitlab-runner "2xlarge" tag]
Signed-off-by: Romain Naour <romain.naour@smile.fr>
2026-06-22 23:21:04 +02:00
Peter Korsgaard
6f39a9ba29 support/testing: test_which.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:03:37 +02:00
Peter Korsgaard
8ffa090560 support/testing: test_weston.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:03:35 +02:00
Peter Korsgaard
6e04f8f21f support/testing: test_usbip.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:03:32 +02:00
Peter Korsgaard
59d15f8ada support/testing: test_swipl.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:03:30 +02:00
Peter Korsgaard
50ed1540f3 support/testing: test_screen.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:03:27 +02:00
Peter Korsgaard
f8cfb55845 support/testing: test_rasdaemon.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:03:25 +02:00
Peter Korsgaard
382146eff4 support/testing: test_postgresql.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:03:23 +02:00
Peter Korsgaard
a4ef71a592 support/testing: test_polkit.py: use assertRun{, Not}Ok()
Use the helpers to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:03:20 +02:00
Peter Korsgaard
e5c017f663 support/testing: test_octave.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:03:18 +02:00
Peter Korsgaard
75ae817eb2 support/testing: test_nftables.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Acked-by: Fiona Klute <fiona.klute@gmx.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:03:15 +02:00
Peter Korsgaard
ae1ff2d8dc support/testing: test_mtools.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:03:13 +02:00
Peter Korsgaard
0853612155 support/testing: test_mariadb.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:03:10 +02:00
Peter Korsgaard
aae70a3ab5 support/testing: test_lsof.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:03:08 +02:00
Peter Korsgaard
a0b5a634f0 support/testing: test_libgpgme.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:03:05 +02:00
Peter Korsgaard
c566e5c645 support/testing: test_kmod.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:03:03 +02:00
Peter Korsgaard
cab36bc293 support/testing: test_jq.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:03:00 +02:00
Peter Korsgaard
75ae191b5f support/testing: test_iptables.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:02:57 +02:00
Peter Korsgaard
f3942975c4 support/testing: test_iproute2.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:02:54 +02:00
Peter Korsgaard
cb791850ad support/testing: test_gnupg2.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:02:52 +02:00
Peter Korsgaard
9a1d42e5d4 support/testing: test_fping.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:02:49 +02:00
Peter Korsgaard
0b1ea65f3a support/testing: test_dos2unix.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:02:47 +02:00
Peter Korsgaard
d7284778a1 support/testing: test_ddrescue.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:02:44 +02:00
Peter Korsgaard
69948ba028 support/testing: test_cryptsetup.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:02:42 +02:00
Peter Korsgaard
2889d0f052 support/testing: test_connman.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:02:39 +02:00
Peter Korsgaard
830e0f49bb support/testing: test_bitcoin.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:02:37 +02:00
Peter Korsgaard
eb0ef1fd98 support/testing: test_audit.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:02:34 +02:00
Peter Korsgaard
8caecb62a3 support/testing: test_acl.py: use assertRunNotOk()
Use the helper to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:02:32 +02:00
Peter Korsgaard
8c301eed0e support/testing: test_systemd.py: use assertRun{, Not}Ok()
Use the helpers to simplify the test.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:02:27 +02:00
Peter Korsgaard
03783de150 support/testing: infra: add assertRunNotOk()
There are a number of runtime tests that checks that a command fails as
expected, so add an assertRunNotOk() similar to the existing assertRunOk()
to handle that instead of open coding it everywhere.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Reviewed-by: Fiona Klute <fiona.klute@gmx.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-19 11:02:25 +02:00
Romain Naour
4834f18c69 Revert "support/testing/tests/package/test_kexec.py: fix kexec test for qemu 5.2"
Our docker image was finally updated to Debian 12 and now provide Qemu
7.2.15 [1]. We can safely revert this workaround for older Qemu version.

[1] e5bbe020ca

This reverts commit 37e23e0dd7.

Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-06-15 21:47:48 +02:00
Peter Korsgaard
c7f2991ac3 Merge branch 'next'
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-09 14:55:26 +02:00
Peter Korsgaard
313414b92c Update for 2026.05
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2026-06-08 22:39:13 +02:00