Make test suite workable with GnuPG 2.1.
* tests/gpg/start-stop-agent: New. * tests/gpg/initial.test: New. * tests/gpg/final.test: New. * tests/gpg/Makefile.am (c_tests): New. (TESTS): Move all to c_tests. Add initial.test, final.test, and c_tests. (TESTS_ENVIRONMENT): Add C_ALL=C (private_keys): New. (EXTRA_DIST): Add new files. (./private-keys-v1.d/gpg-sample.stamp): Copy private keys. (all-local): Depend on gpg-sample.stamp. * tests/gpg/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F: New. * tests/gpg/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD: New. * tests/gpg/76F7E2B35832976B50A27A282D9B87E44577EB66: New. * tests/gpg/7A030357C0F253A5BBCD282FFC4E521B37558F5C: New. * tests/gpg/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD: New. -- GnuPG 2.1 requires that the agent knows the private keys. Thus we need to install them. The code should still work with GnuPG < 2.1. To make the whole testing using a agent more robust, the way to start the agent has also be changed.
This commit is contained in:
parent
069ac58037
commit
3ca7e96e38
BIN
tests/gpg/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F
Normal file
BIN
tests/gpg/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F
Normal file
Binary file not shown.
BIN
tests/gpg/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD
Normal file
BIN
tests/gpg/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD
Normal file
Binary file not shown.
BIN
tests/gpg/76F7E2B35832976B50A27A282D9B87E44577EB66
Normal file
BIN
tests/gpg/76F7E2B35832976B50A27A282D9B87E44577EB66
Normal file
Binary file not shown.
BIN
tests/gpg/7A030357C0F253A5BBCD282FFC4E521B37558F5C
Normal file
BIN
tests/gpg/7A030357C0F253A5BBCD282FFC4E521B37558F5C
Normal file
Binary file not shown.
BIN
tests/gpg/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD
Normal file
BIN
tests/gpg/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD
Normal file
Binary file not shown.
@ -20,8 +20,9 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
GPG = @GPG@
|
||||
GPG_AGENT = @GPG_AGENT@
|
||||
|
||||
TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir) GPG_AGENT_INFO=
|
||||
TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir) LC_ALL=C GPG_AGENT_INFO=
|
||||
|
||||
# The keylist tests must come after the import and the edit test.
|
||||
noinst_HEADERS = t-support.h
|
||||
@ -32,17 +33,29 @@ else
|
||||
tests_unix = t-eventloop t-thread1
|
||||
endif
|
||||
|
||||
TESTS = t-encrypt t-encrypt-sym t-encrypt-sign t-sign t-signers \
|
||||
c_tests = \
|
||||
t-encrypt t-encrypt-sym t-encrypt-sign t-sign t-signers \
|
||||
t-decrypt t-verify t-decrypt-verify t-sig-notation t-export \
|
||||
t-import t-trustlist t-edit t-keylist t-keylist-sig t-wait \
|
||||
t-encrypt-large t-file-name t-gpgconf $(tests_unix)
|
||||
|
||||
TESTS = initial.test $(c_tests) final.test
|
||||
|
||||
CLEANFILES = secring.gpg pubring.gpg pubring.kbx trustdb.gpg dirmngr.conf \
|
||||
gpg-agent.conf pubring.kbx~ S.gpg-agent gpg.conf pubring.gpg~ \
|
||||
random_seed
|
||||
random_seed S.gpg-agent
|
||||
|
||||
EXTRA_DIST = pubdemo.asc secdemo.asc cipher-1.asc cipher-2.asc \
|
||||
geheim.txt pubkey-1.asc seckey-1.asc pinentry
|
||||
private_keys = \
|
||||
13CD0F3BDF24BE53FE192D62F18737256FF6E4FD \
|
||||
76F7E2B35832976B50A27A282D9B87E44577EB66 \
|
||||
A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD \
|
||||
13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F \
|
||||
7A030357C0F253A5BBCD282FFC4E521B37558F5C
|
||||
|
||||
|
||||
EXTRA_DIST = start-stop-agent initial.test final.test \
|
||||
pubdemo.asc secdemo.asc cipher-1.asc cipher-2.asc \
|
||||
geheim.txt pubkey-1.asc seckey-1.asc pinentry $(private_keys)
|
||||
|
||||
INCLUDES = -I$(top_builddir)/src
|
||||
|
||||
@ -51,18 +64,26 @@ LDADD = ../../src/libgpgme.la
|
||||
t_thread1_LDADD = ../../src/libgpgme-pthread.la -lpthread
|
||||
|
||||
# We don't run t-genkey in the test suite, because it takes too long
|
||||
noinst_PROGRAMS = $(TESTS) t-genkey
|
||||
noinst_PROGRAMS = $(c_tests) t-genkey
|
||||
|
||||
clean-local:
|
||||
-gpg-connect-agent KILLAGENT /bye
|
||||
-$(srcdir)/start-stop-agent --stop
|
||||
-rm -fR private-keys-v1.d
|
||||
|
||||
all-local: ./gpg.conf ./gpg-agent.conf ./pubring.gpg
|
||||
all-local: ./gpg.conf ./gpg-agent.conf ./pubring.gpg \
|
||||
./private-keys-v1.d/gpg-sample.stamp
|
||||
|
||||
export GNUPGHOME := $(abs_builddir)
|
||||
|
||||
export GPG_AGENT_INFO :=
|
||||
|
||||
./private-keys-v1.d/gpg-sample.stamp: $(srcdir)/$(private_keys)
|
||||
test -d ./private-keys-v1.d || mkdir ./private-keys-v1.d
|
||||
for k in $(private_keys); do \
|
||||
cp $(srcdir)/$$k private-keys-v1.d/$$k.key; \
|
||||
done
|
||||
echo x > ./private-keys-v1.d/gpg-sample.stamp
|
||||
|
||||
./pubring.gpg: $(srcdir)/pubdemo.asc
|
||||
-$(GPG) --no-permission-warning \
|
||||
--import $(srcdir)/pubdemo.asc
|
||||
|
4
tests/gpg/final.test
Executable file
4
tests/gpg/final.test
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
${srcdir}/start-stop-agent --stop
|
||||
exit 0
|
4
tests/gpg/initial.test
Executable file
4
tests/gpg/initial.test
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
${srcdir}/start-stop-agent --start
|
||||
exit 0
|
45
tests/gpg/start-stop-agent
Executable file
45
tests/gpg/start-stop-agent
Executable file
@ -0,0 +1,45 @@
|
||||
#!/bin/sh
|
||||
# Copyright (C) 2013 g10 Code GmbH
|
||||
#
|
||||
# This file is free software; as a special exception the author gives
|
||||
# unlimited permission to copy and/or distribute it, with or without
|
||||
# modifications, as long as this notice is preserved. This file is
|
||||
# distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
# WARRANTY, to the extent permitted by law; without even the implied
|
||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
if [ -z "$(command -v gpg-connect-agent)" ]; then
|
||||
echo "gpg-agent not installed and thus not started" >&2
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
GPG_AGENT_INFO=
|
||||
export GPG_AGENT_INFO
|
||||
|
||||
token=$(echo "gpgme-$(pwd)" | tr ' ' '_')
|
||||
|
||||
if [ "$1" = "--stop" ]; then
|
||||
if [ "$(gpg-connect-agent getval\ $token /bye 2>/dev/null | head -1)" \
|
||||
!= "D set" ]; then
|
||||
echo "gpg-agent not running" >&2
|
||||
exit 0
|
||||
fi
|
||||
echo "stopping gpg-agent " >&2
|
||||
gpg-connect-agent KILLAGENT /bye >/dev/null 2>&1
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$(gpg-connect-agent getval\ $token /bye 2>/dev/null | head -1)" \
|
||||
= "D set" ]; then
|
||||
echo "gpg-agent already running" >&2
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "starting gpg-agent " >&2
|
||||
gpg-connect-agent putval\ $token\ set /bye >/dev/null 2>&1
|
||||
if [ "$(gpg-connect-agent getval\ $token /bye 2>/dev/null | head -1)" \
|
||||
!= "D set" ]; then
|
||||
echo "error starting gpg-agent" >&2
|
||||
exit 1
|
||||
fi
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user