### @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.
## 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!
+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=$<; \
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 = $(sort $(wildcard ${srcdir}/*.el))
LOGFILES = $(patsubst %.el,%.log,$(notdir ${ELFILES}))
$(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