diff mbox series

[3/3] libgcrypt: rewrite ptest

Message ID 20220826142337.42920-3-ross.burton@arm.com
State Accepted, archived
Commit 5e07e6c376cf46d2788dcef53e9feba890c0236d
Headers show
Series [1/3] libgcrypt: remove obsolete pkgconfig install | expand

Commit Message

Ross Burton Aug. 26, 2022, 2:23 p.m. UTC
Instead of installing pieces of the build system, we can install the
test driver (which can also be used to list the files needed) and run
the tests directly.

Signed-off-by: Ross Burton <ross.burton@arm.com>
---
 .../libgcrypt/files/no-native-gpg-error.patch | 18 ++++++++++++++++++
 .../recipes-support/libgcrypt/files/run-ptest |  8 +++++++-
 .../libgcrypt/libgcrypt_1.10.1.bb             | 19 ++++---------------
 3 files changed, 29 insertions(+), 16 deletions(-)
 create mode 100644 meta/recipes-support/libgcrypt/files/no-native-gpg-error.patch
diff mbox series

Patch

diff --git a/meta/recipes-support/libgcrypt/files/no-native-gpg-error.patch b/meta/recipes-support/libgcrypt/files/no-native-gpg-error.patch
new file mode 100644
index 00000000000..b9a607863d3
--- /dev/null
+++ b/meta/recipes-support/libgcrypt/files/no-native-gpg-error.patch
@@ -0,0 +1,18 @@ 
+Don't depend on a native libgpg-error to build the test driver, as it's
+an optional dependency for some C annotations.
+
+Upstream-Status: Inappropriate
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/tests/testdrv.c b/tests/testdrv.c
+index 0ccde326..6d6abd57 100644
+--- a/tests/testdrv.c
++++ b/tests/testdrv.c
+@@ -32,7 +32,6 @@
+ # include <fcntl.h>
+ # include <sys/wait.h>
+ #endif
+-#include <gpg-error.h> /* For some macros.  */
+ 
+ #include "stopwatch.h"
+ 
diff --git a/meta/recipes-support/libgcrypt/files/run-ptest b/meta/recipes-support/libgcrypt/files/run-ptest
index 4818a061b4b..c349ae1944e 100644
--- a/meta/recipes-support/libgcrypt/files/run-ptest
+++ b/meta/recipes-support/libgcrypt/files/run-ptest
@@ -1,3 +1,9 @@ 
 #!/bin/sh
 
-make -C build/tests runtest-TESTS
+# Run the tests in regression mode so they are quicker
+export GCRYPT_IN_REGRESSION_TEST=1
+# The 'random' test invokes itself, so we need to be sure that the test
+# directory is on PATH.
+export PATH=$PATH:.
+
+./testdrv --verbose
diff --git a/meta/recipes-support/libgcrypt/libgcrypt_1.10.1.bb b/meta/recipes-support/libgcrypt/libgcrypt_1.10.1.bb
index 5047c9075f1..b0d88de3aa1 100644
--- a/meta/recipes-support/libgcrypt/libgcrypt_1.10.1.bb
+++ b/meta/recipes-support/libgcrypt/libgcrypt_1.10.1.bb
@@ -17,13 +17,13 @@  LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
                     "
 
 DEPENDS = "libgpg-error"
-RDEPENDS:${PN}-ptest = "bash make"
 
 UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
 SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \
            file://0001-libgcrypt-fix-m4-file-for-oe-core.patch \
            file://0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch \
            file://0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch \
+           file://no-native-gpg-error.patch \
            file://run-ptest \
            "
 SRC_URI[sha256sum] = "ef14ae546b0084cd84259f61a55e07a38c3b53afc0f546bffcef2f01baffe9de"
@@ -38,8 +38,6 @@  inherit autotools texinfo binconfig-disabled pkgconfig ptest
 EXTRA_OECONF = "--disable-asm"
 EXTRA_OEMAKE:class-target = "LIBTOOLFLAGS='--tag=CC'"
 
-PRIVATE_LIBS:${PN}-ptest:append = " libgcrypt.so.20"
-
 PACKAGECONFIG ??= "capabilities"
 PACKAGECONFIG[capabilities] = "--with-capabilities,--without-capabilities,libcap"
 
@@ -49,18 +47,9 @@  do_configure:prepend () {
 }
 
 do_install_ptest() {
-    cp -r --preserve=mode,links -v ${S} ${D}${PTEST_PATH}
-    cp -r --preserve=mode,links -v ${B} ${D}${PTEST_PATH}
-    rm ${D}${PTEST_PATH}/build/cipher/gost-s-box
-    rm ${D}${PTEST_PATH}/build/doc/yat2m
-    rm ${D}${PTEST_PATH}/build/libtool
-    rm ${D}${PTEST_PATH}/build/config.status
-    rm ${D}${PTEST_PATH}/build/config.log
-    rm ${D}${PTEST_PATH}/build/src/mpicalc
-    rm ${D}${PTEST_PATH}/${BP}/autom4te* -rf
-    sed -i -e 's/Makefile:.*/Makefile-disabled:/' ${D}${PTEST_PATH}/build/Makefile
-    find ${D}/${PTEST_PATH}/build -name "*.cmake" -or -name "Makefile" \
-    | xargs sed -e "s|${WORKDIR}|${PTEST_PATH}|g" -e "s|${WORKDIR}/recipe-sysroot-native||g" -i
+    cd tests
+    oe_runmake testdrv-build testdrv
+    install testdrv $(srcdir=${S}/tests ./testdrv-build --files | sort | uniq) ${D}${PTEST_PATH}
 }
 
 FILES:${PN}-dev += "${bindir}/hmac256 ${bindir}/dumpsexp"