[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/plz 430ceffd1d 43/81: Change: Handle killed processes
From: |
ELPA Syncer |
Subject: |
[elpa] externals/plz 430ceffd1d 43/81: Change: Handle killed processes |
Date: |
Wed, 11 May 2022 17:58:00 -0400 (EDT) |
branch: externals/plz
commit 430ceffd1d39ee5240d3a6576ef161c4829ec4b0
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>
Change: Handle killed processes
---
plz.el | 9 ++++++++-
tests/test-plz.el | 31 +++++++++++++++++++++++++------
2 files changed, 33 insertions(+), 7 deletions(-)
diff --git a/plz.el b/plz.el
index 551330343d..e9b8d90d20 100644
--- a/plz.el
+++ b/plz.el
@@ -63,7 +63,7 @@
version status headers body)
(cl-defstruct plz-error
- curl-error response)
+ curl-error response message)
;;;; Constants
@@ -509,6 +509,13 @@ node `(elisp) Sentinels'). Kills the buffer before
returning."
(number code)))
(curl-error-message (alist-get curl-exit-code
plz-curl-errors))
(err (make-plz-error :curl-error (cons curl-exit-code
curl-error-message))))
+ (pcase-exhaustive plz-else
+ (`nil (signal 'plz-curl-error err))
+ ((pred functionp) (funcall plz-else err)))))
+
+ ("killed\n"
+ ;; Curl process killed.
+ (let ((err (make-plz-error :message "curl process killed")))
(pcase-exhaustive plz-else
(`nil (signal 'plz-curl-error err))
((pred functionp) (funcall plz-else err)))))))
diff --git a/tests/test-plz.el b/tests/test-plz.el
index cd055b4cc7..925175ec8c 100644
--- a/tests/test-plz.el
+++ b/tests/test-plz.el
@@ -170,16 +170,35 @@
(plz-test-wait process)
(should (and (plz-error-p err)
(equal '(6 . "Couldn't resolve host. The given remote host
was not resolved.")
- (plz-error-curl-error err)))))
-
+ (plz-error-curl-error err))))))
+
+;; FIXME: This test works interactively but not in batch mode: it
+;; stalls the Emacs process indefinitely, using either sleep-for or
+;; sit-for.
+
+;; (ert-deftest plz-get-killed-error nil
+;; ;; Async.
+;; (let* ((err)
+;; (process (plz 'get "https://httpbinnnnnn.org/get/status/404"
+;; :as 'string
+;; :else (lambda (e)
+;; (setf err e)))))
+;; (sit-for 0.01)
+;; (delete-process process)
+;; (should (not (process-live-p process)))
+;; (should (plz-error-p err))
+;; (should (equal "curl process killed"
+;; (plz-error-message err)))))
+
+(ert-deftest plz-get-curl-error-sync nil
;; Sync.
(let ((err (should-error (plz-get-sync
"https://httpbinnnnnn.org/get/status/404"
:as 'string)
:type 'plz-curl-error)))
- (should (and (eq 'plz-curl-error (car err))
- (plz-error-p (cdr err))
- (equal '(6 . "Couldn't resolve host. The given remote host
was not resolved.")
- (plz-error-curl-error (cdr err)))))))
+ (should (eq 'plz-curl-error (car err)))
+ (should (plz-error-p (cdr err)))
+ (should (equal '(6 . "Couldn't resolve host. The given remote host was not
resolved.")
+ (plz-error-curl-error (cdr err))))))
(ert-deftest plz-get-404-error nil
;; Async.
- [elpa] externals/plz 6a21c7e809 12/81: Significant changes, (continued)
- [elpa] externals/plz 6a21c7e809 12/81: Significant changes, ELPA Syncer, 2022/05/11
- [elpa] externals/plz 5b00a61ce3 15/81: Rename functions, ELPA Syncer, 2022/05/11
- [elpa] externals/plz 370d0bbc1a 21/81: Tidy, ELPA Syncer, 2022/05/11
- [elpa] externals/plz 971077e1d3 23/81: Tests, ELPA Syncer, 2022/05/11
- [elpa] externals/plz 30e48b1e6a 22/81: Tidy, ELPA Syncer, 2022/05/11
- [elpa] externals/plz 05f93b0b6b 25/81: Meta: Update Makefile, makem.sh, ELPA Syncer, 2022/05/11
- [elpa] externals/plz 19a0110109 33/81: Notes: Add ToC, ELPA Syncer, 2022/05/11
- [elpa] externals/plz 9a1b119eff 38/81: Meta: Ignore sandbox/, ELPA Syncer, 2022/05/11
- [elpa] externals/plz 0301272d8d 40/81: Add: plz-put, ELPA Syncer, 2022/05/11
- [elpa] externals/plz a5f22b23e1 42/81: Add: (plz), ELPA Syncer, 2022/05/11
- [elpa] externals/plz 430ceffd1d 43/81: Change: Handle killed processes,
ELPA Syncer <=
- [elpa] externals/plz f40d3ecbdd 47/81: Add/Change: :noquery argument for make-process, ELPA Syncer, 2022/05/11
- [elpa] externals/plz 1884d038ae 46/81: Notes: Add note about Lars Ingebrigtsen's with-url macro, ELPA Syncer, 2022/05/11
- [elpa] externals/plz 7478d43668 51/81: Revert "Add/Change: Handle LF-only HTTP responses", ELPA Syncer, 2022/05/11
- [elpa] externals/plz 8d2654bba7 49/81: Add/Change: Handle LF-only HTTP responses, ELPA Syncer, 2022/05/11
- [elpa] externals/plz 220f882ee4 53/81: Tests: (plz-post-jpeg-string) Add, ELPA Syncer, 2022/05/11
- [elpa] externals/plz 4a246e24f6 54/81: Add: Upload binary files, ELPA Syncer, 2022/05/11
- [elpa] externals/plz 7c27e4bdcd 61/81: Change: Sync with accept-process-output, ELPA Syncer, 2022/05/11
- [elpa] externals/plz 65030d5cc1 64/81: Tidy: Docstring, ELPA Syncer, 2022/05/11
- [elpa] externals/plz dd92f48895 65/81: Change: Default to :then 'sync and :as 'string, ELPA Syncer, 2022/05/11
- [elpa] externals/plz cddccccf81 67/81: Docs: Fix link, ELPA Syncer, 2022/05/11