all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Paul Pogonyshev <pogonyshev@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 29025@debbugs.gnu.org
Subject: bug#29025: Option to run ERT in quiet mode
Date: Fri, 27 Oct 2017 14:26:38 +0200	[thread overview]
Message-ID: <CAG7BparWSDewHaiNHS7eoK7zeO15qd-Z70g=8_MpHsvRpRT9kw@mail.gmail.com> (raw)
In-Reply-To: <83h8uk7q7v.fsf@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 820 bytes --]

Attached is the patch extended with requested changes.

Paul

On 27 October 2017 at 14:03, Eli Zaretskii <eliz@gnu.org> wrote:
>> From: Paul Pogonyshev <pogonyshev@gmail.com>
>> Date: Fri, 27 Oct 2017 11:51:40 +0200
>>
>> When running ERT from command-line with (ert-run-tests-batch ...), it
>> prints lots of lines for passed tests. The attached patch adds
>> variable `ert-quiet' that lets you omit such non-important lines:
>>
>>     (let ((ert-quiet t)) (ert-run-tests-batch ...))
>>
>> Of course, default is nil, so there is no change for existing
>> invocations. It is fully backward compatible. Users don't have to
>> check Emacs version prior to binding this variable: on older version
>> there will be no effect, but ERT will work.
>
> Thanks, but please also provide patches for the Texinfo manual and
> NEWS.

[-- Attachment #2: 0001-Add-ert-quiet-variable.patch --]
[-- Type: text/x-patch, Size: 4756 bytes --]

From 116b31d20b0a23a73f489d2773ea9c746adc1c60 Mon Sep 17 00:00:00 2001
From: Paul Pogonyshev <pogonyshev@gmail.com>
Date: Fri, 27 Oct 2017 14:21:59 +0200
Subject: [PATCH] Add `ert-quiet' variable.

* lisp/emacs-lisp/ert.el (ert-quiet): New variable.
(ert-run-tests-batch): When `ert-quiet' is non-nil, don't
print non-important information.
* doc/misc/ert.texi (Running Tests in Batch Mode): Document it.
---
 doc/misc/ert.texi      | 13 +++++++++++++
 etc/NEWS               |  5 +++++
 lisp/emacs-lisp/ert.el | 33 +++++++++++++++++++--------------
 3 files changed, 37 insertions(+), 14 deletions(-)

diff --git a/doc/misc/ert.texi b/doc/misc/ert.texi
index 4a2c29dcb9..cdfba5701c 100644
--- a/doc/misc/ert.texi
+++ b/doc/misc/ert.texi
@@ -292,6 +292,19 @@ Running Tests in Batch Mode
 emacs -batch -l ert -f ert-summarize-tests-batch-and-exit output.log
 @end example
 
+By default, ERT in batch mode is quite verbose, printing a line with
+result after each test.  This gives you progress information: how many
+tests have been executed and how many there are.  However, in some
+cases this much output may be not wanted.  In this case, set
+@code{ert-quiet} variable to a non-nil value:
+
+@example
+emacs -batch -l ert -l my-tests.el \
+      --eval "(let ((ert-quiet t)) (ert-run-tests-batch-and-exit))"
+@end example
+
+In quiet mode ERT prints only unexpected results and summary.
+
 If ERT is not part of your Emacs distribution, you may need to use
 @code{-L /path/to/ert/} so that Emacs can find it.  You may need
 additional @code{-L} flags to ensure that @code{my-tests.el} and all the
diff --git a/etc/NEWS b/etc/NEWS
index ec52460f77..9c23cb20dd 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -84,6 +84,11 @@ by default.
 
 ** Gamegrid
 
+** ERT
+
+*** New variable 'ert-quiet' allows to make ERT output in batch mode
+less verbose by removing non-essential information.
+
 ---
 *** Gamegrid now determines its default glyph size based on display
 dimensions, instead of always using 16 pixels. As a result, Tetris,
diff --git a/lisp/emacs-lisp/ert.el b/lisp/emacs-lisp/ert.el
index 3a3979e81f..1d69af8063 100644
--- a/lisp/emacs-lisp/ert.el
+++ b/lisp/emacs-lisp/ert.el
@@ -1333,6 +1333,9 @@ ert--insert-infos
 
 ;;; Running tests in batch mode.
 
+(defvar ert-quiet nil
+  "Non-nil makes ERT only print important information in batch mode.")
+
 ;;;###autoload
 (defun ert-run-tests-batch (&optional selector)
   "Run the tests specified by SELECTOR, printing results to the terminal.
@@ -1349,10 +1352,11 @@ ert-run-tests-batch
    (lambda (event-type &rest event-args)
      (cl-ecase event-type
        (run-started
-        (cl-destructuring-bind (stats) event-args
-          (message "Running %s tests (%s)"
-                   (length (ert--stats-tests stats))
-                   (ert--format-time-iso8601 (ert--stats-start-time stats)))))
+        (unless ert-quiet
+          (cl-destructuring-bind (stats) event-args
+            (message "Running %s tests (%s)"
+                     (length (ert--stats-tests stats))
+                     (ert--format-time-iso8601 (ert--stats-start-time stats))))))
        (run-ended
         (cl-destructuring-bind (stats abortedp) event-args
           (let ((unexpected (ert-stats-completed-unexpected stats))
@@ -1438,16 +1442,17 @@ ert-run-tests-batch
                         (ert-test-name test)))
               (ert-test-quit
                (message "Quit during %S" (ert-test-name test)))))
-          (let* ((max (prin1-to-string (length (ert--stats-tests stats))))
-                 (format-string (concat "%9s  %"
-                                        (prin1-to-string (length max))
-                                        "s/" max "  %S")))
-            (message format-string
-                     (ert-string-for-test-result result
-                                                 (ert-test-result-expected-p
-                                                  test result))
-                     (1+ (ert--stats-test-pos stats test))
-                     (ert-test-name test)))))))
+          (unless ert-quiet
+            (let* ((max (prin1-to-string (length (ert--stats-tests stats))))
+                   (format-string (concat "%9s  %"
+                                          (prin1-to-string (length max))
+                                          "s/" max "  %S")))
+              (message format-string
+                       (ert-string-for-test-result result
+                                                   (ert-test-result-expected-p
+                                                    test result))
+                       (1+ (ert--stats-test-pos stats test))
+                       (ert-test-name test))))))))
    nil))
 
 ;;;###autoload
-- 
2.14.2


  reply	other threads:[~2017-10-27 12:26 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-27  9:51 bug#29025: Option to run ERT in quiet mode Paul Pogonyshev
2017-10-27 12:03 ` Eli Zaretskii
2017-10-27 12:26   ` Paul Pogonyshev [this message]
2017-10-28 10:51     ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAG7BparWSDewHaiNHS7eoK7zeO15qd-Z70g=8_MpHsvRpRT9kw@mail.gmail.com' \
    --to=pogonyshev@gmail.com \
    --cc=29025@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.