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 | |
parent | 0d912f1959a05f98ebdbe6fcb1a4342c3b06196c (diff) |
regress test for client multiplexing; ok markus@
-rw-r--r-- | regress/usr.bin/ssh/Makefile | 5 | ||||
-rw-r--r-- | regress/usr.bin/ssh/multiplex.sh | 55 | ||||
-rw-r--r-- | regress/usr.bin/ssh/test-exec.sh | 7 |
3 files changed, 64 insertions, 3 deletions
diff --git a/regress/usr.bin/ssh/Makefile b/regress/usr.bin/ssh/Makefile index ce1fb7c3adf..09fbe21389c 100644 --- a/regress/usr.bin/ssh/Makefile +++ b/regress/usr.bin/ssh/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.29 2004/06/13 13:51:02 dtucker Exp $ +# $OpenBSD: Makefile,v 1.30 2004/06/13 15:04:08 djm Exp $ REGRESS_TARGETS= t1 t2 t3 t4 t5 t6 t7 @@ -33,7 +33,8 @@ LTESTS= connect \ sftp-batch \ reconfigure \ dynamic-forward \ - forwarding + forwarding \ + multiplex USER!= id -un CLEANFILES+= authorized_keys_${USER} known_hosts pidfile \ 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 diff --git a/regress/usr.bin/ssh/test-exec.sh b/regress/usr.bin/ssh/test-exec.sh index 15bc83b7c23..dc169849f8e 100644 --- a/regress/usr.bin/ssh/test-exec.sh +++ b/regress/usr.bin/ssh/test-exec.sh @@ -1,4 +1,4 @@ -# $OpenBSD: test-exec.sh,v 1.17 2004/06/13 13:51:02 dtucker Exp $ +# $OpenBSD: test-exec.sh,v 1.18 2004/06/13 15:04:08 djm Exp $ # Placed in the Public Domain. PORT=4242 @@ -35,6 +35,7 @@ unset SSH_AUTH_SOCK # defaults SSH=ssh SSHD=sshd +SCP=scp SSHAGENT=ssh-agent SSHADD=ssh-add SSHKEYGEN=ssh-keygen @@ -49,6 +50,9 @@ fi if [ "x$TEST_SSH_SSHD" != "x" ]; then SSHD="${TEST_SSH_SSHD}" fi +if [ "x$TEST_SSH_SCP" != "x" ]; then + SCP="${TEST_SSH_SCP}" +fi if [ "x$TEST_SSH_SSHAGENT" != "x" ]; then SSHAGENT="${TEST_SSH_SSHAGENT}" fi @@ -136,6 +140,7 @@ cat << EOF > $OBJ/sshd_config LogLevel QUIET AcceptEnv _XXX_TEST_* AcceptEnv _XXX_TEST + Subsystem sftp $SFTPSERVER EOF # server config for proxy connects |