Thanks! Before this can be added I'd like to clarify two things: - is execution time of 184 with or without kvm? - depending on that, you need to add the test to fast or slow list in ptest-packagelists.inc, so it's actually executed in yocto CI.
Alex On Wed, 25 Jan 2023 at 14:05, Ravineet Singh <[email protected]> wrote: > > Step 1 of adding gnutls unit-tests into ptest. Only self-contained > test (no external file system dependencies) are included in this step. > > Sample output: > root@qemux86-64:~# ptest-runner gnutls > START: ptest-runner > BEGIN: /usr/lib64/gnutls/ptest > PASS: aead-cipher-vec > PASS: alerts > PASS: anti_replay > ... > gnutls test summary: > -------------------- > total: 375 > pass : 364 > fail : 0 > skip : 11 > > DURATION: 184 > END: /usr/lib64/gnutls/ptest > 2023-01-13T11:32 > STOP: ptest-runner > TOTAL: 1 FAIL: 0 > > Signed-off-by: Ravineet Singh <[email protected]> > --- > .../gnutls/gnutls/Add-ptest-support.patch | 59 ++++++++++++ > meta/recipes-support/gnutls/gnutls/run-ptest | 90 +++++++++++++++++++ > meta/recipes-support/gnutls/gnutls_3.7.8.bb | 8 +- > 3 files changed, 156 insertions(+), 1 deletion(-) > create mode 100644 meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch > create mode 100644 meta/recipes-support/gnutls/gnutls/run-ptest > > diff --git a/meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch > b/meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch > new file mode 100644 > index 0000000000..965568cfd6 > --- /dev/null > +++ b/meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch > @@ -0,0 +1,59 @@ > +From 74080376904713a8e6cceefbc25c81512796bf0c Mon Sep 17 00:00:00 2001 > +From: Ravineet Singh <[email protected]> > +Date: Tue, 10 Jan 2023 16:11:10 +0100 > +Subject: [PATCH] gnutls: add ptest support > + > +Signed-off-by: Ravineet Singh <[email protected]> > +--- > + Makefile.am | 3 +++ > + configure.ac | 2 ++ > + tests/Makefile.am | 6 ++++++ > + 3 files changed, 11 insertions(+) > + > +diff --git a/Makefile.am b/Makefile.am > +index 843193f9f..816b09fec 100644 > +--- a/Makefile.am > ++++ b/Makefile.am > +@@ -191,6 +191,9 @@ dist-hook: > + mv ChangeLog $(distdir) > + touch -c $(distdir)/doc/*.html $(distdir)/doc/*.pdf > $(distdir)/doc/*.info > + > ++install-ptest: > ++ $(MAKE) -C tests DESTDIR=$(DESTDIR)/tests $@ > ++ > + .PHONY: abi-check abi-dump-versioned abi-dump-latest pic-check symbol-check > local-code-coverage-output files-update AUTHORS > + > + include $(top_srcdir)/cligen/cligen.mk > +diff --git a/configure.ac b/configure.ac > +index baff1c007..f9f596abf 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -1150,6 +1150,8 @@ AC_SUBST(LIBGNUTLS_CFLAGS) > + > + AM_CONDITIONAL(NEEDS_LIBRT, test "$gnutls_needs_librt" = "yes") > + > ++AM_EXTRA_RECURSIVE_TARGETS([buildtest-TESTS]) > ++ > + AC_DEFINE([GNUTLS_INTERNAL_BUILD], 1, [We allow temporarily usage of > deprecated functions - until they are removed.]) > + > + hw_features= > +diff --git a/tests/Makefile.am b/tests/Makefile.am > +index 573e911a0..e8a26f8b9 100644 > +--- a/tests/Makefile.am > ++++ b/tests/Makefile.am > +@@ -644,6 +644,12 @@ SH_LOG_COMPILER = $(SHELL) > + AM_VALGRINDFLAGS = --suppressions=$(srcdir)/suppressions.valgrind > + LOG_COMPILER = $(LOG_VALGRIND) > + > ++install-ptest: $(check_PROGRAMS) > ++ @$(INSTALL) -d $(DESTDIR) > ++ @for file in $^; do \ > ++ $(INSTALL_PROGRAM) $$file $(DESTDIR) ; \ > ++ done > ++ > + distclean-local: > + rm -rf softhsm-*.db softhsm-*.config *.tmp tmp-* > x509-crt-list-import-url.config.db port.lock.d > + > +-- > +2.31.1 > + > diff --git a/meta/recipes-support/gnutls/gnutls/run-ptest > b/meta/recipes-support/gnutls/gnutls/run-ptest > new file mode 100644 > index 0000000000..84948f487d > --- /dev/null > +++ b/meta/recipes-support/gnutls/gnutls/run-ptest > @@ -0,0 +1,90 @@ > +#!/bin/sh > + > +rjob() { > + local job=$1 > + local log=$2 > + > + # TODO: Output will be garbled > + ./${job} >> ${log} 2>&1 > + > + ret=$? > + case $ret in > + 0) > + echo "PASS: $t" >> ${log} > + echo "PASS: $t" > + ;; > + 77) > + echo "SKIP: $t" >> ${log} > + echo "SKIP: $t" > + ;; > + *) > + echo "FAIL: $t" >> ${log} > + echo "FAIL: $t" > + ;; > + esac > +} > + > +is_disallowed() { > + local key=$1 > + $(echo ${test_disallowlist} | grep -w -q ${key}) > + return $? > +} > + > +# TODO > +# This list should probably be in a external file > +# Testcases defined here either take very long time (dtls-stress) > +# or are dependent on local files (certs, etc) in local file system > +# currently not exported to target. > + > +test_disallowlist="" > +test_disallowlist="${test_disallowlist} dtls-stress" > +test_disallowlist="${test_disallowlist} handshake-large-cert" > +test_disallowlist="${test_disallowlist} id-on-xmppAddr" > +test_disallowlist="${test_disallowlist} mini-x509-cas" > +test_disallowlist="${test_disallowlist} pkcs12_simple" > +test_disallowlist="${test_disallowlist} protocol-set-allowlist" > +test_disallowlist="${test_disallowlist} psk-file" > +test_disallowlist="${test_disallowlist} rawpk-api" > +test_disallowlist="${test_disallowlist} set_pkcs12_cred" > +test_disallowlist="${test_disallowlist} system-override-curves-allowlist" > +test_disallowlist="${test_disallowlist} system-override-hash" > +test_disallowlist="${test_disallowlist} system-override-sig" > +test_disallowlist="${test_disallowlist} system-override-sig-tls" > +test_disallowlist="${test_disallowlist} system-prio-file" > +test_disallowlist="${test_disallowlist} x509cert-tl" > + > +LOG=${PWD}/tests.log > +cd tests > +max_njobs=$(grep -c ^processor /proc/cpuinfo) > +njobs=0 > + > +for t in *; do > + [ -x $t ] || continue > + [ -f $t ] || continue > + > + is_disallowed ${t} > + [ $? -eq 0 ] && continue > + > + rjob ${t} ${LOG} & > + one=1 > + njobs=$(expr ${njobs} + ${one}) > + if [ ${njobs} -eq ${max_njobs} ]; then > + wait > + njobs=0 > + fi > +done > +wait > + > +skipped=$(grep -c SKIP ${LOG}) > +passed=$(grep -c PASS ${LOG}) > +failed=$(grep -c FAIL ${LOG}) > +total=$(expr ${passed} + ${failed} + ${skipped}) > + > +echo > +echo "gnutls test summary:" > +echo "--------------------" > +echo "total: ${total}" > +echo "pass : ${passed}" > +echo "fail : ${failed}" > +echo "skip : ${skipped}" > +echo > diff --git a/meta/recipes-support/gnutls/gnutls_3.7.8.bb > b/meta/recipes-support/gnutls/gnutls_3.7.8.bb > index 8f979a5b99..fee06393bd 100644 > --- a/meta/recipes-support/gnutls/gnutls_3.7.8.bb > +++ b/meta/recipes-support/gnutls/gnutls_3.7.8.bb > @@ -22,11 +22,13 @@ SHRT_VER = > "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" > SRC_URI = > "https://www.gnupg.org/ftp/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar.xz \ > file://arm_eabi.patch \ > > file://0001-Creating-.hmac-file-should-be-excuted-in-target-envi.patch \ > + file://run-ptest \ > + file://Add-ptest-support.patch \ > " > > SRC_URI[sha256sum] = > "c58ad39af0670efe6a8aee5e3a8b2331a1200418b64b7c51977fb396d4617114" > > -inherit autotools texinfo pkgconfig gettext lib_package gtk-doc > +inherit autotools texinfo pkgconfig gettext lib_package gtk-doc ptest > > PACKAGECONFIG ??= "libidn ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', > d)}" > > @@ -68,6 +70,10 @@ do_install:append:class-target() { > fi > } > > +do_compile:append() { > + oe_runmake ${PARALLEL_MAKE} -C tests buildtest-TESTS > +} > + > PACKAGES =+ "${PN}-openssl ${PN}-xx ${PN}-fips" > > FILES:${PN}-dev += "${bindir}/gnutls-cli-debug" > -- > 2.34.1 > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#176348): https://lists.openembedded.org/g/openembedded-core/message/176348 Mute This Topic: https://lists.openembedded.org/mt/96519581/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
