mirror of
git://git.gnupg.org/gnupg.git
synced 2025-04-11 22:01:08 +02:00
tests: Fix setup of ephemeral home directories.
* tests/openpgp/defs.scm (with-ephemeral-home-directory): Create configuration files when we enter the context. * tests/openpgp/setup.scm: Do not use an ephemeral home directory. Tests should always use the cwd. * tests/gpgsm/setup.scm: Likewise. * tests/gpgsm/export.scm: Add explicit constructor function. * tests/openpgp/decrypt-session-key.scm: Likewise. * tests/openpgp/decrypt-unwrap-verify.scm: Likewise. -- Previously, ephemeral homedirectories lacked a configuration, hence GnuPG tried to start backend daemons using their installed locations. Fix this by explicitly creating a suitable configuration. GnuPG-bug-id: 3047 Signed-off-by: Justus Winter <justus@g10code.com>
This commit is contained in:
parent
6261611d37
commit
32b75fb774
@ -25,7 +25,7 @@
|
|||||||
(lambda (cert)
|
(lambda (cert)
|
||||||
(lettmp (exported)
|
(lettmp (exported)
|
||||||
(call-check `(,@gpgsm --output ,exported --export ,cert::uid::CN))
|
(call-check `(,@gpgsm --output ,exported --export ,cert::uid::CN))
|
||||||
(with-ephemeral-home-directory
|
(with-ephemeral-home-directory setup-gpgsm-environment
|
||||||
(call-check `(,@gpgsm --import ,exported))
|
(call-check `(,@gpgsm --import ,exported))
|
||||||
(assert (sm-have-public-key? cert)))))
|
(assert (sm-have-public-key? cert)))))
|
||||||
(lambda (cert) cert::uid::CN)
|
(lambda (cert) cert::uid::CN)
|
||||||
|
@ -23,8 +23,6 @@
|
|||||||
(unless (and tarball (not (null? tarball)))
|
(unless (and tarball (not (null? tarball)))
|
||||||
(error "Usage: setup.scm --create-tarball <file> ..."))
|
(error "Usage: setup.scm --create-tarball <file> ..."))
|
||||||
|
|
||||||
(with-ephemeral-home-directory
|
(setenv "GNUPGHOME" (getcwd) #t)
|
||||||
(chdir (getenv "GNUPGHOME"))
|
(create-gpgsmhome)
|
||||||
(create-gpgsmhome)
|
(call-check `(,(tool 'gpgtar) --create --output ,(car tarball) "."))
|
||||||
(stop-agent)
|
|
||||||
(call-check `(,(tool 'gpgtar) --create --output ,(car tarball) ".")))
|
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
(lambda (name)
|
(lambda (name)
|
||||||
(let* ((source (in-srcdir (string-append name ".asc")))
|
(let* ((source (in-srcdir (string-append name ".asc")))
|
||||||
(key (get-session-key source)))
|
(key (get-session-key source)))
|
||||||
(with-ephemeral-home-directory
|
(with-ephemeral-home-directory setup-environment
|
||||||
(tr:do
|
(tr:do
|
||||||
(tr:open source)
|
(tr:open source)
|
||||||
(tr:gpg "" `(--yes --decrypt --override-session-key ,key))
|
(tr:gpg "" `(--yes --decrypt --override-session-key ,key))
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
;; Then, verify the signature with a clean working directory
|
;; Then, verify the signature with a clean working directory
|
||||||
;; containing only Steve's public key.
|
;; containing only Steve's public key.
|
||||||
(with-ephemeral-home-directory
|
(with-ephemeral-home-directory setup-environment
|
||||||
(call-check `(,@gpg --import ,steve's-key))
|
(call-check `(,@gpg --import ,steve's-key))
|
||||||
(call-check `(,@gpg --verify ,unwrapped)))))
|
(call-check `(,@gpg --verify ,unwrapped)))))
|
||||||
'("encsig-2-keys-3" "encsig-2-keys-4")))
|
'("encsig-2-keys-3" "encsig-2-keys-4")))
|
||||||
|
@ -289,14 +289,18 @@
|
|||||||
|
|
||||||
;; Evaluate a sequence of expressions with an ephemeral home
|
;; Evaluate a sequence of expressions with an ephemeral home
|
||||||
;; directory.
|
;; directory.
|
||||||
(define-macro (with-ephemeral-home-directory . expressions)
|
(define-macro (with-ephemeral-home-directory setup-fn . expressions)
|
||||||
(let ((original-home-directory (gensym))
|
(let ((original-home-directory (gensym))
|
||||||
(ephemeral-home-directory (gensym)))
|
(ephemeral-home-directory (gensym))
|
||||||
|
(setup (gensym)))
|
||||||
`(let ((,original-home-directory (getenv "GNUPGHOME"))
|
`(let ((,original-home-directory (getenv "GNUPGHOME"))
|
||||||
(,ephemeral-home-directory (mkdtemp)))
|
(,ephemeral-home-directory (mkdtemp))
|
||||||
|
(,setup (delay (,setup-fn))))
|
||||||
(finally (unlink-recursively ,ephemeral-home-directory)
|
(finally (unlink-recursively ,ephemeral-home-directory)
|
||||||
(dynamic-wind
|
(dynamic-wind
|
||||||
(lambda () (setenv "GNUPGHOME" ,ephemeral-home-directory #t))
|
(lambda ()
|
||||||
|
(force ,setup)
|
||||||
|
(setenv "GNUPGHOME" ,ephemeral-home-directory #t))
|
||||||
(lambda () ,@expressions)
|
(lambda () ,@expressions)
|
||||||
(lambda () (setenv "GNUPGHOME" ,original-home-directory #t)))))))
|
(lambda () (setenv "GNUPGHOME" ,original-home-directory #t)))))))
|
||||||
|
|
||||||
|
@ -40,10 +40,9 @@
|
|||||||
'(gpgconf gpg gpg-agent scdaemon gpgsm dirmngr gpg-connect-agent
|
'(gpgconf gpg gpg-agent scdaemon gpgsm dirmngr gpg-connect-agent
|
||||||
gpg-preset-passphrase gpgtar pinentry)))
|
gpg-preset-passphrase gpgtar pinentry)))
|
||||||
|
|
||||||
(with-ephemeral-home-directory
|
(setenv "GNUPGHOME" (getcwd) #t)
|
||||||
(chdir (getenv "GNUPGHOME"))
|
(create-gpghome)
|
||||||
(create-gpghome)
|
(start-agent)
|
||||||
(start-agent)
|
(create-legacy-gpghome)
|
||||||
(create-legacy-gpghome)
|
(stop-agent)
|
||||||
(stop-agent)
|
(call-check `(,(tool 'gpgtar) --create --output ,(cadr *args*) "."))
|
||||||
(call-check `(,(tool 'gpgtar) --create --output ,(cadr *args*) ".")))
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user