chiark / gitweb /
test suite: gnupg: Have three goes, rather than two
[dgit.git] / tests / tstunt / gpg
index d71aa63f359d601081ef215188ef69d5cc09f120..892b9c8cf446b255a221276463553c88fc83a0f7 100755 (executable)
@@ -1,6 +1,32 @@
 #!/bin/sh
 set -e
-exec                                                   \
+
+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