Subject: bug#55849: closed (Re: bug#55849: 29.0.50; process-async-https-with-delay error detection is wrong)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 08 Jun 2022 17:13:01 +0000

Your bug report

#55849: 29.0.50; process-async-https-with-delay error detection is wrong

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
55849: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=55849
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#55849: 29.0.50; process-async-https-with-delay error detection is wrong
From: Ken Brown <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked]
Date: Wed, 8 Jun 2022 13:12:32 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

On 6/8/2022 12:52 PM, Eli Zaretskii wrote:
> Please install on the release branch, and thanks.

Done.  Closing.

Subject: 29.0.50; process-async-https-with-delay error detection is wrong
From: Ken Brown <[email-masked]>
To: [email-masked]
Date: Wed, 8 Jun 2022 12:30:31 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

process-async-https-with-delay in test/src/process-tests.el fails on
Cygwin as follows:

Test process-async-https-with-delay condition:
     (ert-test-failed
      ((should
        (>
         (buffer-size buf)
         0))
       :form
       (> 0 0)
       :value nil))

I haven't yet figured out why, but in attempting to debug this I
discovered that the error reporting in the test is faulty.  What
actually happens is that the connection fails, and this failure is
indicated by the 'status' variable.  The latter is a plist, but the test
uses '(should-not (assq :error status))' as though it were an alist.

The following patch fixes the problem:

diff --git a/test/src/process-tests.el b/test/src/process-tests.el
index f5908d3cda..824c6da119 100644
--- a/test/src/process-tests.el
+++ b/test/src/process-tests.el
@@ -931,7 +931,7 @@ process-async-https-with-delay
                          (< (float-time) (+ t0 limit)))
                (sit-for 0.1)))
            (should status)
-          (should-not (assq :error status))
+          (should-not (plist-get status ':error))
            (should buf)
            (should (> (buffer-size buf) 0))
            )

With this patch the correct reason for the failure is shown:

Test process-async-https-with-delay condition:
     (ert-test-failed
      ((should-not
        (plist-get status ':error))
       :form
       (plist-get
        (:error
          (error connection-failed "deleted\n" :host "elpa.gnu.org" :service 443))
        :error)
       :value
       (error connection-failed "deleted\n" :host "elpa.gnu.org" :service 443)))

OK to apply?  If so, to which branch?  The problem exists on both master
and the release branch.

Ken