From: phillip.lord@russet.org.uk (Phillip Lord)
To: Michael Albinus <michael.albinus@gmx.de>
Cc: emacs-devel@gnu.org
Subject: Re: [Emacs-diffs] emacs-25 f5c762c: Additional changes for "make check-expensive"
Date: Thu, 14 Jan 2016 23:04:39 +0000 [thread overview]
Message-ID: <871t9jyd88.fsf@russet.org.uk> (raw)
In-Reply-To: <87lh7uwrg1.fsf@gmx.de> (Michael Albinus's message of "Tue, 12 Jan 2016 20:03:42 +0100")
Michael Albinus <michael.albinus@gmx.de> writes:
> phillip.lord@russet.org.uk (Phillip Lord) writes:
>
>> Michael
>
> Hi Philip,
>
>> I think that there is a problem with this commit, in that the default
>> selector is only used for "make check". By default "make check-maybe"
>> runs all tests (including the expensive ones). So, you have to do
>>
>> make check-maybe SELECTOR="(quote (not (tag :expensive-test)))"
>>
>> I think it makes more sense for check-maybe to skip expensive tests,
>> unless told otherwise, as "make check-maybe" is a good candidate for use
>> pre-commit.
>
> I see. Before touching the Makefile, we shall agree how all the targets
> shall behave. I would say, that "check" and "check-maybe" shall skip the
> expensive tests. "check-expensive", "<foo>", and "<foo>.log" shall run
> all tests.
Sorry for slow reply!
I would say that, yes, both check and check-maybe should skip expensive
tests by default. I think this actually contradicts the GNU coding
standards, but possibly it's these that need updating for very slow
tests.
I'd also agree about <foo>, <foo>.log (on master <foo>.log is
lisp/<foo.log>, and lisp/<foo> also exists).
However, I also think that these should also respond to setting
SELECTOR on the command line.
The problem with this patch:
+SELECTOR_DEFAULT = (quote (not (tag :expensive-test)))
+SELECTOR_EXPENSIVE = nil
+SELECTOR =
+check-maybe:
+ @${MAKE} check-doit SELECTOR="${SELECTOR_DEFAULT}"
+
is that "make check-maybe SELECTOR=nil" doesn't actually run the
expensive tests as it should. That was the reason for my original,
rather more complicated, suggestion.
I've attached a complete patch below (actually tested this time!), which
I think works. Would this make sense to you?
Phil
diff --git a/test/automated/Makefile.in b/test/automated/Makefile.in
index 152e601..2534a65 100644
--- a/test/automated/Makefile.in
+++ b/test/automated/Makefile.in
@@ -89,7 +89,13 @@ WRITE_LOG = > $@ 2>&1 || { stat=ERROR; cat $@; }; echo $$stat: $@
## Beware: it approximates 'no-byte-compile', so watch out for false-positives!
SELECTOR_DEFAULT = (quote (not (tag :expensive-test)))
SELECTOR_EXPENSIVE = nil
-SELECTOR =
+ifndef SELECTOR
+SELECTOR_ACTUAL=$(SELECTOR_DEFAULT)
+else
+SELECTOR_ACTUAL=$(SELECTOR)
+endif
+
+
%.log: ${srcdir}/%.el
@if grep '^;.*no-byte-compile: t' $< > /dev/null; then \
loadfile=$<; \
@@ -100,7 +106,7 @@ SELECTOR =
echo Testing $$loadfile; \
stat=OK ; \
$(emacs) -l ert -l $$loadfile \
- --eval "(ert-run-tests-batch-and-exit ${SELECTOR})" ${WRITE_LOG}
+ --eval "(ert-run-tests-batch-and-exit ${SELECTOR_ACTUAL})" ${WRITE_LOG}
ELFILES = $(sort $(wildcard ${srcdir}/*.el))
LOGFILES = $(patsubst %.el,%.log,$(notdir ${ELFILES}))
@@ -123,7 +129,7 @@ $(foreach test,${TESTS},$(eval $(call test_template,${test})))
## Rerun all default tests.
check: mostlyclean
- @${MAKE} check-doit SELECTOR="${SELECTOR_DEFAULT}"
+ @${MAKE} check-doit SELECTOR="${SELECTOR_ACTUAL}"
## Rerun all default and expensive tests.
.PHONY: check-expensive
@@ -133,7 +139,7 @@ check-expensive: mostlyclean
## Only re-run default tests whose .log is older than the test.
.PHONY: check-maybe
check-maybe:
- @${MAKE} check-doit SELECTOR="${SELECTOR_DEFAULT}"
+ @${MAKE} check-doit SELECTOR="${SELECTOR_ACTUAL}"
## Run the tests.
.PHONY: check-doit
next prev parent reply other threads:[~2016-01-14 23:04 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20160105084751.30334.99051@vcs.savannah.gnu.org>
[not found] ` <E1aGNHT-0007u5-Su@vcs.savannah.gnu.org>
2016-01-12 17:43 ` [Emacs-diffs] emacs-25 f5c762c: Additional changes for "make check-expensive" Phillip Lord
2016-01-12 17:49 ` John Wiegley
2016-01-12 18:55 ` Michael Albinus
2016-01-14 22:15 ` Phillip Lord
2016-01-12 19:03 ` Michael Albinus
2016-01-14 8:13 ` Michael Albinus
2016-01-14 23:04 ` Phillip Lord [this message]
2016-01-15 8:45 ` Michael Albinus
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=871t9jyd88.fsf@russet.org.uk \
--to=phillip.lord@russet.org.uk \
--cc=emacs-devel@gnu.org \
--cc=michael.albinus@gmx.de \
/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.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
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.