summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rwxr-xr-xtests/setup/gnupg5
-rwxr-xr-xtests/tstunt/gpg32
-rwxr-xr-xtests/tstunt/gpg-locked32
3 files changed, 39 insertions, 30 deletions
diff --git a/tests/setup/gnupg b/tests/setup/gnupg
index 9b4d099..c88d40b 100755
--- a/tests/setup/gnupg
+++ b/tests/setup/gnupg
@@ -6,8 +6,11 @@ mkdir -p $tmp/gnupg
cp $troot/gnupg/* $tmp/gnupg
chmod go-rw $tmp/gnupg/*
+export DGIT_TEST_GNUPG_GLOBAL_LOCK=$tmp/gnupg/dgit-test-global-lock
+
setup='
export GNUPGHOME=$tmp/gnupg
+ export DGIT_TEST_GNUPG_GLOBAL_LOCK
cat >$tmp/gnupg/gpg-agent.conf <<END
log-file $tmp/gnupg/AGENT.log
@@ -24,6 +27,6 @@ eval "$setup"
gpg --list-secret
-t-setup-done '' 'gnupg' "$setup"
+t-setup-done 'DGIT_TEST_GNUPG_GLOBAL_LOCK' 'gnupg' "$setup"
t-ok
diff --git a/tests/tstunt/gpg b/tests/tstunt/gpg
index 892b9c8..679a6b8 100755
--- a/tests/tstunt/gpg
+++ b/tests/tstunt/gpg
@@ -1,32 +1,6 @@
#!/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
+exec \
+with-lock-ex -w "$DGIT_TEST_GNUPG_GLOBAL_LOCK" \
+ $tmp "$DGIT_TEST_TROOT"/tstunt/gpg-locked "$@"
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