summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2020-09-13 16:05:19 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2020-09-13 16:05:25 +0200
commitc2dea983e8016dab6e76a10d8b02ffbf894e2760 (patch)
tree8ae89f284a979d7cd34eb848c3b3201a2ff9c21a
parent467200dd6edc084b2c8569fe7d11e1b4055718d2 (diff)
downloademacs-c2dea983e8016dab6e76a10d8b02ffbf894e2760.tar.gz
Kill gpg-agents started by mml-sec-tests (bug#43358)
-rw-r--r--test/lisp/gnus/mml-sec-tests.el16
1 files changed, 15 insertions, 1 deletions
diff --git a/test/lisp/gnus/mml-sec-tests.el b/test/lisp/gnus/mml-sec-tests.el
index b715383c777..ba0783ba8cf 100644
--- a/test/lisp/gnus/mml-sec-tests.el
+++ b/test/lisp/gnus/mml-sec-tests.el
@@ -82,7 +82,9 @@ instead of gpg-agent."
;; not look in the proper places otherwise, see:
;; https://bugs.gnupg.org/gnupg/issue2126
(setenv "GNUPGHOME" epg-gpg-home-directory)
- (funcall body))
+ (unwind-protect
+ (funcall body)
+ (mml-sec-test--kill-gpg-agent)))
(error
(setenv "GPG_AGENT_INFO" agent-info)
(setenv "GNUPGHOME" gpghome)
@@ -903,4 +905,16 @@ So the second decryption fails."
(let ((with-smime nil))
(ert-run-tests-batch)))
+(defun mml-sec-test--kill-gpg-agent ()
+ (dolist (pid (list-system-processes))
+ (let ((atts (process-attributes pid)))
+ (when (and (equal (cdr (assq 'user atts)) (user-login-name))
+ (equal (cdr (assq 'comm atts)) "gpg-agent")
+ (string-match
+ (concat "homedir.*"
+ (regexp-quote (expand-file-name "test/data/mml-sec"
+ source-directory)))
+ (cdr (assq 'args atts))))
+ (call-process "kill" nil nil nil (format "%d" pid))))))
+
;;; mml-sec-tests.el ends here