Browse Source

libgcrypt: rewrite ptest

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.

(From OE-Core rev: 5e07e6c376cf46d2788dcef53e9feba890c0236d)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton 3 years ago
parent
commit
de284c467a

+ 18 - 0
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"
+ 

+ 7 - 1
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

+ 4 - 15
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"