On Wed, Jan 25, 2023 at 03:02:27PM +0100, Alexander Kanavin wrote:
> Thanks! Before this can be added I'd like to clarify two things:
> - is execution time of 184 with or without kvm?
It is with 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.
I'll add it in the slow list in ptest-packagelists.inc, I assume that is OK.

Ravineet
>
> 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 (#176349): 
https://lists.openembedded.org/g/openembedded-core/message/176349
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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to