]> git.eshelyaron.com Git - emacs.git/commitdiff
Allow customizing line length of ert backtraces in batch mode
authorGlenn Morris <rgm@gnu.org>
Wed, 6 Sep 2017 00:40:10 +0000 (20:40 -0400)
committerGlenn Morris <rgm@gnu.org>
Wed, 6 Sep 2017 00:40:10 +0000 (20:40 -0400)
* lisp/emacs-lisp/ert.el (ert-batch-backtrace-right-margin):
Make it a user option.
(ert-run-tests-batch): Handle ert-batch-backtrace-right-margin nil.

lisp/emacs-lisp/ert.el

index c232b08bd1a131d61884b7e19ecfe3f773af5edc..323576effe5ca7b9d39f14e50e47c7103955f183 100644 (file)
   :prefix "ert-"
   :group 'lisp)
 
+(defcustom ert-batch-backtrace-right-margin 70
+  "Maximum length of lines in ERT backtraces in batch mode.
+Use nil for no limit (caution: backtrace lines can be very long)."
+  :type '(choice (const nil :tag "No truncation") integer))
+
 (defface ert-test-result-expected '((((class color) (background light))
                                      :background "green1")
                                     (((class color) (background dark))
@@ -1329,9 +1334,6 @@ RESULT must be an `ert-test-result-with-condition'."
 
 ;;; Running tests in batch mode.
 
-(defvar ert-batch-backtrace-right-margin 70
-  "The maximum line length for printing backtraces in `ert-run-tests-batch'.")
-
 ;;;###autoload
 (defun ert-run-tests-batch (&optional selector)
   "Run the tests specified by SELECTOR, printing results to the terminal.
@@ -1405,15 +1407,20 @@ Returns the stats object."
                  (ert--print-backtrace
                   (ert-test-result-with-condition-backtrace result)
                   nil)
-                 (goto-char (point-min))
-                 (while (not (eobp))
-                   (let ((start (point))
-                         (end (progn (end-of-line) (point))))
-                     (setq end (min end
-                                    (+ start ert-batch-backtrace-right-margin)))
-                     (message "%s" (buffer-substring-no-properties
-                                    start end)))
-                   (forward-line 1)))
+                 (if (not ert-batch-backtrace-right-margin)
+                     (message "%s"
+                              (buffer-substring-no-properties (point-min)
+                                                              (point-max)))
+                   (goto-char (point-min))
+                   (while (not (eobp))
+                     (let ((start (point))
+                           (end (line-end-position)))
+                       (setq end (min end
+                                      (+ start
+                                         ert-batch-backtrace-right-margin)))
+                       (message "%s" (buffer-substring-no-properties
+                                      start end)))
+                     (forward-line 1))))
                (with-temp-buffer
                  (ert--insert-infos result)
                  (insert "    ")