Describe Makefile test targets in test/README

* CONTRIBUTE: Move Makefile test targets to test/README.

* Makefile.in:
* test/README: Describe Makefile test targets.
This commit is contained in:
Michael Albinus 2016-02-10 12:18:30 +01:00
parent 12c50e82c9
commit 3ad05a0dc4
3 changed files with 64 additions and 20 deletions

View file

@ -257,26 +257,8 @@ If your test lasts longer than some few seconds, mark it in its
To run tests on the entire Emacs tree, run "make check" from the
top-level directory. Most tests are in the directory
"test/automated". From the "test/automated" directory, run "make
<filename>" to run the tests for <filename>.el(c). See
"test/automated/Makefile" for more information.
Tests which are tagged ":expensive-test" are enabled additionally, if
you run "make check-expensive" from the top-level directory. "make
<filename>" as mentioned above incorporates expensive tests for
<filename>.el(c). You can also define any ert selector on the command
line. So "make check SELECTOR=nil" is equivalent to "make
check-expensive".
You could also use predefined selectors of the Makefile. "make
<filename> SELECTOR='$(SELECTOR_DEFAULT)'" runs all tests for
<filename>.el(c) except the tests tagged as expensive.
Selectors can be defined with different methods, see (info "(ert)Test
Selectors") or
https://www.gnu.org/software/emacs/manual/html_node/ert/Test-Selectors.html
If your test file contains the tests "test-foo", "test2-foo" and
"test-foo-remote", and you want to run only the former two tests, you
could use a regexp: "make <filename> SELECTOR='\"foo$$\"'" .
<filename>" to run the tests for <filename>.el(c). See "test/README"
for more information.
** Understanding Emacs Internals.

View file

@ -57,6 +57,10 @@
#
# make docs
# Make Emacs documentation files from their sources; requires makeinfo.
#
# make check or make check-expensive
# Run Emacs test suite. check-expensive runs also tests which
# take more time to perform.
SHELL = @SHELL@

View file

@ -1,4 +1,62 @@
Copyright (C) 2008-2016 Free Software Foundation, Inc.
See the end of the file for license conditions.
This directory contains files intended to test various aspects of
Emacs's functionality. Please help add tests!
Emacs uses ERT, Emacs Lisp Regression Testing, for testing. See (info
"(ert)") or https://www.gnu.org/software/emacs/manual/html_node/ert/
for more information on writing and running tests.
All ERT test files are supposed to run from subdirectory automated/.
The Makefile in that directory supports the following targets:
* make check
Run all tests as defined in the directory. Expensive tests are
suppressed. The result of the tests for <filename>.el is stored in
<filename>.log.
* make check-maybe
Like "make check", but run only the tests for files which have
unresolved prerequisites.
* make check-expensive
Like "make check", but run also the tests marked as expensive.
* make <filename> or make <filename>.log
Run all tests declared in <filename>.el. This includes expensive
tests. In the former case the output is shown on the terminal, in
the latter case the output is written to <filename>.log.
ERT offers selectors, which make it possible to filter out which test
cases shall run. The make variable $(SELECTOR) gives you a simple
mean to use your own selectors. The ERT manual describes how
selectors are constructed, see (info "(ert)Test Selectors") or
https://www.gnu.org/software/emacs/manual/html_node/ert/Test-Selectors.html
You could use predefined selectors of the Makefile. "make <filename>
SELECTOR='$(SELECTOR_DEFAULT)'" runs all tests for <filename>.el
except the tests tagged as expensive.
If your test file contains the tests "test-foo", "test2-foo" and
"test-foo-remote", and you want to run only the former two tests, you
could use a selector regexp: "make <filename> SELECTOR='\"foo$$\"'".
(Also, see etc/compilation.txt for compilation mode font lock tests.)
This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.