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 <b...@enea.com>
---
 .../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

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)}"
+
 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"
-- 
1.7.5.4


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

Reply via email to