summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Miller <djm@cvs.openbsd.org>2004-06-13 15:04:09 +0000
committerDamien Miller <djm@cvs.openbsd.org>2004-06-13 15:04:09 +0000
commit35182960af462ade57bf55c41c878b6578567a52 (patch)
tree9984ebc9a8d2465ed09993b7e5fb1586fb013929
parent0d912f1959a05f98ebdbe6fcb1a4342c3b06196c (diff)
regress test for client multiplexing; ok markus@
-rw-r--r--regress/usr.bin/ssh/Makefile5
-rw-r--r--regress/usr.bin/ssh/multiplex.sh55
-rw-r--r--regress/usr.bin/ssh/test-exec.sh7
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