Mercurial > hg
changeset 29873:80ba176bad62
test-gpg: start gpg-agent by gpg-connect-agent only if GnuPG v2.1+ detected
Danek Duvall found that gpg-connect-agent of GnuPG 2.0 never starts gpg-agent
daemon. The 2.1 way is documented as "gpg-coonect-agent /bye" [1], which
appears to be different from the 2.0 way [2].
[1]: https://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html
[2]: https://www.gnupg.org/documentation/manuals/gnupg-2.0/Invoking-GPG_002dAGENT.html
Since "gpg-agent --daemon" of GnuPG 2.1 never prints environment variables,
"eval $(gpg-agent --daemon)" would be valid only for GnuPG < 2.1, and we'll
need a different workaround for 2.0. I have no 2.0 environment, I won't
implement it.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Mon, 29 Aug 2016 22:59:39 +0900 |
parents | 58db005d870e |
children | 0099e29fc95c |
files | tests/hghave.py tests/test-gpg.t |
diffstat | 2 files changed, 12 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/hghave.py Fri Aug 26 00:16:51 2016 +0000 +++ b/tests/hghave.py Mon Aug 29 22:59:39 2016 +0900 @@ -357,6 +357,10 @@ def has_gpg2(): return matchoutput('gpg --version 2>&1', br'GnuPG[^0-9]+2\.') +@check("gpg21", "gpg client v2.1+") +def has_gpg21(): + return matchoutput('gpg --version 2>&1', br'GnuPG[^0-9]+2\.(?!0)') + @check("unix-permissions", "unix-style permissions") def has_unix_permissions(): d = tempfile.mkdtemp(dir='.', prefix=tempprefix)
--- a/tests/test-gpg.t Fri Aug 26 00:16:51 2016 +0000 +++ b/tests/test-gpg.t Mon Aug 29 22:59:39 2016 +0900 @@ -12,11 +12,16 @@ $ GNUPGHOME="$TESTTMP/gpg"; export GNUPGHOME $ cp -R "$TESTDIR/gpg" "$GNUPGHOME" -Start gpg-agent, which is required by GnuPG v2, and migrate secret keys +Start gpg-agent, which is required by GnuPG v2 + +#if gpg21 + $ gpg-connect-agent -q --subst /serverpid '/echo ${get serverpid}' /bye \ + > >> $DAEMON_PIDS +#endif + +and migrate secret keys #if gpg2 - $ gpg-connect-agent -q --subst /serverpid '/echo ${get serverpid}' /bye \ - > >> $DAEMON_PIDS $ gpg --no-permission-warning --no-secmem-warning --list-secret-keys \ > > /dev/null 2>&1 #endif