diff options
author | Damien Miller <djm@cvs.openbsd.org> | 2004-06-13 15:04:09 +0000 |
---|---|---|
committer | Damien Miller <djm@cvs.openbsd.org> | 2004-06-13 15:04:09 +0000 |
commit | 35182960af462ade57bf55c41c878b6578567a52 (patch) | |
tree | 9984ebc9a8d2465ed09993b7e5fb1586fb013929 /regress/usr.bin/ssh/multiplex.sh | |
parent | 0d912f1959a05f98ebdbe6fcb1a4342c3b06196c (diff) |
regress test for client multiplexing; ok markus@
Diffstat (limited to 'regress/usr.bin/ssh/multiplex.sh')
-rw-r--r-- | regress/usr.bin/ssh/multiplex.sh | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/regress/usr.bin/ssh/multiplex.sh b/regress/usr.bin/ssh/multiplex.sh new file mode 100644 index 00000000000..70a4e677f31 --- /dev/null +++ b/regress/usr.bin/ssh/multiplex.sh @@ -0,0 +1,55 @@ +# $OpenBSD: multiplex.sh,v 1.1 2004/06/13 15:04:08 djm Exp $ +# Placed in the Public Domain. + +CTL=$OBJ/ctl-sock + +tid="connection multiplexing" + +start_sshd + +trace "start master, fork to background" +${SSH} -2 -MS$CTL -F $OBJ/ssh_config -f somehost sleep 60 + +trace "ssh transfer over multiplexed connection and check result" +${SSH} -S$CTL otherhost cat /bin/ls > $OBJ/ls.copy +test -f $OBJ/ls.copy || fail "failed copy /bin/ls" +cmp /bin/ls $OBJ/ls.copy || fail "corrupted copy of /bin/ls" + +trace "ssh transfer over multiplexed connection and check result" +${SSH} -S $CTL otherhost cat /bin/ls > $OBJ/ls.copy +test -f $OBJ/ls.copy || fail "failed copy /bin/ls" +cmp /bin/ls $OBJ/ls.copy || fail "corrupted copy of /bin/ls" + +rm -f $OBJ/ls.copy +trace "sftp transfer over multiplexed connection and check result" +echo "get /bin/ls $OBJ/ls.copy" | \ + ${SFTP} -oControlPath=$CTL otherhost +test -f $OBJ/ls.copy || fail "failed copy /bin/ls" +cmp /bin/ls $OBJ/ls.copy || fail "corrupted copy of /bin/ls" + +rm -f $OBJ/ls.copy +trace "scp transfer over multiplexed connection and check result" +${SCP} -oControlPath=$CTL otherhost:/bin/ls $OBJ/ls.copy +test -f $OBJ/ls.copy || fail "failed copy /bin/ls" +cmp /bin/ls $OBJ/ls.copy || fail "corrupted copy of /bin/ls" + +for s in 0 1 4 5 44; do + trace "exit status $s over multiplexed connection" + verbose "test $tid: status $s" + ${SSH} -S $CTL otherhost exit $s + r=$? + if [ $r -ne $s ]; then + fail "exit code mismatch for protocol $p: $r != $s" + fi + + # same with early close of stdout/err + trace "exit status $s with early close over multiplexed connection" + ${SSH} -S $CTL -n otherhost \ + exec sh -c \'"sleep 2; exec > /dev/null 2>&1; sleep 3; exit $s"\' + r=$? + if [ $r -ne $s ]; then + fail "exit code (with sleep) mismatch for protocol $p: $r != $s" + fi +done + +sleep 30 # early close test sleeps 5 seconds per test |