Pushed as bfc0f610ba. Philipp Stephani schrieb am Sa., 22. Apr. 2017 um 16:58 Uhr: > * test/Makefile.in (ELFILES): Exclude module test if modules aren't > configured. > (EMACS_TEST_DIRECTORY): Expand test directory so that it's set > correctly even if Emacs changes the current directory. > ($(srcdir)/src/emacs-module-tests.log) > ($(test_module)): Proper dependency tracking for test module. > > * test/data/emacs-module/Makefile (ROOT): Adapt to new location. > Remove 'check' target and EMACS variable, which are no longer > necessary. > (SO): Change to include period. > > * test/src/emacs-module-tests.el (mod-test): Use EMACS_TEST_DIRECTORY > environment variable to reliably find test data. > > * configure.ac (HAVE_MODULES, MODULES_SUFFIX): Add necessary > substitutions. > --- > configure.ac | 2 ++ > test/Makefile.in | 22 > ++++++++++++++++++++-- > .../mod-test => test/data/emacs-module}/Makefile | 16 ++++++---------- > .../mod-test => test/data/emacs-module}/mod-test.c | 0 > .../test.el => test/src/emacs-module-tests.el | 6 +++--- > 5 files changed, 31 insertions(+), 15 deletions(-) > rename {modules/mod-test => test/data/emacs-module}/Makefile (81%) > rename {modules/mod-test => test/data/emacs-module}/mod-test.c (100%) > rename modules/mod-test/test.el => test/src/emacs-module-tests.el (97%) > > diff --git a/configure.ac b/configure.ac > index bd8f7650cc..f3c53d7a19 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -3476,6 +3476,8 @@ AC_DEFUN > fi > AC_SUBST(MODULES_OBJ) > AC_SUBST(LIBMODULES) > +AC_SUBST(HAVE_MODULES) > +AC_SUBST(MODULES_SUFFIX) > > ### Use -lpng if available, unless '--with-png=no'. > HAVE_PNG=no > diff --git a/test/Makefile.in b/test/Makefile.in > index a1b772de21..03ae32e3a6 100644 > --- a/test/Makefile.in > +++ b/test/Makefile.in > @@ -63,7 +63,8 @@ TEST_LOCALE = > > # The actual Emacs command run in the targets below. > # Prevent any setting of EMACSLOADPATH in user environment causing > problems. > -emacs = EMACSLOADPATH= LC_ALL=$(TEST_LOCALE) > EMACS_TEST_DIRECTORY=$(srcdir) \ > +emacs = EMACSLOADPATH= LC_ALL=$(TEST_LOCALE) \ > + EMACS_TEST_DIRECTORY=$(abspath $(srcdir)) \ > $(GDB) "$(EMACS)" $(EMACSOPT) > > .PHONY: all check > @@ -124,8 +125,16 @@ SELECTOR_ACTUAL= > $(emacs) -l ert -l $$loadfile \ > --eval "(ert-run-tests-batch-and-exit ${SELECTOR_ACTUAL})" > ${WRITE_LOG} > > +ifeq (@HAVE_MODULES@, yes) > +maybe_exclude_module_tests := > +else > +maybe_exclude_module_tests := -name emacs-module-tests.el -prune -o > +endif > + > ELFILES := $(shell find ${srcdir} -path "${srcdir}/manual" -prune -o \ > - -name "*resources" -prune -o -name "*.el" -print) > + -name "*resources" -prune -o \ > + ${maybe_exclude_module_tests} \ > + -name "*.el" -print) > ## .log files may be in a different directory for out of source builds > LOGFILES := $(patsubst %.el,%.log, \ > $(patsubst $(srcdir)/%,%,$(ELFILES))) > @@ -159,6 +168,15 @@ define test_template > > $(foreach test,${TESTS},$(eval $(call test_template,${test}))) > > +ifeq (@HAVE_MODULES@, yes) > +test_module_dir := $(srcdir)/data/emacs-module > +test_module_name := mod-test@MODULES_SUFFIX@ > +test_module := $(test_module_dir)/$(test_module_name) > +$(srcdir)/src/emacs-module-tests.log: $(test_module) > +$(test_module): $(srcdir)/../src/emacs-module.[ch] > + $(MAKE) -C $(test_module_dir) $(test_module_name) > SO=@MODULES_SUFFIX@ > +endif > + > ## Check that there is no 'automated' subdirectory, which would > ## indicate an incomplete merge from an older version of Emacs where > ## the tests were arranged differently. > diff --git a/modules/mod-test/Makefile b/test/data/emacs-module/Makefile > similarity index 81% > rename from modules/mod-test/Makefile > rename to test/data/emacs-module/Makefile > index 27ae2ae3c2..db5e1b6808 100644 > --- a/modules/mod-test/Makefile > +++ b/test/data/emacs-module/Makefile > @@ -17,29 +17,25 @@ > # You should have received a copy of the GNU General Public License > # along with GNU Emacs. If not, see . > > -ROOT = ../.. > -EMACS = $(ROOT)/src/emacs > +ROOT = ../../.. > > CC = gcc > LD = gcc > LDFLAGS = > > -# On MS-Windows, say "make SO=dll" to build the module > -SO = so > +# On MS-Windows, say "make SO=.dll" to build the module > +SO = .so > # -fPIC is a no-op on Windows, but causes a compiler warning > -ifeq ($(SO),dll) > +ifeq ($(SO),.dll) > CFLAGS = -std=gnu99 -ggdb3 -Wall > else > CFLAGS = -std=gnu99 -ggdb3 -Wall -fPIC > endif > > -all: mod-test.$(SO) > +all: mod-test$(SO) > > -%.$(SO): %.o > +%$(SO): %.o > $(LD) -shared $(LDFLAGS) -o $@ $< > > %.o: %.c > $(CC) $(CFLAGS) -I$(ROOT)/src -c $< > - > -check: > - $(EMACS) -batch -l ert -l test.el -f ert-run-tests-batch-and-exit > diff --git a/modules/mod-test/mod-test.c > b/test/data/emacs-module/mod-test.c > similarity index 100% > rename from modules/mod-test/mod-test.c > rename to test/data/emacs-module/mod-test.c > diff --git a/modules/mod-test/test.el b/test/src/emacs-module-tests.el > similarity index 97% > rename from modules/mod-test/test.el > rename to test/src/emacs-module-tests.el > index caa807d300..93e85ae22d 100644 > --- a/modules/mod-test/test.el > +++ b/test/src/emacs-module-tests.el > @@ -19,9 +19,9 @@ > > (require 'ert) > > -(add-to-list 'load-path > - (file-name-directory (or #$ (expand-file-name > (buffer-file-name))))) > -(require 'mod-test) > +(require 'mod-test > + (expand-file-name "data/emacs-module/mod-test" > + (getenv "EMACS_TEST_DIRECTORY"))) > > ;; > ;; Basic tests. > -- > 2.12.2 > >