All of lore.kernel.org
 help / color / mirror / Atom feed
From: Saul Wold <sgw@linux.intel.com>
To: Chong Lu <Chong.Lu@windriver.com>,
	 openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 2/2] quilt: enable ptest support
Date: Fri, 27 Dec 2013 09:59:07 -0800	[thread overview]
Message-ID: <52BDBFEB.8090109@linux.intel.com> (raw)
In-Reply-To: <c0abd31a05e879ed231974b0412831cdcb2949f1.1388139291.git.Chong.Lu@windriver.com>

On 12/27/2013 02:17 AM, Chong Lu wrote:
> Install quilt test suite and run it as ptest.
> Make all ptest pass.
>
> Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
> ---
>   meta/recipes-devtools/quilt/quilt-0.61.inc  |   2 +
>   meta/recipes-devtools/quilt/quilt-ptest.inc |  13 +++
>   meta/recipes-devtools/quilt/quilt/Makefile  | 153 ++++++++++++++++++++++++++++
>   meta/recipes-devtools/quilt/quilt/run-ptest |   3 +
>   4 files changed, 171 insertions(+)
>   create mode 100644 meta/recipes-devtools/quilt/quilt-ptest.inc
>   create mode 100644 meta/recipes-devtools/quilt/quilt/Makefile
>   create mode 100755 meta/recipes-devtools/quilt/quilt/run-ptest
>
> diff --git a/meta/recipes-devtools/quilt/quilt-0.61.inc b/meta/recipes-devtools/quilt/quilt-0.61.inc
> index c4a929d..df31663 100644
> --- a/meta/recipes-devtools/quilt/quilt-0.61.inc
> +++ b/meta/recipes-devtools/quilt/quilt-0.61.inc
> @@ -34,3 +34,5 @@ do_install () {
>   	# cleanup unpackaged files
>   	rm -rf ${D}/${datadir}/emacs
>   }
> +
> +require quilt-ptest.inc

Couldn't this just go in the quilt_0.61.bb since it's not needed for the 
-native version?

> diff --git a/meta/recipes-devtools/quilt/quilt-ptest.inc b/meta/recipes-devtools/quilt/quilt-ptest.inc
> new file mode 100644
> index 0000000..026bff5
> --- /dev/null
> +++ b/meta/recipes-devtools/quilt/quilt-ptest.inc
> @@ -0,0 +1,13 @@
> +inherit ptest
> +
> +SRC_URI += "file://run-ptest \
> +            file://Makefile \
> +"
> +
> +do_install_ptest() {
> +	tar -cf - bin/ compat/ quilt/ | ( cd ${D}${PTEST_PATH} && tar -xf - )
Do you really need everything in those directories? Do you need the *.in 
source files?

> +	tar -cf - test/ --exclude delete.test --exclude mail.test --exclude patch-wrapper.test --exclude setup.test| ( cd ${D}${PTEST_PATH} && tar -xf - )
Why exclude some of these tests?

> +	cp ${WORKDIR}/Makefile ${D}${PTEST_PATH}
> +}
> +
> +RDEPENDS_${PN} += "make gawk diffutils findutils ed perl perl-module-filehandle perl-module-getopt-std perl-module-posix"
I think this should be RDEPENDS_${PN}-ptest

> diff --git a/meta/recipes-devtools/quilt/quilt/Makefile b/meta/recipes-devtools/quilt/quilt/Makefile
> new file mode 100644

I also think that you can cut down this makefile to just the check bits 
and remove alot of the additional unused setting up variable.

Sau!

> index 0000000..737c9b8
> --- /dev/null
> +++ b/meta/recipes-devtools/quilt/quilt/Makefile
> @@ -0,0 +1,153 @@
> +PACKAGE :=	quilt
> +VERSION :=	0.61
> +RELEASE :=	1
> +PACKAGE_TARNAME := quilt
> +PACKAGE_BUGREPORT := quilt-dev@nongnu.org
> +
> +prefix :=	/usr
> +exec_prefix :=	/usr
> +bindir :=	/usr/bin
> +datarootdir :=	${prefix}/share
> +datadir :=	/usr/share
> +docdir :=	${datarootdir}/doc/${PACKAGE_TARNAME}
> +mandir :=	/usr/share/man
> +localedir :=	$(datadir)/locale
> +emacsdir :=	$(datadir)/emacs/site-lisp
> +etcdir :=	/etc
> +
> +INSTALL :=	/usr/bin/install -c
> +POD2MAN :=	/usr/bin/pod2man
> +CP :=		/bin/cp
> +DATE :=		/bin/date
> +PERL :=		/usr/bin/perl
> +BASH :=		/bin/bash
> +SHELL:=		/bin/bash # It does not work if dash is used as a shell, for example
> +GREP :=		/bin/grep
> +TAIL :=		/usr/bin/tail
> +TR :=		/usr/bin/tr
> +SED :=		sed
> +AWK :=		/usr/bin/gawk
> +FIND :=		/usr/bin/find
> +XARGS :=	/usr/bin/xargs
> +DIFF :=		/usr/bin/diff
> +PATCH :=	/usr/bin/patch
> +MKTEMP :=	/bin/mktemp
> +DIFFSTAT :=	/usr/bin/diffstat
> +
> +USE_NLS :=	yes
> +STAT_HARDLINK := -c '%h'
> +
> +#-----------------------------------------------------------------------
> +DIRT +=		$(shell $(FIND) . -name '*~')
> +DIRT +=		$(shell $(FIND) . -name '.\#*')
> +
> +BIN_IN :=	quilt guards
> +BIN_SRC :=	$(BIN_IN:%=%.in)
> +BIN :=		$(BIN_IN)
> +SRC +=		$(BIN_SRC:%=bin/%) bin/patch-wrapper.in
> +DIRT +=		$(BIN_IN:%=bin/%) bin/patch-wrapper
> +
> +QUILT_IN :=	$(patsubst quilt/%.in,%,$(wildcard quilt/*.in))
> +QUILT_SRC :=	$(QUILT_IN:%=%.in)
> +QUILT :=	$(QUILT_IN)
> +SRC +=		$(QUILT_SRC:%=quilt/%)
> +DIRT +=		$(QUILT_IN:%=quilt/%)
> +
> +SCRIPTS_IN :=	patchfns inspect dependency-graph edmail	\
> +		remove-trailing-ws backup-files
> +
> +SCRIPTS_SRC :=	$(SCRIPTS_IN:%=%.in)
> +SCRIPTS :=	$(SCRIPTS_IN)
> +SRC +=		$(SCRIPTS_SRC:%=quilt/scripts/%)
> +SRC +=		quilt/scripts/utilfns
> +DIRT +=		$(SCRIPTS_IN:%=quilt/scripts/%)
> +
> +COMPAT :=	$(COMPAT_PROGRAMS:%=compat/%) $(COMPAT_SYMLINKS:%=compat/%)
> +SRC +=		$(wildcard compat/*.in) $(wildcard compat/*.sh)
> +DIRT +=		$(patsubst %.in,%,$(wildcard compat/*.in)) $(COMPAT_SYMLINKS:%=compat/%)
> +
> +LIB_SRC :=	quilt.el
> +SRC +=		$(LIB_SRC:%=lib/%)
> +
> +ifneq ($(POD2MAN),)
> +MAN1 +=		bin/guards.1
> +DIRT +=		bin/guards.1
> +endif
> +
> +LINGUAS :=	fr de ja ru
> +PO :=		quilt.pot $(LINGUAS:%=%.po)
> +SRC +=		$(PO:%=po/%)
> +DIRT +=		po/*.mo po/*~
> +
> +SRC +=		$(wildcard test/*.test) test/run test/test.quiltrc
> +SRC +=		changes2changelog
> +
> +NON_EXEC_IN :=	doc/quilt.1 doc/README quilt/scripts/patchfns quilt/scripts/utilfns
> +
> +TESTS :=	test/*.test
> +DIRT +=		test/.depend $(wildcard test/.*.ok)
> +
> +# Settings for running the uninstalled version of quilt in the source tree:
> +PATH :=		$(CURDIR)/bin:$(CURDIR)/compat:$(PATH)
> +QUILT_DIR :=	$(CURDIR)/quilt
> +QUILTRC :=	$(CURDIR)/test/test.quiltrc
> +export QUILT_DIR QUILTRC
> +
> +#-----------------------------------------------------------------------
> +scripts : $(BIN:%=bin/%) $(QUILT:%=quilt/%) 				\
> +	  $(SCRIPTS:%=quilt/scripts/%) 					\
> +	  $(if $(PATCH_WRAPPER),bin/patch-wrapper)
> +
> +bin/guards.1 : bin/guards
> +	$(POD2MAN) $< > $@
> +
> +compat_leftover := $(filter-out $(COMPAT),$(shell $(FIND) compat -type f -perm -0100))
> +
> +.PHONY :: compat
> +compat :: $(COMPAT)
> +	$(if $(compat_leftover),rm -f $(compat_leftover))
> +
> +
> +check-% : test/.%.ok
> +	@/bin/true
> +
> +# Only include the test suite dependencies when required
> +ifneq ($(findstring test,$(MAKECMDGOALS))$(findstring check,$(MAKECMDGOALS)),)
> +-include test/.depend
> +endif # (test|check)
> +
> +# Include a run-time generated list of dependencies for each test case
> +test/.depend : $(TESTS)
> +	@(  printf "%s : bin/quilt quilt/scripts/patchfns quilt/scripts/utilfns quilt/scripts/backup-files $(COMPAT)\n" $(TESTS); \
> +	    $(AWK) 'sub(/.*\$$ *quilt /, "")				\
> +			{ print FILENAME, ":", "quilt/"$$1}' $(TESTS); \
> +	    $(AWK) 'sub(/.*\<quilt_command /, "") && ($$1 !~ /[^a-z]/)	\
> +			{ print FILENAME, ":", "quilt/"$$1 }' quilt/*.in; \
> +	    $(AWK) 'sub(/.*\$$ *%{QUILT_DIR}\/scripts\//, "")		\
> +			{ print FILENAME, ":", "quilt/scripts/"$$1 }' $(TESTS); \
> +	) | sort -u | $(SED) -re 's:^test/(.*)\.test:test/.\1.ok:' \
> +	    -e 's:quilt/graph:quilt/graph quilt/scripts/dependency-graph:' \
> +	    -e 's:quilt/mail:quilt/mail quilt/scripts/edmail:' \
> +	    -e 's:quilt/refresh:quilt/refresh quilt/scripts/remove-trailing-ws:' \
> +	    -e 's:quilt/setup:quilt/setup quilt/scripts/inspect:' \
> +	  > $@
> +
> +ifneq ($(shell . $(QUILTRC) ;  echo $$QUILT_PATCHES_PREFIX),)
> +CHECK_ENV := P=patches/; _P=../patches/; export P _P
> +endif
> +
> +# Each tests dependencies are stored in test/.depend
> +ifneq ($(findstring check-,$(MAKECMDGOALS)),)
> +test/.%.ok : test/%.test FORCE
> +else
> +test/.%.ok : test/%.test
> +endif
> +	@LANG=C; LC_ALL=C;						\
> +	export LANG LC_ALL;						\
> +	unset POSIXLY_CORRECT;						\
> +	$(CHECK_ENV);							\
> +	cd $(@D);							\
> +	./run -q $(<F)
> +	@touch $@
> +
> +FORCE:
> diff --git a/meta/recipes-devtools/quilt/quilt/run-ptest b/meta/recipes-devtools/quilt/quilt/run-ptest
> new file mode 100755
> index 0000000..5557c0f
> --- /dev/null
> +++ b/meta/recipes-devtools/quilt/quilt/run-ptest
> @@ -0,0 +1,3 @@
> +#!/bin/sh
> +
> +for i in `ls test/*.test |awk -F. '{print $1}' |awk -F/ '{print $2}'`; do make check-$i; if [ -f test/.$i.ok ]; then echo PASS: $i.test; else echo FAIL: $i.test; fi; done
>


      reply	other threads:[~2013-12-27 17:59 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-27 10:17 [PATCH 0/2] quilt: upgrade to 0.61 and enable ptest support Chong Lu
2013-12-27 10:17 ` [PATCH 1/2] quilt: upgrade to 0.61 Chong Lu
2013-12-27 10:17 ` [PATCH 2/2] quilt: enable ptest support Chong Lu
2013-12-27 17:59   ` Saul Wold [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52BDBFEB.8090109@linux.intel.com \
    --to=sgw@linux.intel.com \
    --cc=Chong.Lu@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.