]> git.eshelyaron.com Git - emacs.git/commitdiff
Optimize "make check" and "make check-maybe"
authorMichael Albinus <michael.albinus@gmx.de>
Fri, 16 Mar 2018 15:19:10 +0000 (16:19 +0100)
committerAndrew G Cohen <cohen@andy.bu.edu>
Tue, 11 Dec 2018 06:17:50 +0000 (14:17 +0800)
* 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
test/Makefile.in
test/README
test/lisp/net/tramp-archive-tests.el

index 3beb8a070fc85c525c656ef071eaec9156888da5..a15450734ecf03e2c87eac7c564cf38e52b7089e 100644 (file)
@@ -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)))
index 0b6f8c2eecfe79fbb1aa882f28572e9f185caddb..426d22d063261ae559a0e89d1859e6c7b7c7113a 100644 (file)
@@ -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 =
index 17135a02748cff918739c9fc6cec53f06104db69..37156c632c1939988a64d9398c3183d7ca7f4d88 100644 (file)
@@ -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 ...
 
index a3201bdba4a350b008a2b587177abe92bbaaa035..b327e64818bafe3cfce0002b8c86582b295e5001 100644 (file)
@@ -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.