elfutils: add ptest support

Add testsuite-ignore-elflint.diff from debian
(http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.176-1.debian.tar.xz)
to fix below ptest failure:
 | ./run-strip-strmerge.sh: line 33: testrun_on_self_skip: command not found
 | FAIL: run-strip-strmerge.sh

Add check for gcc for two test cases such as
run-strip-nothing.sh and run-strip-g.sh which
depends on gcc at run time.

(From OE-Core rev: 240e6b8819aab3bf74cdde92934be337e766aa75)

Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mingli Yu
2019-04-16 16:05:00 +08:00
committed by Richard Purdie
parent f0d4ef3cdc
commit 073556fa8c
5 changed files with 157 additions and 1 deletions

View File

@@ -27,16 +27,24 @@ SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \
file://debian/hurd_path.patch \
file://debian/ignore_strmerge.diff \
file://debian/disable_werror.patch \
file://debian/testsuite-ignore-elflint.diff \
file://0001-skip-the-test-when-gcc-not-deployed.patch \
file://run-ptest \
file://serial-tests.patch \
"
SRC_URI_append_libc-musl = " file://0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch"
SRC_URI[md5sum] = "077e4f49320cad82bf17a997068b1db9"
SRC_URI[sha256sum] = "eb5747c371b0af0f71e86215a5ebb88728533c3a104a43d4231963f308cd1023"
inherit autotools gettext
inherit autotools gettext ptest
EXTRA_OECONF = "--program-prefix=eu- --without-lzma"
EXTRA_OECONF_append_class-native = " --without-bzlib"
# gcc has been added to blacklist, we will find workaround solution
RDEPENDS_${PN}-ptest = "libasm libelf bash"
EXTRA_OECONF_append_class-target += "--enable-tests-rpath"
do_install_append() {
if [ "${TARGET_ARCH}" != "x86_64" ] && [ -z `echo "${TARGET_ARCH}"|grep 'i.86'` ];then
@@ -44,6 +52,23 @@ do_install_append() {
fi
}
do_compile_ptest() {
cd ${B}/tests
oe_runmake buildtest-TESTS
}
do_install_ptest() {
if [ ${PTEST_ENABLED} = "1" ]; then
cp -r ${S}/tests/ ${D}${PTEST_PATH}
cp -r ${B}/tests/* ${D}${PTEST_PATH}/tests
cp -r ${B}/src ${D}${PTEST_PATH}
cp -r ${B}/config.h ${D}${PTEST_PATH}
cp -r ${B}/backends ${D}${PTEST_PATH}
sed -i '/^Makefile:/c Makefile:' ${D}${PTEST_PATH}/tests/Makefile
find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {}
fi
}
EXTRA_OEMAKE_class-native = ""
EXTRA_OEMAKE_class-nativesdk = ""

View File

@@ -0,0 +1,45 @@
From 61939d2e552e7645ecd671fa01cf1c7a72caa82a Mon Sep 17 00:00:00 2001
From: Mingli Yu <Mingli.Yu@windriver.com>
Date: Fri, 12 Apr 2019 16:29:58 +0800
Subject: [PATCH] skip the test when gcc not deployed
Skip the tests which depend on gcc when
gcc not deployed.
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
---
tests/run-strip-g.sh | 2 ++
tests/run-strip-nothing.sh | 2 ++
2 files changed, 4 insertions(+)
diff --git a/tests/run-strip-g.sh b/tests/run-strip-g.sh
index 1303819..a943dec 100755
--- a/tests/run-strip-g.sh
+++ b/tests/run-strip-g.sh
@@ -24,6 +24,8 @@
tempfiles a.out strip.out debug.out readelf.out
+# skip the test if gcc deployed
+which gcc || exit 77
echo Create debug a.out.
echo "int main() { return 1; }" | gcc -g -xc -
diff --git a/tests/run-strip-nothing.sh b/tests/run-strip-nothing.sh
index 914fdfb..d03f734 100755
--- a/tests/run-strip-nothing.sh
+++ b/tests/run-strip-nothing.sh
@@ -22,6 +22,8 @@
tempfiles a.out strip.out debug.out
+# skip the case if no gcc deployed
+which gcc || exit 77
# Create no-debug a.out.
echo "int main() { return 1; }" | gcc -s -xc -
--
2.7.4

View File

@@ -0,0 +1,52 @@
From 03a343c6b1b72598fce654b8a638f106da44abfb Mon Sep 17 00:00:00 2001
From: OpenEmbedded <oe.patch@oe>
Date: Fri, 12 Apr 2019 08:05:50 +0000
Subject: [PATCH] On many architectures this test fails because binaries/libs
produced by binutils don't pass elflint. However elfutils shouldn't FTBFS
because of this.
So we run the tests on all archs to see what breaks, but if it breaks we ignore
the result (exitcode 77 means: this test was skipped).
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
---
tests/run-elflint-self.sh | 2 +-
tests/test-subr.sh | 15 +++++++++++++++
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/tests/run-elflint-self.sh b/tests/run-elflint-self.sh
index 58fa7d0..85d21a5 100755
--- a/tests/run-elflint-self.sh
+++ b/tests/run-elflint-self.sh
@@ -18,5 +18,5 @@
. $srcdir/test-subr.sh
-testrun_on_self ${abs_top_builddir}/src/elflint --quiet --gnu-ld
+testrun_on_self_skip ${abs_top_builddir}/src/elflint --quiet --gnu-ld
testrun_on_self_compressed ${abs_top_builddir}/src/elflint --quiet --gnu-ld
diff --git a/tests/test-subr.sh b/tests/test-subr.sh
index 09f428d..26f61f1 100644
--- a/tests/test-subr.sh
+++ b/tests/test-subr.sh
@@ -201,3 +201,18 @@ testrun_on_self_quiet()
# Only exit if something failed
if test $exit_status != 0; then exit $exit_status; fi
}
+
+# Same as testrun_on_self(), but skip on failure.
+testrun_on_self_skip()
+{
+ exit_status=0
+
+ for file in $self_test_files; do
+ testrun $* $file \
+ || { echo "*** failure in $* $file"; exit_status=77; }
+ done
+
+ # Only exit if something failed
+ if test $exit_status != 0; then exit $exit_status; fi
+}
+

View File

@@ -0,0 +1,6 @@
#!/bin/sh
#
#This script is used to run elfutils test suites
cd tests
make -k runtest-TESTS abs_srcdir=$PWD abs_builddir=$PWD bindir=$PWD/../src/ srcdir=$PWD top_srcdir=$PWD/../ abs_top_builddir=$PWD/../ elfutils_testrun=installed

View File

@@ -0,0 +1,28 @@
From 48e111a17e8d5f10690716a63c17670f1406b56c Mon Sep 17 00:00:00 2001
From: "Hongjun.Yang" <hongjun.yang@windriver.com>
Date: Wed, 28 Oct 2015 13:24:54 +0800
Subject: [PATCH] Add serial-tests support, ptest need it.
Add serial-tests support, ptest need it.
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index b4e012d..2eb0417 100644
--- a/configure.ac
+++ b/configure.ac
@@ -45,7 +45,7 @@ AC_COPYRIGHT([Copyright (C) 1996-2018 The elfutils developers.])
AC_PREREQ(2.63) dnl Minimum Autoconf version required.
dnl We use GNU make extensions; automake 1.10 defaults to -Wportability.
-AM_INIT_AUTOMAKE([gnits 1.11 -Wno-portability dist-bzip2 no-dist-gzip parallel-tests])
+AM_INIT_AUTOMAKE([gnits 1.11 -Wno-portability dist-bzip2 no-dist-gzip serial-tests])
AM_MAINTAINER_MODE
AM_SILENT_RULES([yes])