mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
tests: New way to make use of gpgconf.ctl in tests.
* Makefile.am (all-local): New to setup symlinks. (distclean-local): New. * tests/Makefile.am: Remove the gpgconf related targets. Just keep gpgconf.ctl.in in EXTRA_DIST * tests/cms/Makefile.am (GNUPG_BUILD_ROOT): * tests/gpgme/Makefile.am (GPGSCM_PATH): * tests/openpgp/Makefile.am (GNUPG_BUILD_ROOT): * tests/pkits/Makefile.am (GNUPG_BUILD_ROOT): * tests/tpm2dtests/defs.scm (tools): Revert to the former values. * tests/openpgp/defs.scm (tools): Ditto. -- This Fixes-commit: 399ebf6d873d4178c1d527aa4df34bf16a76360e Fixes-commit: 84fcd8e6eb7e0786399e1f6461c3f60b0db2d070 because we ran into problems with the idea of first doing a test-install for the checks. "make distcheck" turned out to be too problematic. Symlinks are a better way of doing this. Also fixes GnuPG-bug-id: 5634
This commit is contained in:
parent
257632f58d
commit
bcd5feec0e
36
Makefile.am
36
Makefile.am
@ -120,6 +120,42 @@ SUBDIRS = m4 common regexp kbx \
|
|||||||
dist_doc_DATA = README
|
dist_doc_DATA = README
|
||||||
|
|
||||||
|
|
||||||
|
# Create test directory etc/gnupg so that we have an
|
||||||
|
# empty sysconfdir and bin where we put out gpgconf.ctl.
|
||||||
|
# we also put symlinks to the actual binaries there.
|
||||||
|
# Unfortunately there is no all-hook, but symlinks have the
|
||||||
|
# nice property that they can be created even for not yet
|
||||||
|
# created files.
|
||||||
|
all-local:
|
||||||
|
@-$(MKDIR_P) bin etc/gnupg libexec
|
||||||
|
@cat $(srcdir)/tests/gpgconf.ctl.in > bin/gpgconf.ctl
|
||||||
|
(set -e; cd bin; \
|
||||||
|
for i in gpg gpgv; \
|
||||||
|
do ln -sf ../g10/$$i .; done; \
|
||||||
|
for i in gpgsm; \
|
||||||
|
do ln -sf ../sm/$$i .; done; \
|
||||||
|
for i in gpg-agent; \
|
||||||
|
do ln -sf ../agent/$$i .; done; \
|
||||||
|
for i in dirmngr; \
|
||||||
|
do ln -sf ../dirmngr/$$i .; done; \
|
||||||
|
for i in gpgconf gpg-connect-agent gpgtar gpg-card; \
|
||||||
|
do ln -sf ../tools/$$i .; done; \
|
||||||
|
cd ../libexec ; \
|
||||||
|
for i in keyboxd; \
|
||||||
|
do ln -sf ../kbx/$$i .; done; \
|
||||||
|
for i in scdaemon; \
|
||||||
|
do ln -sf ../scd/$$i .; done; \
|
||||||
|
for i in gpg-preset-passphrase; \
|
||||||
|
do ln -sf ../agent/$$i .; done; \
|
||||||
|
echo "created links to binaries" )
|
||||||
|
|
||||||
|
|
||||||
|
# Clean up our test directories but take care that this is never
|
||||||
|
# called from / or /usr/local
|
||||||
|
distclean-local:
|
||||||
|
@if pwd | grep gnupg 2>/dev/null; then rm -rf etc bin libexec; fi
|
||||||
|
|
||||||
|
|
||||||
dist-hook: gen-ChangeLog
|
dist-hook: gen-ChangeLog
|
||||||
|
|
||||||
distcheck-hook:
|
distcheck-hook:
|
||||||
|
@ -44,31 +44,3 @@ noinst_PROGRAMS = asschk
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
asschk_SOURCES = asschk.c
|
asschk_SOURCES = asschk.c
|
||||||
|
|
||||||
TESTINST_DIRS = bin sbin libexec share etc
|
|
||||||
|
|
||||||
clean-local: clean-local-testinst
|
|
||||||
|
|
||||||
# We do a cd ../tests here so that we make sure tha the bin dir etc
|
|
||||||
# are under our tests dir. This is failsafe thingy in case this
|
|
||||||
# Makefile rule is accidently run /.
|
|
||||||
clean-local-testinst:
|
|
||||||
-(cd ../tests && rm -rf $(TESTINST_DIRS))
|
|
||||||
|
|
||||||
# Before we can run any tests we need to make sure that we have a
|
|
||||||
# proper test installation with this dir (tests) as root dir. It is
|
|
||||||
# too hard to track the built files here thus we do the install step
|
|
||||||
# always.
|
|
||||||
check-recursive: bin/gpgconf.ctl
|
|
||||||
|
|
||||||
bin/gpgconf.ctl: FORCE
|
|
||||||
@echo '==== Installing into a test root ======'
|
|
||||||
@-mkdir bin 2>/dev/null
|
|
||||||
@cat $(srcdir)/gpgconf.ctl.in > bin/gpgconf.ctl.tmp
|
|
||||||
cd .. && \
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) install prefix=$(abs_top_builddir)/tests
|
|
||||||
@mv bin/gpgconf.ctl.tmp bin/gpgconf.ctl
|
|
||||||
@echo '==== Finished installing into a test root ======'
|
|
||||||
|
|
||||||
|
|
||||||
.PHONY: FORCE clean-local-testinst
|
|
||||||
|
@ -32,7 +32,7 @@ AM_CFLAGS =
|
|||||||
# if the shell used for inittests would uses an internal version of
|
# if the shell used for inittests would uses an internal version of
|
||||||
# pwd which handles symlinks differently.
|
# pwd which handles symlinks differently.
|
||||||
OLD_TESTS_ENVIRONMENT = GNUPGHOME=`/bin/pwd` GPG_AGENT_INFO= LC_ALL=C \
|
OLD_TESTS_ENVIRONMENT = GNUPGHOME=`/bin/pwd` GPG_AGENT_INFO= LC_ALL=C \
|
||||||
GNUPG_BUILD_ROOT="$(abs_top_builddir)/tests" \
|
GNUPG_BUILD_ROOT="$(abs_top_builddir)" \
|
||||||
GPGSM="$(GPGSM)" "$(srcdir)/runtest"
|
GPGSM="$(GPGSM)" "$(srcdir)/runtest"
|
||||||
|
|
||||||
TESTS_ENVIRONMENT = LC_ALL=C \
|
TESTS_ENVIRONMENT = LC_ALL=C \
|
||||||
@ -40,7 +40,7 @@ TESTS_ENVIRONMENT = LC_ALL=C \
|
|||||||
PATH="../gpgscm:$(PATH)" \
|
PATH="../gpgscm:$(PATH)" \
|
||||||
abs_top_srcdir="$(abs_top_srcdir)" \
|
abs_top_srcdir="$(abs_top_srcdir)" \
|
||||||
objdir="$(abs_top_builddir)" \
|
objdir="$(abs_top_builddir)" \
|
||||||
GNUPG_BUILD_ROOT="$(abs_top_builddir)/tests" \
|
GNUPG_BUILD_ROOT="$(abs_top_builddir)" \
|
||||||
GPGSCM_PATH="$(abs_top_srcdir)/tests/gpgscm"
|
GPGSCM_PATH="$(abs_top_srcdir)/tests/gpgscm"
|
||||||
|
|
||||||
XTESTS = \
|
XTESTS = \
|
||||||
|
@ -33,7 +33,7 @@ TESTS_ENVIRONMENT = LC_ALL=C \
|
|||||||
PATH="../gpgscm:$(PATH)" \
|
PATH="../gpgscm:$(PATH)" \
|
||||||
abs_top_srcdir=$(abs_top_srcdir) \
|
abs_top_srcdir=$(abs_top_srcdir) \
|
||||||
objdir=$(abs_top_builddir) \
|
objdir=$(abs_top_builddir) \
|
||||||
GNUPG_BUILD_ROOT="$(abs_top_builddir)/tests" \
|
GNUPG_BUILD_ROOT="$(abs_top_builddir)" \
|
||||||
GPGSCM_PATH=$(abs_top_srcdir)/tests/gpgscm
|
GPGSCM_PATH=$(abs_top_srcdir)/tests/gpgscm
|
||||||
|
|
||||||
# XXX: Currently, one cannot override automake's 'check' target. As a
|
# XXX: Currently, one cannot override automake's 'check' target. As a
|
||||||
|
@ -38,7 +38,7 @@ TESTS_ENVIRONMENT = LC_ALL=C \
|
|||||||
PATH="../gpgscm:$(PATH)" \
|
PATH="../gpgscm:$(PATH)" \
|
||||||
abs_top_srcdir="$(abs_top_srcdir)" \
|
abs_top_srcdir="$(abs_top_srcdir)" \
|
||||||
objdir="$(abs_top_builddir)" \
|
objdir="$(abs_top_builddir)" \
|
||||||
GNUPG_BUILD_ROOT="$(abs_top_builddir)/tests" \
|
GNUPG_BUILD_ROOT="$(abs_top_builddir)" \
|
||||||
GPGSCM_PATH="$(abs_top_srcdir)/tests/gpgscm"
|
GPGSCM_PATH="$(abs_top_srcdir)/tests/gpgscm"
|
||||||
|
|
||||||
XTESTS = \
|
XTESTS = \
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# Emacs, this is an -*- org -*- file.
|
# Emacs, this is an -*- org -*- file.
|
||||||
|
#+STARTUP: showall
|
||||||
|
|
||||||
* How to run the test suite
|
* How to run the test suite
|
||||||
** tldr: How to run all tests fast.
|
** tldr: How to run all tests fast.
|
||||||
@ -95,11 +96,9 @@ data files.
|
|||||||
Used to locate the Scheme library as well as code used by the test
|
Used to locate the Scheme library as well as code used by the test
|
||||||
suite.
|
suite.
|
||||||
**** GNUPG_BUILD_ROOT
|
**** GNUPG_BUILD_ROOT
|
||||||
To locate the actual binaries under test the test suite requires that
|
This envvar gives the root directory of the build tree. See
|
||||||
those binaries and associate files are installed to a test location.
|
tests/gpgconf.ctl.in for the way we tell the GnuPG components this
|
||||||
This envvar gives the root directory of the install tree. See
|
location. Note that we can't use that envvar directly because this
|
||||||
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
|
would allow user scripts and other software to accidently mess up the
|
||||||
used components.
|
used components.
|
||||||
**** argv[0]
|
**** argv[0]
|
||||||
|
@ -112,18 +112,17 @@
|
|||||||
(assert (equal? (percent-encode "foob%61r") "foob%2561r"))
|
(assert (equal? (percent-encode "foob%61r") "foob%2561r"))
|
||||||
|
|
||||||
;; Note that the entry for pinentry relies on the fact that
|
;; Note that the entry for pinentry relies on the fact that
|
||||||
;; GNUPG_BUILD_ROOT has the bin,libexec,share directories (where we
|
;; GNUPG_BUILD_ROOT is the top of the build root. The second element
|
||||||
;; have installed versions of the tools under test) as well as the
|
;; in each list is an envvar which can be used to specifiy a different
|
||||||
;; openpgp directory. The second element in each list is an envvar which
|
;; tool than the installed one.
|
||||||
;; can be used to specifiy a different tool than the installed one.
|
|
||||||
(define tools
|
(define tools
|
||||||
'((gpgv "GPGV" "bin/gpgv")
|
'((gpgv "GPGV" "g10/gpgv")
|
||||||
(gpg-connect-agent "GPG_CONNECT_AGENT" "bin/gpg-connect-agent")
|
(gpg-connect-agent "GPG_CONNECT_AGENT" "tools/gpg-connect-agent")
|
||||||
(gpgconf "GPGCONF" "bin/gpgconf")
|
(gpgconf "GPGCONF" "tools/gpgconf")
|
||||||
(gpg-preset-passphrase "GPG_PRESET_PASSPHRASE"
|
(gpg-preset-passphrase "GPG_PRESET_PASSPHRASE"
|
||||||
"libexec/gpg-preset-passphrase")
|
"agent/gpg-preset-passphrase")
|
||||||
(gpgtar "GPGTAR" "bin/gpgtar")
|
(gpgtar "GPGTAR" "tools/gpgtar")
|
||||||
(pinentry "PINENTRY" "openpgp/fake-pinentry")))
|
(pinentry "PINENTRY" "tests/openpgp/fake-pinentry")))
|
||||||
|
|
||||||
(define (tool-hardcoded which)
|
(define (tool-hardcoded which)
|
||||||
(let ((t (assoc which tools)))
|
(let ((t (assoc which tools)))
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
GPGSM = ../../sm/gpgsm
|
GPGSM = ../../sm/gpgsm
|
||||||
|
|
||||||
TESTS_ENVIRONMENT = GNUPGHOME=`/bin/pwd` GPG_AGENT_INFO= LC_ALL=C \
|
TESTS_ENVIRONMENT = GNUPGHOME=`/bin/pwd` GPG_AGENT_INFO= LC_ALL=C \
|
||||||
GNUPG_BUILD_ROOT="$(abs_top_builddir)/tests" \
|
GNUPG_BUILD_ROOT="$(abs_top_builddir)" \
|
||||||
GPGSM=$(GPGSM) silent=yes
|
GPGSM=$(GPGSM) silent=yes
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,14 +61,14 @@
|
|||||||
(assert (equal? (percent-encode "foob%61r") "foob%2561r"))
|
(assert (equal? (percent-encode "foob%61r") "foob%2561r"))
|
||||||
|
|
||||||
(define tools
|
(define tools
|
||||||
'((gpgv "GPGV" "bin/gpgv")
|
'((gpgv "GPGV" "g10/gpgv")
|
||||||
(gpg-connect-agent "GPG_CONNECT_AGENT" "bin/gpg-connect-agent")
|
(gpg-connect-agent "GPG_CONNECT_AGENT" "tools/gpg-connect-agent")
|
||||||
(gpgconf "GPGCONF" "bin/gpgconf")
|
(gpgconf "GPGCONF" "tools/gpgconf")
|
||||||
(gpg-preset-passphrase "GPG_PRESET_PASSPHRASE"
|
(gpg-preset-passphrase "GPG_PRESET_PASSPHRASE"
|
||||||
"libexec/gpg-preset-passphrase")
|
"agent/gpg-preset-passphrase")
|
||||||
(gpgtar "GPGTAR" "bin/gpgtar")
|
(gpgtar "GPGTAR" "tools/gpgtar")
|
||||||
(tpm2daemon "TPM2DAEMON" "libexec/tpm2daemon")
|
(tpm2daemon "TPM2DAEMON" "tpm2d/tpm2daemon")
|
||||||
(pinentry "PINENTRY" "openpgp/fake-pinentry")))
|
(pinentry "PINENTRY" "tests/openpgp/fake-pinentry")))
|
||||||
|
|
||||||
(define with-valgrind? (not (string=? (getenv "with_valgrind") "")))
|
(define with-valgrind? (not (string=? (getenv "with_valgrind") "")))
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user