On 08/31/2012 07:10 AM, Björn Stenberg wrote:
Patch Makefile.in to allow test programs be built on host and ran on
target.
Patch tests/run-all to output PASS/FAIL for each testcase.
Patch recipe to contitionally build and install ptest.
Signed-off-by: Björn Stenberg <[email protected]>
---
.../bash/bash-4.2/build-tests.patch | 34 ++++++++++++++++++++
meta/recipes-extended/bash/bash-4.2/run-ptest | 2 +
.../bash/bash-4.2/test-output.patch | 19 +++++++++++
meta/recipes-extended/bash/bash.inc | 23 +++++++++++++
meta/recipes-extended/bash/bash_4.2.bb | 5 ++-
5 files changed, 82 insertions(+), 1 deletions(-)
create mode 100644 meta/recipes-extended/bash/bash-4.2/build-tests.patch
create mode 100644 meta/recipes-extended/bash/bash-4.2/run-ptest
create mode 100644 meta/recipes-extended/bash/bash-4.2/test-output.patch
You new patches still need patch headers with Upstream-Status and
Signed-off-by tags. Please review
http://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
diff --git a/meta/recipes-extended/bash/bash-4.2/build-tests.patch
b/meta/recipes-extended/bash/bash-4.2/build-tests.patch
new file mode 100644
index 0000000..17276c7
--- /dev/null
+++ b/meta/recipes-extended/bash/bash-4.2/build-tests.patch
@@ -0,0 +1,34 @@
+diff -uNr a/Makefile.in b/Makefile.in
+--- a/Makefile.in 2012-08-31 13:54:15.259491840 +0200
++++ b/Makefile.in 2012-08-31 14:54:46.508053649 +0200
+@@ -827,20 +827,26 @@
+ fi
+
+ recho$(EXEEXT): $(SUPPORT_SRC)recho.c
+- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)recho.c
${LIBS_FOR_BUILD}
++ @$(CC) $(CCFLAGS) -o $@ $<
+
+ zecho$(EXEEXT): $(SUPPORT_SRC)zecho.c
+- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)zecho.c
${LIBS_FOR_BUILD}
++ @$(CC) $(CCFLAGS) -o $@ $<
+
+ printenv$(EXEEXT): $(SUPPORT_SRC)printenv.c
+- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)printenv.c
${LIBS_FOR_BUILD}
++ @$(CC) $(CCFLAGS) -o $@ $<
+
+ xcase$(EXEEXT): $(SUPPORT_SRC)xcase.c
+- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)xcase.c
${LIBS_FOR_BUILD}
++ @$(CC) $(CCFLAGS) -o $@ $<
+
+-test tests check: force $(Program) $(TESTS_SUPPORT)
++test tests check:
++ @$(MAKE) buildtest
++ @$(MAKE) runtest
++
++buildtest: force $(Program) $(TESTS_SUPPORT)
+ @-test -d tests || mkdir tests
+ @cp $(TESTS_SUPPORT) tests
++
++runtest:
+ @( cd $(srcdir)/tests && \
+ PATH=$(BUILD_DIR)/tests:$$PATH THIS_SH=$(THIS_SH) $(SHELL)
${TESTSCRIPT} )
diff --git a/meta/recipes-extended/bash/bash-4.2/run-ptest
b/meta/recipes-extended/bash/bash-4.2/run-ptest
new file mode 100644
index 0000000..8dd3b99
--- /dev/null
+++ b/meta/recipes-extended/bash/bash-4.2/run-ptest
@@ -0,0 +1,2 @@
+#!/bin/sh
+make -k THIS_SH=/bin/bash BUILD_DIR=. runtest
diff --git a/meta/recipes-extended/bash/bash-4.2/test-output.patch
b/meta/recipes-extended/bash/bash-4.2/test-output.patch
new file mode 100644
index 0000000..065a85c
--- /dev/null
+++ b/meta/recipes-extended/bash/bash-4.2/test-output.patch
@@ -0,0 +1,19 @@
+diff -uNr a/tests/run-all b/tests/run-all
+--- a/tests/run-all 2012-06-14 10:15:15.007467700 +0200
++++ b/tests/run-all 2012-06-14 10:19:26.464678067 +0200
+@@ -22,6 +22,14 @@
+ case $x in
+ $0|run-minimal|run-gprof) ;;
+ *.orig|*~) ;;
+- *) echo $x ; sh $x ;;
++ *) echo $x
++ output=`sh $x`
++ if [ -n "$output" ]; then
++ echo "$output"
++ echo "FAIL: $x"
++ else
++ echo "PASS: $x"
++ fi
++ ;;
+ esac
+ done
diff --git a/meta/recipes-extended/bash/bash.inc
b/meta/recipes-extended/bash/bash.inc
index 3684191..7f7a965 100644
--- a/meta/recipes-extended/bash/bash.inc
+++ b/meta/recipes-extended/bash/bash.inc
@@ -21,18 +21,41 @@ ALTERNATIVE_PRIORITY = "100"
export AUTOHEADER = "true"
+RDEPENDS_${PN}-ptest += "make"
+FILES_${PN}-dbg += "${PTEST_PATH}/.debug \
+ ${PTEST_PATH}/tests/.debug"
+
+PTEST_ENABLED = "${@base_contains('IMAGE_FEATURES', 'ptest-pkgs', '1', '0',
d)}"
+
Should this be a DISTRO or IMAGE FEATURE? I can see potential arguments
for both sides, what was your thinking on choosing IMAGE over DISTRO?
Sau!
do_configure_prepend () {
if [ ! -e acinclude.m4 ]; then
cat aclocal.m4 > acinclude.m4
fi
}
+do_compile_append () {
+ if [ ${PTEST_ENABLED} = "1" ] ; then
+ oe_runmake buildtest
+ fi
+}
+
do_install_append () {
# Move /usr/bin/bash to /bin/bash, if need
if [ "${base_bindir}" != "${bindir}" ]; then
mkdir -p ${D}${base_bindir}
mv ${D}${bindir}/bash ${D}${base_bindir}
fi
+
+ if [ "${PN}" = "${BPN}" -a ${PTEST_ENABLED} = "1" ]; then
+ mkdir -p ${D}${PTEST_PATH}
+ install -m 0755 ${WORKDIR}/run-ptest ${D}${PTEST_PATH}
+ install -m 0755 ${B}/Makefile ${D}${PTEST_PATH}
+ install -m 0755 ${B}/recho ${D}${PTEST_PATH}
+ install -m 0755 ${B}/zecho ${D}${PTEST_PATH}
+ install -m 0755 ${B}/printenv ${D}${PTEST_PATH}
+ install -m 0755 ${B}/xcase ${D}${PTEST_PATH}
+ cp -r ${B}/tests ${D}${PTEST_PATH}
+ fi
}
pkg_postinst_${PN} () {
diff --git a/meta/recipes-extended/bash/bash_4.2.bb
b/meta/recipes-extended/bash/bash_4.2.bb
index 50f2ff6..5e9b50e 100644
--- a/meta/recipes-extended/bash/bash_4.2.bb
+++ b/meta/recipes-extended/bash/bash_4.2.bb
@@ -1,6 +1,6 @@
require bash.inc
-PR = "r4"
+PR = "r5"
SRC_URI = "${GNU_MIRROR}/bash/${BPN}-${PV}.tar.gz;name=tarball \
${GNU_MIRROR}/bash/bash-4.2-patches/bash42-001;apply=yes;striplevel=0;name=patch001
\
@@ -14,6 +14,9 @@ SRC_URI =
"${GNU_MIRROR}/bash/${BPN}-${PV}.tar.gz;name=tarball \
${GNU_MIRROR}/bash/bash-4.2-patches/bash42-009;apply=yes;striplevel=0;name=patch009
\
${GNU_MIRROR}/bash/bash-4.2-patches/bash42-010;apply=yes;striplevel=0;name=patch010
\
file://execute_cmd.patch;striplevel=0 \
+ file://build-tests.patch \
+ file://test-output.patch \
+ file://run-ptest \
"
SRC_URI[tarball.md5sum] = "3fb927c7c33022f1c327f14a81c0d4b0"
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core