tests: Make agent spawning more robust.
authorJustus Winter <justus@g10code.com>
Thu, 13 Jul 2017 13:41:11 +0000 (15:41 +0200)
committerJustus Winter <justus@g10code.com>
Thu, 13 Jul 2017 13:41:11 +0000 (15:41 +0200)
* tests/gpgsm/Makefile.am (gpgsm.conf): Add agent-program directive.
* tests/start-stop-agent: Update agent-program directive.
--
Update the 'agent-program' configuration directive to point to the
same agent that we are starting.  Previously, it was possible that a
different agent was started if 'make check' was run with a different
PATH.

Signed-off-by: Justus Winter <justus@g10code.com>
tests/gpgsm/Makefile.am
tests/start-stop-agent

index c73faea..a5667a8 100644 (file)
@@ -65,6 +65,7 @@ BUILT_SOURCES = gpgsm.conf trustlist.txt pubring-stamp \
 ./gpgsm.conf:
        echo disable-crl-checks > ./gpgsm.conf
        echo faked-system-time 1008241200 >> ./gpgsm.conf
+       echo "agent-program `which $(GPG_AGENT)`|--debug-quick-random" >> ./gpg.conf
 
 ./private-keys-v1.d/gpg-sample.stamp: $(srcdir)/$(key_id)
        -gpgconf --kill all
index 3ce6f22..9514e0a 100755 (executable)
@@ -30,6 +30,18 @@ if [ "$1" = "--stop" ]; then
   exit 0
 fi
 
+# Update 'agent-program' in the configuration files to make sure we
+# will always start exactly this agent again if we ever need to.
+for F in gpg.conf gpgsm.conf
+do
+  if test -f "$GNUPGHOME/$F"
+  then
+      mv "$GNUPGHOME/$F" "$GNUPGHOME/$F~"
+      sed -e "s#^agent-program.*#agent-program ${GPG_AGENT}|--debug-quick-random#" \
+          >"$GNUPGHOME/$F" <"$GNUPGHOME/$F~"
+  fi
+done
+
 if [ "$(gpg-connect-agent --no-autostart getval\ $token /bye 2>/dev/null | head -1)" \
       = "D set" ]; then
   echo "gpg-agent already running" >&2