summaryrefslogtreecommitdiff
path: root/tests/tstunt/gpg-locked
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2018-01-07 11:35:34 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2018-01-07 16:18:53 +0000
commit640602b53ec3a387aef776d6a727118e1784f6d7 (patch)
treec9ce7688135f51158c35f0676d5402673aacfbc2 /tests/tstunt/gpg-locked
parentedbc2fc23a2df787cc7c0d998df9724dcaceaaf7 (diff)
test suite: gnupg: Run with a lock held
This is also an attempt to reduce the impact of the gnupg races. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'tests/tstunt/gpg-locked')
-rwxr-xr-xtests/tstunt/gpg-locked32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/tstunt/gpg-locked b/tests/tstunt/gpg-locked
new file mode 100755
index 0000000..892b9c8
--- /dev/null
+++ b/tests/tstunt/gpg-locked
@@ -0,0 +1,32 @@
+#!/bin/sh
+set -e
+
+for attempt in '' ' ' exec; do
+
+set +e
+$attempt \
+$DGIT_TEST_REAL_GPG \
+ --agent-program=$DGIT_STUNT_AGENT \
+ "$@"
+rc=$?
+set -e
+
+if [ $rc != 2 ]; then exit $rc; fi
+
+echo >&2 "WARNING - GNUPG FAILED $rc - STUNT GNUPG $attempt $*"
+
+sh -ec '
+ if [ "x$DGIT_GNUPG_STUNT_ERRLOG" != x ]; then
+ exec >"$DGIT_GNUPG_STUNT_ERRLOG"
+ else
+ exec 2>/dev/null
+ fi
+ exec >/dev/tty
+ printf "%s\n" "$*"
+' x "GNUPG WRAPPER - TROUBLE - $HOME $GNUPGHOME - FAILED $rc $attempt $*"
+
+sleep 10
+
+done
+
+exit 127