Subject: bug#31744: 26.1; Improvements to make tags and make -C test

From: Eli Zaretskii <[email-masked]>
Date: Fri, 08 Jun 2018 18:38:53 +0300

> From: Noam Postavsky <[email-masked]>
> Date: Wed, 06 Jun 2018 21:49:47 -0400
> 
> Some quality-of-life improvements in make targets.  I hope these can go
> to emacs-26; although the test/Makefile.in changes aren't bug fixes,
> that file isn't distributed in the tarball.

Thanks for your work on this.  A few comments below:

> * src/Makefile.in: Create TAGS files in ${srcdir}, not build dir.

I'm not sure I agree with this.  Other projects I looked at produce
TAGS in the build directory (but reference source files in srcdir, of
course).  Why do you think TAGS should go to the source directory?

> +ifeq ($(TEST_INTERACTIVE), yes)
> +	HOME=/nonexistent $(emacs) \
> +	  -l ert ${ert_opts} \
> +	  $(patsubst %,-l %,$(if $(findstring $(TEST_LOAD_EL),yes),$ELFILES,$(ELFILES:.el=)))  \
> +	  $(TEST_RUN_ERT)
> +else
>  	-@${MAKE} -k  ${LOGFILES}
> -	@$(emacs) -l ert -f ert-summarize-tests-batch-and-exit ${LOGFILES}
> +	@$(emacs) --batch -l ert -f ert-summarize-tests-batch-and-exit ${LOGFILES}
> +endif

Not sure I understand the HOME trick: why not use -Q?

> Subject: [PATCH 4/4] ; Reduce amount of quoting for SELECTOR arg in 'make -C
>  test'
> 
> Before:
> 
>     make -C test SELECTOR='\"foo\"'
>     make -C test SELECTOR='(quote (tag :some-tag))'
> 
> After:
> 
>     make -C test SELECTOR='"foo"'
>     make -C test SELECTOR='(tag :some-tag)'
> 
> * test/Makefile.in: Use single quotes around the command line call to
> ert, this means the user doesn't have to backslash escape double
> quotes when writing lisp strings for the selector.  Also wrap the
> SELECTOR value in (quote ...) so the user won't have to type it
> in (and not get tempted to use the '... form which would now fail to
> work due to using single quotes around the whole shell arg).

This should be explained in some README in the test suite, I think.

I have no objections to making these changes on the emacs-26 branch.