]> code.delx.au - gnu-emacs/blobdiff - test/automated/Makefile.in
; Spelling fixes
[gnu-emacs] / test / automated / Makefile.in
index faf0b3d8339d6ace015a833d885f8ef8b691572f..9c9b3be1e0b3de74d0821ead129cf0a2bed9a2ce 100644 (file)
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-# Copyright (C) 2010-2015 Free Software Foundation, Inc.
+# Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
@@ -52,9 +52,15 @@ unexport EMACSDATA EMACSDOC EMACSPATH GREP_OPTIONS
 ## To run tests under a debugger, set this to eg: "gdb --args".
 GDB =
 
+# The locale to run tests under.  Tests should work if this is set to
+# any supported locale.  Use the C locale by default, as it should be
+# supported everywhere.
+TEST_LOCALE = C
+
 # The actual Emacs command run in the targets below.
 # Prevent any setting of EMACSLOADPATH in user environment causing problems.
-emacs = EMACSLOADPATH= LC_ALL=C EMACS_TEST_DIRECTORY=$(srcdir) $(GDB) "$(EMACS)" $(EMACSOPT)
+emacs = EMACSLOADPATH= LC_ALL=$(TEST_LOCALE) EMACS_TEST_DIRECTORY=$(srcdir) \
+ $(GDB) "$(EMACS)" $(EMACSOPT)
 
 .PHONY: all check
 
@@ -80,7 +86,24 @@ WRITE_LOG = > $@ 2>&1 || { stat=ERROR; cat $@; }; echo $$stat: $@
 ## -l ./basename treats basename as a literal file (it would be nice
 ## to change this; bug#17848 - if that gets done, this can be simplified).
 ##
-## Beware: it approximates `no-byte-compile', so watch out for false-positives!
+## Beware: it approximates 'no-byte-compile', so watch out for false-positives!
+SELECTOR_DEFAULT = (quote (not (tag :expensive-test)))
+SELECTOR_EXPENSIVE = nil
+ifdef SELECTOR
+SELECTOR_ACTUAL=$(SELECTOR)
+else ifndef MAKECMDGOALS
+SELECTOR_ACTUAL=$(SELECTOR_DEFAULT)
+else ifeq ($(MAKECMDGOALS),all)
+SELECTOR_ACTUAL=$(SELECTOR_DEFAULT)
+else ifeq ($(MAKECMDGOALS),check)
+SELECTOR_ACTUAL=$(SELECTOR_DEFAULT)
+else ifeq ($(MAKECMDGOALS),check-maybe)
+SELECTOR_ACTUAL=$(SELECTOR_DEFAULT)
+else
+SELECTOR_ACTUAL=$(SELECTOR_EXPENSIVE)
+endif
+
+
 %.log: ${srcdir}/%.el
        @if grep '^;.*no-byte-compile: t' $< > /dev/null; then \
          loadfile=$<; \
@@ -91,9 +114,9 @@ WRITE_LOG = > $@ 2>&1 || { stat=ERROR; cat $@; }; echo $$stat: $@
        echo Testing $$loadfile; \
        stat=OK ; \
        $(emacs) -l ert -l $$loadfile \
-         -f ert-run-tests-batch-and-exit ${WRITE_LOG}
+         --eval "(ert-run-tests-batch-and-exit ${SELECTOR_ACTUAL})" ${WRITE_LOG}
 
-ELFILES = $(wildcard ${srcdir}/*.el)
+ELFILES = $(sort $(wildcard ${srcdir}/*.el))
 LOGFILES = $(patsubst %.el,%.log,$(notdir ${ELFILES}))
 TESTS = ${LOGFILES:.log=}
 
@@ -112,20 +135,31 @@ endef
 
 $(foreach test,${TESTS},$(eval $(call test_template,${test})))
 
+## Rerun all default tests.
+check: mostlyclean
+       @${MAKE} check-doit SELECTOR="${SELECTOR_ACTUAL}"
 
-## Re-run all the tests every time.
-check:
-       -@for f in *.log; do test ! -f $$f || mv $$f $$f~; done
-       @${MAKE} check-maybe
+## Rerun all default and expensive tests.
+.PHONY: check-expensive
+check-expensive: mostlyclean
+       @${MAKE} check-doit SELECTOR="${SELECTOR_EXPENSIVE}"
 
-## Only re-run tests whose .log is older than the test.
+## Only re-run default tests whose .log is older than the test.
 .PHONY: check-maybe
-check-maybe: ${LOGFILES}
+check-maybe:
+       @${MAKE} check-doit SELECTOR="${SELECTOR_ACTUAL}"
+
+## Run the tests.
+.PHONY: check-doit
+check-doit: ${LOGFILES}
        $(emacs) -l ert -f ert-summarize-tests-batch-and-exit $^
 
 .PHONY: mostlyclean clean bootstrap-clean distclean maintainer-clean
 
-clean mostlyclean:
+mostlyclean:
+       -@for f in *.log; do test ! -f $$f || mv $$f $$f~; done
+
+clean:
        -rm -f *.log *.log~
 
 bootstrap-clean: clean