Subject: Re: bug#16854: 24.3.50; ert-run-tests-interactively t selector not working

From: Dmitry Gutov <[email-masked]>
Date: Sun, 23 Feb 2014 19:21:00 +0200

Helmut Eller <[email-masked]> writes:

> When I run this
>
> (require 'ert)
> (ert-deftest infloop0 () (while t))
>
> with: emacs -Q -nw -l infloops.el -f ert
>
> Emacs starts up and asks: "Run tests (default t): "
> If I enter: "t RET"
> then ERT does not run anything and simply writes:
> "Ran 0 tests, 0 results were as expected"
>
> The expected result is that all tests should be executed.

Same here. Apparently, this is fallout from 114803 (bug#9756).

The code before it used `read-from-minibuffer' with t READ argument, so
"t" was converted to `t'. But now `ert-select-tests' receives SELECTOR
as "t".

The patch below fixes it for me.

=== modified file 'lisp/emacs-lisp/ert.el'
--- lisp/emacs-lisp/ert.el	2014-02-04 17:37:08 +0000
+++ lisp/emacs-lisp/ert.el	2014-02-23 17:16:26 +0000
@@ -1882,11 +1882,12 @@
                             ;; defined without cl.
                             (car ert--selector-history)
                           "t")))
-           (completing-read (if (null default)
-				"Run tests: "
-			      (format "Run tests (default %s): " default))
-			    obarray #'ert-test-boundp nil nil
-			    'ert--selector-history default nil))
+           (intern
+            (completing-read (if (null default)
+                                 "Run tests: "
+                               (format "Run tests (default %s): " default))
+                             obarray #'ert-test-boundp nil nil
+                             'ert--selector-history default nil)))
          nil))
   (unless message-fn (setq message-fn 'message))
   (let ((output-buffer-name output-buffer-name)