diff options
author | Werner Koch <[email protected]> | 2013-08-12 12:32:21 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2013-08-12 12:32:21 +0000 |
commit | 3ca7e96e384d5872c71ceb3b2e2a05b0c1b7e1a0 (patch) | |
tree | 217f1467bb82074b3983b5a6854e2e75e9d66a7b | |
parent | Improve detection of default gpg by configure. (diff) | |
download | gpgme-3ca7e96e384d5872c71ceb3b2e2a05b0c1b7e1a0.tar.gz gpgme-3ca7e96e384d5872c71ceb3b2e2a05b0c1b7e1a0.zip |
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.
-rw-r--r-- | tests/gpg/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F | bin | 0 -> 682 bytes | |||
-rw-r--r-- | tests/gpg/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD | bin | 0 -> 828 bytes | |||
-rw-r--r-- | tests/gpg/76F7E2B35832976B50A27A282D9B87E44577EB66 | bin | 0 -> 493 bytes | |||
-rw-r--r-- | tests/gpg/7A030357C0F253A5BBCD282FFC4E521B37558F5C | bin | 0 -> 636 bytes | |||
-rw-r--r-- | tests/gpg/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD | bin | 0 -> 636 bytes | |||
-rw-r--r-- | tests/gpg/Makefile.am | 47 | ||||
-rwxr-xr-x | tests/gpg/final.test | 4 | ||||
-rwxr-xr-x | tests/gpg/initial.test | 4 | ||||
-rwxr-xr-x | tests/gpg/start-stop-agent | 45 |
9 files changed, 87 insertions, 13 deletions
diff --git a/tests/gpg/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F b/tests/gpg/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F Binary files differnew file mode 100644 index 00000000..4ec6d135 --- /dev/null +++ b/tests/gpg/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F diff --git a/tests/gpg/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD b/tests/gpg/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD Binary files differnew file mode 100644 index 00000000..16138cf7 --- /dev/null +++ b/tests/gpg/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD diff --git a/tests/gpg/76F7E2B35832976B50A27A282D9B87E44577EB66 b/tests/gpg/76F7E2B35832976B50A27A282D9B87E44577EB66 Binary files differnew file mode 100644 index 00000000..079cc7be --- /dev/null +++ b/tests/gpg/76F7E2B35832976B50A27A282D9B87E44577EB66 diff --git a/tests/gpg/7A030357C0F253A5BBCD282FFC4E521B37558F5C b/tests/gpg/7A030357C0F253A5BBCD282FFC4E521B37558F5C Binary files differnew file mode 100644 index 00000000..ad505abf --- /dev/null +++ b/tests/gpg/7A030357C0F253A5BBCD282FFC4E521B37558F5C diff --git a/tests/gpg/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD b/tests/gpg/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD Binary files differnew file mode 100644 index 00000000..f30792e3 --- /dev/null +++ b/tests/gpg/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD diff --git a/tests/gpg/Makefile.am b/tests/gpg/Makefile.am index dd28d5e0..c9000c93 100644 --- a/tests/gpg/Makefile.am +++ b/tests/gpg/Makefile.am @@ -1,18 +1,18 @@ # Copyright (C) 2000 Werner Koch (dd9jn) # Copyright (C) 2001, 2004, 2005, 2009 g10 Code GmbH -# +# # This file is part of GPGME. -# +# # GPGME is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as # published by the Free Software Foundation; either version 2.1 of the # License, or (at your option) any later version. -# +# # GPGME is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General # Public License for more details. -# +# # You should have received a copy of the GNU Lesser General Public # License along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA @@ -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 + +private_keys = \ + 13CD0F3BDF24BE53FE192D62F18737256FF6E4FD \ + 76F7E2B35832976B50A27A282D9B87E44577EB66 \ + A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD \ + 13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F \ + 7A030357C0F253A5BBCD282FFC4E521B37558F5C -EXTRA_DIST = pubdemo.asc secdemo.asc cipher-1.asc cipher-2.asc \ - geheim.txt pubkey-1.asc seckey-1.asc pinentry + +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,17 +64,25 @@ 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 := +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 \ diff --git a/tests/gpg/final.test b/tests/gpg/final.test new file mode 100755 index 00000000..5148a34b --- /dev/null +++ b/tests/gpg/final.test @@ -0,0 +1,4 @@ +#!/bin/sh + +${srcdir}/start-stop-agent --stop +exit 0 diff --git a/tests/gpg/initial.test b/tests/gpg/initial.test new file mode 100755 index 00000000..1981c99d --- /dev/null +++ b/tests/gpg/initial.test @@ -0,0 +1,4 @@ +#!/bin/sh + +${srcdir}/start-stop-agent --start +exit 0 diff --git a/tests/gpg/start-stop-agent b/tests/gpg/start-stop-agent new file mode 100755 index 00000000..ab47d8d9 --- /dev/null +++ b/tests/gpg/start-stop-agent @@ -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 |