The dgit test suite involves setting up a dummy home directory with
some dummy keys and making and verifying some dummy signatures. There
is one of these per test.
When the test suite is run under adt-run --- adt-virt-schroot, the
agents are automatically started but nothing kills them.
This results in problems: schroot cannot unmount the chroot and cannot
clean up properly.
I haven't checked but I am pretty sure that if I run the test suite
natively with gnupg2, it will leak enormous numbers of gpg agent
IMO: there should be a way to get gnupg2 to do everything synchronously;
that is, if it needs an agent, to spawn one which does not listen on a
socket, but rather just has an existing connection to its parent and
which will die when the parent does.
Also gpg agent processes should automatically exit if their HOME
ceases to exist (or if they cease to be the process listening on their
socket for some other reason)
This problem, and how to deal with it, should be better documented.
(I looked in gpg-agent(1). I searched for "agent" and didn't find
any information that looked helpful; I did find information that
suggests that `drmngr' may be troublesome too.) NB gpg-agent(1)
refers to gpg2(1) and gpgsm(1) which do not exist.
In particular, `gpgconf --kill gpg-agent' should be documented.
NB that I don't think that expecting the dgit test suite to run
`gpgconf --kill-agent' after every test is reasonable. Currently
there is _no_ code for running a specific positive command after
running a test. Given the nature of test suites and indeed the nature
of error handling on posix systems, it's not clear that such a thing
would be sensible.
Ian Jackson <ijack...@chiark.greenend.org.uk> These opinions are my own.
If I emailed you from an address @fyvzl.net or @evade.org.uk, that is
a private address which bypasses my fierce spamfilter.