diff options
author | Darren Tucker <dtucker@cvs.openbsd.org> | 2022-04-20 05:24:14 +0000 |
---|---|---|
committer | Darren Tucker <dtucker@cvs.openbsd.org> | 2022-04-20 05:24:14 +0000 |
commit | 94c23ba9cba6b7ac8bcf8075d54853da3fbd98cb (patch) | |
tree | 7a5442d3238559c916ca5053a4c884b83d6b9121 /regress/usr.bin | |
parent | 11fd22010852d6233e84d3439d1b0bf4d9c83cde (diff) |
Simplify forward-control test. Since we no longer need to support SSH1
we don't need to run shell commands on the other end of the connection
and can use ssh -N instead. This also makes the test less racy.
Diffstat (limited to 'regress/usr.bin')
-rw-r--r-- | regress/usr.bin/ssh/forward-control.sh | 34 |
1 files changed, 9 insertions, 25 deletions
diff --git a/regress/usr.bin/ssh/forward-control.sh b/regress/usr.bin/ssh/forward-control.sh index 9d8286a09d2..3dcddbc7e8b 100644 --- a/regress/usr.bin/ssh/forward-control.sh +++ b/regress/usr.bin/ssh/forward-control.sh @@ -1,4 +1,4 @@ -# $OpenBSD: forward-control.sh,v 1.8 2021/05/07 09:23:40 dtucker Exp $ +# $OpenBSD: forward-control.sh,v 1.9 2022/04/20 05:24:13 dtucker Exp $ # Placed in the Public Domain. tid="sshd control of local and remote forwarding" @@ -6,19 +6,7 @@ tid="sshd control of local and remote forwarding" LFWD_PORT=3320 RFWD_PORT=3321 CTL=$OBJ/ctl-sock -READY=$OBJ/ready - -wait_for_file_to_appear() { - _path=$1 - _n=0 - while test ! -e $_path ; do - test $_n -eq 1 && trace "waiting for $_path to appear" - _n=`expr $_n + 1` - test $_n -ge 10 && return 1 - sleep 1 - done - return 0 -} +WAIT_SECONDS=20 wait_for_process_to_exit() { _pid=$1 @@ -26,7 +14,7 @@ wait_for_process_to_exit() { while kill -0 $_pid 2>/dev/null ; do test $_n -eq 1 && trace "waiting for $_pid to exit" _n=`expr $_n + 1` - test $_n -ge 10 && return 1 + test $_n -ge $WAIT_SECONDS && return 1 sleep 1 done return 0 @@ -36,19 +24,18 @@ wait_for_process_to_exit() { check_lfwd() { _expected=$1 _message=$2 - rm -f $READY ${SSH} -F $OBJ/ssh_proxy \ -L$LFWD_PORT:127.0.0.1:$PORT \ -o ExitOnForwardFailure=yes \ - -n host "sleep 60 & echo \$! > $READY ; wait " \ - >/dev/null 2>&1 & + -n -N host >/dev/null 2>&1 & _sshpid=$! - wait_for_file_to_appear $READY || \ + if test $? -ne 0; then fatal "check_lfwd ssh fail: $_message" + fi ${SSH} -F $OBJ/ssh_config -p $LFWD_PORT \ -oConnectionAttempts=10 host true >/dev/null 2>&1 _result=$? - kill $_sshpid `cat $READY` 2>/dev/null + kill $_sshpid 2>/dev/null wait_for_process_to_exit $_sshpid if test "x$_expected" = "xY" -a $_result -ne 0 ; then fail "check_lfwd failed (expecting success): $_message" @@ -65,20 +52,17 @@ check_lfwd() { check_rfwd() { _expected=$1 _message=$2 - rm -f $READY ${SSH} -F $OBJ/ssh_proxy \ -R127.0.0.1:$RFWD_PORT:127.0.0.1:$PORT \ -o ExitOnForwardFailure=yes \ - -n host "sleep 60 & echo \$! > $READY ; wait " \ - >/dev/null 2>&1 & + -n -N host >/dev/null 2>&1 & _sshpid=$! - wait_for_file_to_appear $READY _result=$? if test $_result -eq 0 ; then ${SSH} -F $OBJ/ssh_config -p $RFWD_PORT \ -oConnectionAttempts=10 host true >/dev/null 2>&1 _result=$? - kill $_sshpid `cat $READY` 2>/dev/null + kill $_sshpid 2>/dev/null wait_for_process_to_exit $_sshpid fi if test "x$_expected" = "xY" -a $_result -ne 0 ; then |