From: Glenn Morris Date: Tue, 5 Nov 2013 02:58:40 +0000 (-0500) Subject: Get rid of --chdir usage in test/automated X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~973 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2d748773b27daf6a8462705f382aa48942e3c883;p=emacs.git Get rid of --chdir usage in test/automated * test/automated/Makefile.in (EMACSOPT): Move -L here. (emacs): Set EMACS_TEST_DIRECTORY in the environment. (setwins): Don't assume called from srcdir. Remove legacy stuff. (.el.elc): No more need to pass -L here. (compile-main): Get rid of sub-shell and cd. (compile-clean, check): Get rid of cd. --- diff --git a/test/ChangeLog b/test/ChangeLog index 43ba409ae0e..53e1af20567 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,5 +1,13 @@ 2013-11-05 Glenn Morris + Get rid of --chdir usage. + * automated/Makefile.in (EMACSOPT): Move -L here. + (emacs): Set EMACS_TEST_DIRECTORY in the environment. + (setwins): Don't assume called from srcdir. Remove legacy stuff. + (.el.elc): No more need to pass -L here. + (compile-main): Get rid of sub-shell and cd. + (compile-clean, check): Get rid of cd. + Make it possible to run tests with a different working directory. * automated/flymake-tests.el (flymake-tests-data-directory): New. (flymake-tests--current-face): Use flymake-tests-data-directory. diff --git a/test/automated/Makefile.in b/test/automated/Makefile.in index e03ebbbf82d..63cffd9f828 100644 --- a/test/automated/Makefile.in +++ b/test/automated/Makefile.in @@ -28,19 +28,20 @@ VPATH = $(srcdir) EMACS = ../../src/emacs # Command line flags for Emacs. -EMACSOPT = -batch --no-site-file --no-site-lisp +EMACSOPT = -batch --no-site-file --no-site-lisp -L :$(srcdir) # Extra flags to pass to the byte compiler. BYTE_COMPILE_EXTRA_FLAGS = # The actual Emacs command run in the targets below. # Prevent any setting of EMACSLOADPATH in user environment causing problems. -emacs = unset EMACSLOADPATH; LC_ALL=C "$(EMACS)" $(EMACSOPT) +emacs = unset EMACSLOADPATH; \ + LC_ALL=C EMACS_TEST_DIRECTORY=$(srcdir) "$(EMACS)" $(EMACSOPT) # Common command to find subdirectories -setwins=subdirs=`find . -type d -print`; \ +setwins=subdirs=`find $(srcdir) -type d -print`; \ for file in $$subdirs; do \ - case $$file in */.* | */.*/* | */=* | ./data* ) ;; \ + case $$file in */data* | */flymake* ) ;; \ *) wins="$$wins$${wins:+ }$$file" ;; \ esac; \ done @@ -55,7 +56,7 @@ all: check .el.elc: @echo Compiling $< - @$(emacs) -L :$(srcdir) $(BYTE_COMPILE_EXTRA_FLAGS) -f batch-byte-compile $< + @$(emacs) $(BYTE_COMPILE_EXTRA_FLAGS) -f batch-byte-compile $< .PHONY: compile-targets compile-main compile-clean @@ -66,20 +67,20 @@ compile-targets: $(TARGETS) # Compile all the Elisp files that need it. Beware: it approximates # `no-byte-compile', so watch out for false-positives! compile-main: compile-clean - @(cd $(srcdir) && $(setwins); \ + @$(setwins); \ els=`echo "$$wins " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.el |g'`; \ for el in $$els; do \ test -f $$el || continue; \ test ! -f $${el}c && GREP_OPTIONS= grep '^;.*no-byte-compile: t' $$el > /dev/null && continue; \ echo "$${el}c"; \ - done | xargs echo) | \ + done | xargs echo | \ while read chunk; do \ $(MAKE) $(MFLAGS) compile-targets EMACS="$(EMACS)" TARGETS="$$chunk"; \ done # Erase left-over .elc files that do not have a corresponding .el file. compile-clean: - @cd $(srcdir) && $(setwins); \ + @$(setwins); \ elcs=`echo "$$wins " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.elc |g'`; \ for el in $$(echo $$elcs | sed -e 's/\.elc/\.el/g'); do \ if test -f "$$el" -o \! -f "$${el}c"; then :; else \ @@ -101,7 +102,7 @@ maintainer-clean: distclean bootstrap-clean check: compile-main - @thisdir=`pwd`; cd $(srcdir) && $(setwins); \ + @$(setwins); \ pattern=`echo "$$wins " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.el |g'`; \ for el in $$pattern; do \ test -f $$el || continue; \ @@ -109,7 +110,6 @@ check: compile-main els="$$els $$el"; \ done; \ echo Testing $$els; \ - cd "$$thisdir"; \ - $(emacs) --chdir $(srcdir) -L :. $$args -f ert-run-tests-batch-and-exit + $(emacs) $$args -f ert-run-tests-batch-and-exit # Makefile ends here.