Message ID | 1346422229-61628-3-git-send-email-bjst@enea.com |
---|---|
State | New |
Headers | show |
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"
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 <bjst@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 > 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" >
Saul Wold wrote: > You new patches still need patch headers with Upstream-Status and > Signed-off-by tags. Ouch, sorry about that. I added Signed-off but forgot upstream. I'll be more careful next time. > 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? I chose IMAGE since that is how the -dbg and -dev package groups are enabled, and -ptest is modeled after them. Also we have the EXTRA_IMAGE_FEATURES setting that can be used to enable this temporarily while I don't know if we have anything similar for DISTRO_FEATURES?
On 08/31/2012 10:01 AM, Björn Stenberg wrote: > Saul Wold wrote: >> You new patches still need patch headers with Upstream-Status and >> Signed-off-by tags. > > Ouch, sorry about that. I added Signed-off but forgot upstream. I'll be more careful next time. > Just to be clear these need to be in your busybox patches not the commit message for the overall patch to OE-Core, I hope that makes sense. In these two files: meta/recipes-extended/bash/bash-4.2/build-tests.patch meta/recipes-extended/bash/bash-4.2/test-output.patch >> 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? > > I chose IMAGE since that is how the -dbg and -dev package groups are enabled, and -ptest is modeled after them. Also we have the EXTRA_IMAGE_FEATURES setting that can be used to enable this temporarily while I don't know if we have anything similar for DISTRO_FEATURES? > That makes sense also, I was thinking along the same lines, just wanted to get your reasoning captured. Thanks Sau!
> 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? this is IMAGE_FEATURE that can then be recommended/mandated in a distro policy is upto distros
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 <bjst@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