emacs-diffs
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]