diff options
Diffstat (limited to 'regress/test-exec.sh')
| -rw-r--r-- | regress/test-exec.sh | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/regress/test-exec.sh b/regress/test-exec.sh index 9fb02d1cbc8c..c51f8eac162f 100644 --- a/regress/test-exec.sh +++ b/regress/test-exec.sh @@ -1,9 +1,9 @@ -# $OpenBSD: test-exec.sh,v 1.89 2022/01/06 22:14:25 dtucker Exp $ +# $OpenBSD: test-exec.sh,v 1.92 2022/07/25 07:12:45 dtucker Exp $ # Placed in the Public Domain. #SUDO=sudo -if [ ! -x "$TEST_SSH_ELAPSED_TIMES" ]; then +if [ ! -z "$TEST_SSH_ELAPSED_TIMES" ]; then STARTTIME=`date '+%s'` fi @@ -250,6 +250,30 @@ if [ "x$TEST_REGRESS_LOGFILE" = "x" ]; then TEST_REGRESS_LOGFILE=$OBJ/regress.log fi +# If set, keep track of successful tests and skip them them if we've +# previously completed that test. +if [ "x$TEST_REGRESS_CACHE_DIR" != "x" ]; then + if [ ! -d "$TEST_REGRESS_CACHE_DIR" ]; then + mkdir -p "$TEST_REGRESS_CACHE_DIR" + fi + TEST="`basename $SCRIPT .sh`" + CACHE="${TEST_REGRESS_CACHE_DIR}/${TEST}.cache" + for i in ${SSH} ${SSHD} ${SSHAGENT} ${SSHADD} ${SSHKEYGEN} ${SCP} \ + ${SFTP} ${SFTPSERVER} ${SSHKEYSCAN}; do + case $i in + /*) bin="$i" ;; + *) bin="`which $i`" ;; + esac + if [ "$bin" -nt "$CACHE" ]; then + rm -f "$CACHE" + fi + done + if [ -f "$CACHE" ]; then + echo ok cached $CACHE + exit 0 + fi +fi + # truncate logfiles >$TEST_SSH_LOGFILE >$TEST_SSHD_LOGFILE @@ -296,7 +320,7 @@ export SSH_PKCS11_HELPER SSH_SK_HELPER #echo $SSH $SSHD $SSHAGENT $SSHADD $SSHKEYGEN $SSHKEYSCAN $SFTP $SFTPSERVER $SCP # Portable specific functions -have_prog() +which() { saved_IFS="$IFS" IFS=":" @@ -304,13 +328,21 @@ have_prog() do if [ -x $i/$1 ]; then IFS="$saved_IFS" + echo "$i/$1" return 0 fi done IFS="$saved_IFS" + echo "$i/$1" return 1 } +have_prog() +{ + which "$1" >/dev/null 2>&1 + return $? +} + jot() { awk "BEGIN { for (i = $2; i < $2 + $1; i++) { printf \"%d\n\", i } exit }" } @@ -763,6 +795,9 @@ fi if [ $RESULT -eq 0 ]; then verbose ok $tid + if [ "x$CACHE" != "x" ]; then + touch "$CACHE" + fi else echo failed $tid fi |
