[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 2d0853f: Optimize "make check" and "make check-mayb
From: |
Michael Albinus |
Subject: |
[Emacs-diffs] master 2d0853f: Optimize "make check" and "make check-maybe" |
Date: |
Fri, 16 Mar 2018 11:19:24 -0400 (EDT) |
branch: master
commit 2d0853f62ac65f974f25887f69506bfe923bf14b
Author: Michael Albinus <address@hidden>
Commit: Michael Albinus <address@hidden>
Optimize "make check" and "make check-maybe"
* lisp/emacs-lisp/ert.el (ert-run-tests-batch): Print summary duration.
* test/Makefile.in (TEST_LOAD_EL): Set default to "no" for
targets all, check, and check-maybe. (Bug#30807)
* test/README: Reflect recent changes in Makefile.
* test/lisp/net/tramp-archive-tests.el
(tramp-archive-test99-libarchive-tests): Tag it :unstable.
---
lisp/emacs-lisp/ert.el | 10 +++++++++-
test/Makefile.in | 3 ++-
test/README | 27 +++++++++++++++++++++------
test/lisp/net/tramp-archive-tests.el | 2 +-
4 files changed, 33 insertions(+), 9 deletions(-)
diff --git a/lisp/emacs-lisp/ert.el b/lisp/emacs-lisp/ert.el
index 3beb8a0..a1545073 100644
--- a/lisp/emacs-lisp/ert.el
+++ b/lisp/emacs-lisp/ert.el
@@ -1383,7 +1383,15 @@ Returns the stats object."
(if (zerop skipped)
""
(format ", %s skipped" skipped))
- (ert--format-time-iso8601 (ert--stats-end-time stats))
+ (if ert-batch-print-duration
+ (format
+ "%s, %f sec"
+ (ert--format-time-iso8601 (ert--stats-end-time
stats))
+ (float-time
+ (time-subtract
+ (ert--stats-end-time stats)
+ (ert--stats-start-time stats))))
+ (ert--format-time-iso8601 (ert--stats-end-time stats)))
(if (zerop expected-failures)
""
(format "\n%s expected failures" expected-failures)))
diff --git a/test/Makefile.in b/test/Makefile.in
index 0b6f8c2..426d22d 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -97,7 +97,8 @@ TEST_LOCALE = C
# Whether to run tests from .el files in preference to .elc, we do
# this by default since it gives nicer stacktraces.
# If you just want a pass/fail, setting this to no is much faster.
-TEST_LOAD_EL ?= yes
+export TEST_LOAD_EL ?= \
+ $(if $(findstring $(MAKECMDGOALS), all check check-maybe),no,yes)
# Additional settings for ert.
ert_opts =
diff --git a/test/README b/test/README
index 17135a0..37156c6 100644
--- a/test/README
+++ b/test/README
@@ -11,12 +11,23 @@ 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.
+Tests could be tagged by the developer. In this test directory, the
+following tags are recognised:
+
+* :expensive-test
+ The test needs a serious amount of time to run. It is not intended
+ to run on a regular basis by users. Instead, it runs on demand
+ only, or during regression tests.
+
+* :unstable
+ The test is under development. It shall run on demand only.
+
The Makefile in this 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.
+ Run all tests as defined in the directory. Expensive and unstable
+ 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
@@ -25,6 +36,9 @@ The Makefile in this directory supports the following targets:
* make check-expensive
Like "make check", but run also the tests marked as expensive.
+* make check-all
+ Like "make check", but run all tests.
+
* 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
@@ -38,15 +52,16 @@
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.
+except the tests tagged as expensive or unstable.
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$$\"'".
Note that although the test files are always compiled (unless they set
-no-byte-compile), the source files will be run by default, to give
-nicer backtraces. To run the compiled version of a test use
+no-byte-compile), the source files will be run when expensive or
+unstable tests are involved, to give nicer backtraces. To run the
+compiled version of a test use
make TEST_LOAD_EL=no ...
diff --git a/test/lisp/net/tramp-archive-tests.el
b/test/lisp/net/tramp-archive-tests.el
index a3201bd..b327e64 100644
--- a/test/lisp/net/tramp-archive-tests.el
+++ b/test/lisp/net/tramp-archive-tests.el
@@ -873,7 +873,7 @@ This tests also `file-executable-p', `file-writable-p' and
`set-file-modes'."
(ert-deftest tramp-archive-test99-libarchive-tests ()
"Run tests of libarchive test files."
- :tags '(:expensive-test)
+ :tags '(:expensive-test :unstable)
(skip-unless tramp-archive-enabled)
;; We do not want to run unless chosen explicitly. This test makes
;; sense only in my local environment. Michael Albinus.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 2d0853f: Optimize "make check" and "make check-maybe",
Michael Albinus <=