| Message ID | 20261014085044.14497-1-pratik.farkase@est.tech |
|---|---|
| State | Changes Requested |
| Headers | show |
| Series | [v2] libsoup: add ptest support | expand |
On Wed Oct 14, 2026 at 10:50 AM CEST, Pratik Farkase wrote: > Build the installed-tests via the meson tests/installed_tests options > (enabled through a new 'tests' PACKAGECONFIG when ptest is in > DISTRO_FEATURES) and run them under ptest with > gnome-desktop-testing-runner. > > Tested on qemux86-64 with ptest-runner: 36 tests, all pass. > > Signed-off-by: Pratik Farkase <pratik.farkase@est.tech> > --- Hi Pratik, Thanks for the new version. It looks like we are still getting OOM issues: WARNING: core-image-ptest-libsoup-1.0-r0 do_testimage: There were failing ptests. Traceback (most recent call last): File "/srv/pokybuild/yocto-worker/qemux86-64-musl-ptest/build/layers/openembedded-core/meta/lib/oeqa/core/decorator/__init__.py", line 35, in wrapped_f return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/srv/pokybuild/yocto-worker/qemux86-64-musl-ptest/build/layers/openembedded-core/meta/lib/oeqa/core/decorator/__init__.py", line 35, in wrapped_f return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/srv/pokybuild/yocto-worker/qemux86-64-musl-ptest/build/layers/openembedded-core/meta/lib/oeqa/core/decorator/__init__.py", line 35, in wrapped_f return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/srv/pokybuild/yocto-worker/qemux86-64-musl-ptest/build/layers/openembedded-core/meta/lib/oeqa/runtime/cases/ptest.py", line 27, in test_ptestrunner_expectfail self.do_ptestrunner() File "/srv/pokybuild/yocto-worker/qemux86-64-musl-ptest/build/layers/openembedded-core/meta/lib/oeqa/runtime/cases/ptest.py", line 121, in do_ptestrunner self.fail(failmsg) AssertionError: ERROR: Processes were killed by the OOM Killer: [ 38.188495] Out of memory: Killed process 563 (logger-test) total-vm:4209544kB, anon-rss:3997540kB, file-rss:36kB, shmem-rss:0kB, UID:0 pgtables:7904kB oom_score_adj:0 Failed ptests: {'libsoup': ['libsoup-3.0/logger-test.test']} https://autobuilder.yoctoproject.org/valkyrie/#/builders/73/builds/4743 https://autobuilder.yoctoproject.org/valkyrie/#/builders/110/builds/1364 https://autobuilder.yoctoproject.org/valkyrie/#/builders/109/builds/1379 Can you have a look at the issue? Thanks, Mathieu
Let's skip those if 4gigs don't suffice. sent a v3. Best Regards, Pratik
diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc index 2bd11b1706..992d3666b9 100644 --- a/meta/conf/distro/include/ptest-packagelists.inc +++ b/meta/conf/distro/include/ptest-packagelists.inc @@ -138,6 +138,7 @@ PTESTS_SLOW = "\ libmodule-build-perl \ libpcap \ libpng \ + libsoup \ ${@bb.utils.contains('DISTRO_FEATURES', 'seccomp', 'libseccomp', '',d)} \ lttng-tools \ lz4 \ diff --git a/meta/recipes-core/images/core-image-ptest.bb b/meta/recipes-core/images/core-image-ptest.bb index 22bb23c0e7..35ffb933bb 100644 --- a/meta/recipes-core/images/core-image-ptest.bb +++ b/meta/recipes-core/images/core-image-ptest.bb @@ -49,6 +49,7 @@ QB_MEM:virtclass-mcextend-tcl = "-m 5100" QB_MEM:virtclass-mcextend-go = "-m 4096" QB_MEM:virtclass-mcextend-gnutls = "-m 1536" QB_MEM:virtclass-mcextend-zstd = "-m 4096" +QB_MEM:virtclass-mcextend-libsoup = "-m 4096" TEST_SUITES = "ping ssh parselogs ptest" diff --git a/meta/recipes-support/libsoup/libsoup/run-ptest b/meta/recipes-support/libsoup/libsoup/run-ptest new file mode 100644 index 0000000000..efe975cf3f --- /dev/null +++ b/meta/recipes-support/libsoup/libsoup/run-ptest @@ -0,0 +1,3 @@ +#! /bin/sh + +gnome-desktop-testing-runner libsoup-3.0 diff --git a/meta/recipes-support/libsoup/libsoup_3.8.0.bb b/meta/recipes-support/libsoup/libsoup_3.8.0.bb index 2a40eecaea..277023881f 100644 --- a/meta/recipes-support/libsoup/libsoup_3.8.0.bb +++ b/meta/recipes-support/libsoup/libsoup_3.8.0.bb @@ -9,20 +9,23 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" DEPENDS = "glib-2.0 glib-2.0-native libxml2 sqlite3 libpsl nghttp2" -inherit gettext gnomebase upstream-version-is-even gobject-introspection gi-docgen vala +inherit gettext gnomebase upstream-version-is-even gobject-introspection gi-docgen vala ptest-gnome SRC_URI[archive.sha256sum] = "bbf08fa3e03a88c31a3d27a0d87cb422e9490f2d08e149211103df6d638a2238" +SRC_URI += "file://run-ptest" + PROVIDES = "libsoup-3.0" GIR_MESON_ENABLE_FLAG = 'enabled' GIR_MESON_DISABLE_FLAG = 'disabled' -PACKAGECONFIG ??= "" +PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" PACKAGECONFIG[brotli] = "-Dbrotli=enabled,-Dbrotli=disabled,brotli" PACKAGECONFIG[gssapi] = "-Dgssapi=enabled,-Dgssapi=disabled,krb5" PACKAGECONFIG[ntlm] = "-Dntlm=enabled,-Dntlm=disabled" PACKAGECONFIG[sysprof] = "-Dsysprof=enabled,-Dsysprof=disabled,sysprof" +PACKAGECONFIG[tests] = "-Dtests=true -Dinstalled_tests=true,-Dtests=false -Dinstalled_tests=false" # Tell libsoup where the target ntlm_auth is installed do_write_config:append:class-target() { @@ -34,13 +37,22 @@ EOF EXTRA_OEMESON:append:class-target = " --cross-file ${WORKDIR}/soup.cross" EXTRA_OEMESON += "-Dtls_check=false" -# Disable the test suites -EXTRA_OEMESON += "-Dtests=false -Dautobahn=disabled -Dpkcs11_tests=disabled" +# tests are controlled via the 'tests' PACKAGECONFIG (enabled for ptest) +EXTRA_OEMESON += "-Dautobahn=disabled -Dpkcs11_tests=disabled" GIDOCGEN_MESON_OPTION = 'docs' GIDOCGEN_MESON_ENABLE_FLAG = 'enabled' GIDOCGEN_MESON_DISABLE_FLAG = 'disabled' +# header-parsing-test aborts in do_param_list_tests(): a g_hash_table_size() +# assertion on a parsed parameter list does not hold (returns one entry +# instead of three) with the current glib. The memory-hungry logger and +# http2-body-stream tests are handled by raising QB_MEM for libsoup in +# core-image-ptest.bb. +do_install_ptest:append() { + rm -f ${D}${datadir}/installed-tests/libsoup-3.0/header-parsing-test.test +} + # When built without gnome support, libsoup will contain only one shared lib # and will therefore become subject to renaming by debian.bbclass. Prevent # renaming in order to keep the package name consistent regardless of whether @@ -50,6 +62,10 @@ DEBIAN_NOAUTONAME:${PN} = "1" # glib-networking is needed for SSL, proxies, etc. RRECOMMENDS:${PN} = "glib-networking" +# The TLS-based tests (ssl, server-auth, websocket, hsts) need a glib TLS +# backend at runtime. +RDEPENDS:${PN}-ptest += "glib-networking" + BBCLASSEXTEND = "native nativesdk" CVE_STATUS[CVE-2026-1467] = "fixed-version: fixed in 3.6.6"
Build the installed-tests via the meson tests/installed_tests options (enabled through a new 'tests' PACKAGECONFIG when ptest is in DISTRO_FEATURES) and run them under ptest with gnome-desktop-testing-runner. Tested on qemux86-64 with ptest-runner: 36 tests, all pass. Signed-off-by: Pratik Farkase <pratik.farkase@est.tech> --- Notes: Changes in v2: - Rebased onto master after the libsoup 3.6.6 -> 3.8.0 upgrade. - Keep logger-test and http2-body-stream-test; instead of excluding them, raise QB_MEM for libsoup in core-image-ptest.bb so the large-allocation cases do not hit the OOM killer. Only header-parsing-test remains excluded (a glib parameter-list parsing assertion failure). .../distro/include/ptest-packagelists.inc | 1 + meta/recipes-core/images/core-image-ptest.bb | 1 + .../recipes-support/libsoup/libsoup/run-ptest | 3 +++ meta/recipes-support/libsoup/libsoup_3.8.0.bb | 24 +++++++++++++++---- 4 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 meta/recipes-support/libsoup/libsoup/run-ptest