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:
parent
12c50e82c9
commit
3ad05a0dc4
3 changed files with 64 additions and 20 deletions
22
CONTRIBUTE
22
CONTRIBUTE
|
@ -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
|
To run tests on the entire Emacs tree, run "make check" from the
|
||||||
top-level directory. Most tests are in the directory
|
top-level directory. Most tests are in the directory
|
||||||
"test/automated". From the "test/automated" directory, run "make
|
"test/automated". From the "test/automated" directory, run "make
|
||||||
<filename>" to run the tests for <filename>.el(c). See
|
<filename>" to run the tests for <filename>.el(c). See "test/README"
|
||||||
"test/automated/Makefile" for more information.
|
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$$\"'" .
|
|
||||||
|
|
||||||
** Understanding Emacs Internals.
|
** Understanding Emacs Internals.
|
||||||
|
|
||||||
|
|
|
@ -57,6 +57,10 @@
|
||||||
#
|
#
|
||||||
# make docs
|
# make docs
|
||||||
# Make Emacs documentation files from their sources; requires makeinfo.
|
# 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@
|
SHELL = @SHELL@
|
||||||
|
|
||||||
|
|
58
test/README
58
test/README
|
@ -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
|
This directory contains files intended to test various aspects of
|
||||||
Emacs's functionality. Please help add tests!
|
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.)
|
(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/>.
|
||||||
|
|
Loading…
Add table
Reference in a new issue