From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#16853: 24.3.50; ert-run-tests-interactively difficult to abort Date: Wed, 24 Feb 2016 14:07:53 +1100 Message-ID: <87k2lun6uu.fsf@gnus.org> References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1456283362 23779 80.91.229.3 (24 Feb 2016 03:09:22 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 24 Feb 2016 03:09:22 +0000 (UTC) Cc: 16853@debbugs.gnu.org To: Helmut Eller Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Feb 24 04:09:11 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aYPp8-0003Y7-Ow for geb-bug-gnu-emacs@m.gmane.org; Wed, 24 Feb 2016 04:09:11 +0100 Original-Received: from localhost ([::1]:33077 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aYPp8-0003ga-2w for geb-bug-gnu-emacs@m.gmane.org; Tue, 23 Feb 2016 22:09:10 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:54868) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aYPp4-0003g7-3m for bug-gnu-emacs@gnu.org; Tue, 23 Feb 2016 22:09:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aYPp0-0004uA-SH for bug-gnu-emacs@gnu.org; Tue, 23 Feb 2016 22:09:06 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:44857) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aYPp0-0004u5-P0 for bug-gnu-emacs@gnu.org; Tue, 23 Feb 2016 22:09:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84) (envelope-from ) id 1aYPp0-00042d-Id for bug-gnu-emacs@gnu.org; Tue, 23 Feb 2016 22:09:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 Feb 2016 03:09:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16853 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 16853-submit@debbugs.gnu.org id=B16853.145628330115489 (code B ref 16853); Wed, 24 Feb 2016 03:09:02 +0000 Original-Received: (at 16853) by debbugs.gnu.org; 24 Feb 2016 03:08:21 +0000 Original-Received: from localhost ([127.0.0.1]:41984 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aYPoL-00041k-2c for submit@debbugs.gnu.org; Tue, 23 Feb 2016 22:08:21 -0500 Original-Received: from hermes.netfonds.no ([80.91.224.195]:48665) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aYPoK-00041d-9q for 16853@debbugs.gnu.org; Tue, 23 Feb 2016 22:08:20 -0500 Original-Received: from cpe-60-225-211-161.nsw.bigpond.net.au ([60.225.211.161] helo=mouse) by hermes.netfonds.no with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1aYPnx-0006Zq-80; Wed, 24 Feb 2016 04:07:57 +0100 In-Reply-To: (Helmut Eller's message of "Sun, 02 Mar 2014 16:35:33 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) X-MailScanner-ID: 1aYPnx-0006Zq-80 MailScanner-NULL-Check: 1456888078.1602@fglgHg8SB964bBQBiOPIgA X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:113638 Archived-At: Helmut Eller writes: > Here is a patch to fix this: > > Make it easier to abort a series of tests with C-g. > > * emacs-lisp/ert.el (ert-run-tests): Add "interactively" arg. If > interactively is true and a test was aborted then ask if the > remaining tests should be aborted too. > (ert-run-tests-batch, ert-run-tests-interactively): Pass in > interactively arg. I think this makes sense, but the discussion seemed to go off on a tangent, and the patch wasn't applied. And I'm not familiar with the ert internals, but could somebody look at the patch and see whether it looks reasonable? > diff --git lisp/emacs-lisp/ert.el lisp/emacs-lisp/ert.el > index 34041aa..aa01c3f 100644 > --- lisp/emacs-lisp/ert.el > +++ lisp/emacs-lisp/ert.el > @@ -1238,7 +1238,7 @@ SELECTOR is the selector that was used to select TESTS." > (funcall listener 'test-ended stats test result)) > (setf (ert--stats-current-test stats) nil)))) > > -(defun ert-run-tests (selector listener) > +(defun ert-run-tests (selector listener interactively) > "Run the tests specified by SELECTOR, sending progress updates to LISTENER." > (let* ((tests (ert-select-tests selector t)) > (stats (ert--make-stats tests selector))) > @@ -1249,10 +1249,14 @@ SELECTOR is the selector that was used to select TESTS." > (let ((ert--current-run-stats stats)) > (force-mode-line-update) > (unwind-protect > - (progn > - (cl-loop for test in tests do > - (ert-run-or-rerun-test stats test listener)) > - (setq abortedp nil)) > + (cl-loop for test in tests do > + (ert-run-or-rerun-test stats test listener) > + (when (and interactively > + (ert-test-quit-p > + (ert-test-most-recent-result test)) > + (y-or-n-p "Abort testing? ")) > + (cl-return)) > + finally (setq abortedp nil)) > (setf (ert--stats-aborted-p stats) abortedp) > (setf (ert--stats-end-time stats) (current-time)) > (funcall listener 'run-ended stats abortedp))) > @@ -1443,7 +1447,8 @@ Returns the stats object." > (ert-test-result-expected-p > test result)) > (1+ (ert--stats-test-pos stats test)) > - (ert-test-name test))))))))) > + (ert-test-name test))))))) > + nil)) > > ;;;###autoload > (defun ert-run-tests-batch-and-exit (&optional selector) > @@ -1952,9 +1957,8 @@ and how to display message." > test result))) > (ert--results-update-stats-display-maybe ewoc stats) > (ewoc-invalidate ewoc node)))))))) > - (ert-run-tests > - selector > - listener))) > + (ert-run-tests selector listener t))) > + > ;;;###autoload > (defalias 'ert 'ert-run-tests-interactively) > > -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no