diff options
-rwxr-xr-x | tests/setup/gnupg | 5 | ||||
-rwxr-xr-x | tests/tstunt/gpg | 32 | ||||
-rwxr-xr-x | tests/tstunt/gpg-locked | 32 |
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 |