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

From: Ken Brown <[email-masked]>
Date: Wed, 8 Jun 2022 12:30:31 -0400

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