GMP library contains code highly optimized for the host processor.
The test suite for GMP is considered critical.
GMP is heavily used in cryptography, internet security applications,
GCC..., etc. Therefore it is only prudent to have a test suite available.

Signed-off-by: Juro Bystricky <juro.bystri...@intel.com>
---
 .../gmp/gmp-6.1.2/avoid-parallel-tests.patch       | 28 ++++++++++++++++++++++
 meta/recipes-support/gmp/gmp-6.1.2/run-ptest       | 22 +++++++++++++++++
 meta/recipes-support/gmp/gmp_6.1.2.bb              | 21 ++++++++++++++++
 3 files changed, 71 insertions(+)
 create mode 100644 
meta/recipes-support/gmp/gmp-6.1.2/avoid-parallel-tests.patch
 create mode 100644 meta/recipes-support/gmp/gmp-6.1.2/run-ptest

diff --git a/meta/recipes-support/gmp/gmp-6.1.2/avoid-parallel-tests.patch 
b/meta/recipes-support/gmp/gmp-6.1.2/avoid-parallel-tests.patch
new file mode 100644
index 0000000..abc33ef
--- /dev/null
+++ b/meta/recipes-support/gmp/gmp-6.1.2/avoid-parallel-tests.patch
@@ -0,0 +1,28 @@
+
+The target buildtest-TESTS is only supported via serial-tests.
+We also need to add buildest-TESTS to AM_EXTRA_RECURSIVE_TARGETS,
+otherwise most tests will be not built.
+
+Signed-off-by: Juro Bystricky <juro.bystri...@intel.com>
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+
+--- a/configure.ac     2017-10-24 09:19:31.439004000 -0700
++++ b/configure.ac     2017-10-24 10:33:08.850059434 -0700
+@@ -77,7 +77,7 @@
+ dnl  Note that there's a copy of these options in the top-level Makefile.am,
+ dnl  so update there too if changing anything.
+ dnl
+-AM_INIT_AUTOMAKE([1.8 gnu no-dependencies])
++AM_INIT_AUTOMAKE([1.8 gnu no-dependencies serial-tests])
+ AC_CONFIG_HEADERS(config.h:config.in)
+ AM_MAINTAINER_MODE
+ 
+@@ -3936,3 +3936,6 @@
+      ;;
+    esac
+ fi
++
++AM_EXTRA_RECURSIVE_TARGETS([buildtest-TESTS])
++
diff --git a/meta/recipes-support/gmp/gmp-6.1.2/run-ptest 
b/meta/recipes-support/gmp/gmp-6.1.2/run-ptest
new file mode 100644
index 0000000..ef4f76f
--- /dev/null
+++ b/meta/recipes-support/gmp/gmp-6.1.2/run-ptest
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+passed=0
+failed=0
+
+output() {
+  if [ $? -eq 0 ]
+    then 
+        echo "PASS: $i"
+        passed=$((passed + 1))
+    else 
+        echo "FAIL: $i"
+        failed=$((failed + 1))
+  fi
+}
+
+cd tests
+for i in `ls *`; do ./$i ; output; done
+
+echo "=== Test Summary ==="
+echo "PASSED: ${passed}"
+echo "FAILED: ${failed}"
diff --git a/meta/recipes-support/gmp/gmp_6.1.2.bb 
b/meta/recipes-support/gmp/gmp_6.1.2.bb
index b008710..fa60dc7 100644
--- a/meta/recipes-support/gmp/gmp_6.1.2.bb
+++ b/meta/recipes-support/gmp/gmp_6.1.2.bb
@@ -14,6 +14,12 @@ SRC_URI = 
"https://gmplib.org/download/${BPN}/${BP}${REVISION}.tar.bz2 \
            
file://0001-Append-the-user-provided-flags-to-the-auto-detected-.patch \
            file://0001-confiure.ac-Believe-the-cflags-from-environment.patch \
            "
+           
+SRC_URI_append_class-target =" \
+           file://run-ptest \
+           file://avoid-parallel-tests.patch \
+           "
+           
 SRC_URI[md5sum] = "8ddbb26dc3bd4e2302984debba1406a5"
 SRC_URI[sha256sum] = 
"5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2"
 
@@ -34,6 +40,21 @@ do_install_prepend_class-target() {
 
 SSTATE_SCAN_FILES += "gmp.h"
 
+inherit ptest
+
+do_compile_ptest() {
+    oe_runmake -C ${B}/tests buildtest-TESTS
+}
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/tests
+    for i in `find ./tests -name '.libs' -d`; do
+        find $i -type f -perm -111 -exec cp {} ${D}${PTEST_PATH}/tests \;
+    done
+}
+
+RDEPENDS_${PN}-ptest += "bash"
+
 # Doesn't compile in MIPS16e mode due to use of hand-written
 # assembly
 MIPS_INSTRUCTION_SET = "mips"
-- 
2.7.4

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to