mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-21 10:09:57 +01:00
tests: Use the new gpgconf.ctl based method.
* tests/openpgp/defs.scm: We expect that stuff is now installed. (tools): Fix the names. (intsalled?, bin-prefix): Remove. (tool-hardcoded): Simplify. (gpg-conf'): Simplify. (GNUPG_BUILDDIR): Do not anymore set this envvar. * tests/tpm2dtests/defs.scm: Ditto. -- This simplifies things a bit.
This commit is contained in:
parent
399ebf6d87
commit
84fcd8e6eb
@ -94,14 +94,14 @@ data files.
|
||||
**** GPGSCM_PATH
|
||||
Used to locate the Scheme library as well as code used by the test
|
||||
suite.
|
||||
**** BIN_PREFIX
|
||||
The test suite does not hardcode any paths to tools. If set it is
|
||||
used to locate the tools to test, otherwise the test suite assumes to
|
||||
be run from the build directory.
|
||||
**** GPG_PRESET_PASSPHRASE
|
||||
This tool is not installed by 'make install', hence we need to
|
||||
explicitly override its position. In fact, the location of any tool
|
||||
used by the test suite can be overridden this way. See defs.scm.
|
||||
**** GNUPG_BUILD_ROOT
|
||||
To locate the actual binaries under test the test suite requires that
|
||||
those binaries and associate files are installed to a test location.
|
||||
This envvar gives the root directory of the install tree. See
|
||||
tests/gpgconf.ctl for the way we tell the GnuPG components this
|
||||
location. Note that we can't use that envvar directlyr because this
|
||||
would allow user scripts and other software to accidently mess up the
|
||||
used components.
|
||||
**** argv[0]
|
||||
run-tests.scm depends on being able to re-exec gpgscm. It uses
|
||||
argv[0] for that. Therefore you must use an absolute path to invoke
|
||||
|
@ -111,26 +111,27 @@
|
||||
(assert (equal? (percent-encode "%61") "%2561"))
|
||||
(assert (equal? (percent-encode "foob%61r") "foob%2561r"))
|
||||
|
||||
;; Note that the entry for pinentry relies on the fact that
|
||||
;; GNUPG_BUILD_ROOT has the bin,libexec,share directories (where we
|
||||
;; have installed versions of the tools under test) as well as the
|
||||
;; openpgp directory. The second element in each list is an envvar which
|
||||
;; can be used to specifiy a different tool than the installed one.
|
||||
(define tools
|
||||
'((gpgv "GPGV" "g10/gpgv")
|
||||
(gpg-connect-agent "GPG_CONNECT_AGENT" "tools/gpg-connect-agent")
|
||||
(gpgconf "GPGCONF" "tools/gpgconf")
|
||||
'((gpgv "GPGV" "bin/gpgv")
|
||||
(gpg-connect-agent "GPG_CONNECT_AGENT" "bin/gpg-connect-agent")
|
||||
(gpgconf "GPGCONF" "bin/gpgconf")
|
||||
(gpg-preset-passphrase "GPG_PRESET_PASSPHRASE"
|
||||
"agent/gpg-preset-passphrase")
|
||||
(gpgtar "GPGTAR" "tools/gpgtar")
|
||||
(gpg-zip "GPGZIP" "tools/gpg-zip")
|
||||
(pinentry "PINENTRY" "tests/openpgp/fake-pinentry")))
|
||||
|
||||
(define bin-prefix (getenv "BIN_PREFIX"))
|
||||
(define installed? (not (string=? "" bin-prefix)))
|
||||
(define with-valgrind? (not (string=? (getenv "with_valgrind") "")))
|
||||
"libexec/gpg-preset-passphrase")
|
||||
(gpgtar "GPGTAR" "bin/gpgtar")
|
||||
(pinentry "PINENTRY" "openpgp/fake-pinentry")))
|
||||
|
||||
(define (tool-hardcoded which)
|
||||
(let ((t (assoc which tools)))
|
||||
(getenv' (cadr t)
|
||||
(qualify (if installed?
|
||||
(string-append bin-prefix "/" (basename (caddr t)))
|
||||
(string-append (getenv "objdir") "/" (caddr t)))))))
|
||||
(qualify (string-append (getenv "GNUPG_BUILD_ROOT")
|
||||
"/" (caddr t))))))
|
||||
|
||||
(define with-valgrind? (not (string=? (getenv "with_valgrind") "")))
|
||||
|
||||
;; You can splice VALGRIND into your argument vector to run programs
|
||||
;; under valgrind. For example, to run valgrind on gpg, you may want
|
||||
@ -142,15 +143,10 @@
|
||||
'("/usr/bin/valgrind" -q --leak-check=no --track-origins=yes
|
||||
--error-exitcode=154 --exit-on-first-error=yes))
|
||||
|
||||
(unless installed?
|
||||
(setenv "GNUPG_BUILDDIR" (getenv "objdir") #t))
|
||||
|
||||
(define (gpg-conf . args)
|
||||
(gpg-conf' "" args))
|
||||
(define (gpg-conf' input args)
|
||||
(let ((s (call-popen `(,(tool-hardcoded 'gpgconf)
|
||||
,@(if installed? '()
|
||||
(list '--build-prefix (getenv "objdir")))
|
||||
,@args) input)))
|
||||
(map (lambda (line) (map percent-decode (string-split line #\:)))
|
||||
(string-split-newlines s))))
|
||||
|
@ -61,26 +61,22 @@
|
||||
(assert (equal? (percent-encode "foob%61r") "foob%2561r"))
|
||||
|
||||
(define tools
|
||||
'((gpgv "GPGV" "g10/gpgv")
|
||||
(gpg-connect-agent "GPG_CONNECT_AGENT" "tools/gpg-connect-agent")
|
||||
(gpgconf "GPGCONF" "tools/gpgconf")
|
||||
'((gpgv "GPGV" "bin/gpgv")
|
||||
(gpg-connect-agent "GPG_CONNECT_AGENT" "bin/gpg-connect-agent")
|
||||
(gpgconf "GPGCONF" "bin/gpgconf")
|
||||
(gpg-preset-passphrase "GPG_PRESET_PASSPHRASE"
|
||||
"agent/gpg-preset-passphrase")
|
||||
(gpgtar "GPGTAR" "tools/gpgtar")
|
||||
(gpg-zip "GPGZIP" "tools/gpg-zip")
|
||||
(pinentry "PINENTRY" "tests/openpgp/fake-pinentry")
|
||||
(tpm2daemon "TPM2DAEMON" "tpm2d/tpm2daemon")))
|
||||
"libexec/gpg-preset-passphrase")
|
||||
(gpgtar "GPGTAR" "bin/gpgtar")
|
||||
(tpm2daemon "TPM2DAEMON" "libexec/tpm2daemon")
|
||||
(pinentry "PINENTRY" "openpgp/fake-pinentry")))
|
||||
|
||||
(define bin-prefix (getenv "BIN_PREFIX"))
|
||||
(define installed? (not (string=? "" bin-prefix)))
|
||||
(define with-valgrind? (not (string=? (getenv "with_valgrind") "")))
|
||||
|
||||
(define (tool-hardcoded which)
|
||||
(let ((t (assoc which tools)))
|
||||
(getenv' (cadr t)
|
||||
(qualify (if installed?
|
||||
(string-append bin-prefix "/" (basename (caddr t)))
|
||||
(string-append (getenv "objdir") "/" (caddr t)))))))
|
||||
(qualify (string-append (getenv "GNUPG_BUILD_ROOT")
|
||||
"/" (caddr t))))))
|
||||
|
||||
;; You can splice VALGRIND into your argument vector to run programs
|
||||
;; under valgrind. For example, to run valgrind on gpg, you may want
|
||||
@ -92,15 +88,10 @@
|
||||
'("/usr/bin/valgrind" -q --leak-check=no --track-origins=yes
|
||||
--error-exitcode=154 --exit-on-first-error=yes))
|
||||
|
||||
(unless installed?
|
||||
(setenv "GNUPG_BUILDDIR" (getenv "objdir") #t))
|
||||
|
||||
(define (gpg-conf . args)
|
||||
(gpg-conf' "" args))
|
||||
(define (gpg-conf' input args)
|
||||
(let ((s (call-popen `(,(tool-hardcoded 'gpgconf)
|
||||
,@(if installed? '()
|
||||
(list '--build-prefix (getenv "objdir")))
|
||||
,@args) input)))
|
||||
(map (lambda (line) (map percent-decode (string-split line #\:)))
|
||||
(string-split-newlines s))))
|
||||
|
Loading…
x
Reference in New Issue
Block a user