From 83529e1bd14a6d39f2a8ecab9fb6aa4c1f344c73 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Wed, 4 Apr 2018 20:27:08 +0900 Subject: tests: Fix no gpg-agent upon removal of GNUPGHOME. * tests/gpgscm/gnupg.scm (with-ephemeral-home-directory): Add teadown-fn. * tests/gpgsm/export.scm: Use -no-atexit version and stop-agent. * tests/openpgp/decrypt-session-key.scm: Likewise. * tests/openpgp/decrypt-unwrap-verify.scm: Likewise. * tests/openpgp/defs.scm (have-opt-always-trust): Likewise. (setup-environment-no-atexit): New. (start-agent): Support no use of atexit. * tests/gpgsm/gpgsm-defs.scm (setup-gpgsm-environment-no-atexit): New. * tests/migrations/common.scm (untar-armored): Follow the change of with-ephemeral-home-directory. -- When gpg-agent detects homedir removal, it will automatically exit. Then, call of 'gpgconf --kill all' will fail. So, stop-agent should be called before the removal of homedir. Signed-off-by: NIIBE Yutaka --- tests/gpgscm/gnupg.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'tests/gpgscm') diff --git a/tests/gpgscm/gnupg.scm b/tests/gpgscm/gnupg.scm index 5fcf9fd21..77bf479ef 100644 --- a/tests/gpgscm/gnupg.scm +++ b/tests/gpgscm/gnupg.scm @@ -28,17 +28,22 @@ ;; Evaluate a sequence of expressions with an ephemeral home ;; directory. -(define-macro (with-ephemeral-home-directory setup-fn . expressions) +(define-macro (with-ephemeral-home-directory setup-fn teardown-fn . expressions) (let ((original-home-directory (gensym)) (ephemeral-home-directory (gensym)) - (setup (gensym))) + (setup (gensym)) + (teardown (gensym))) `(let ((,original-home-directory (getenv "GNUPGHOME")) (,ephemeral-home-directory (mkdtemp)) - (,setup (delay (,setup-fn)))) + (,setup (delay (,setup-fn))) + (,teardown (delay (,teardown-fn)))) (finally (unlink-recursively ,ephemeral-home-directory) (dynamic-wind (lambda () (setenv "GNUPGHOME" ,ephemeral-home-directory #t) (with-working-directory ,ephemeral-home-directory (force ,setup))) (lambda () ,@expressions) - (lambda () (setenv "GNUPGHOME" ,original-home-directory #t))))))) + (lambda () + (setenv "GNUPGHOME" ,ephemeral-home-directory #t) + (with-working-directory ,ephemeral-home-directory (force ,teardown)) + (setenv "GNUPGHOME" ,original-home-directory #t))))))) -- cgit v1.2.3