summaryrefslogtreecommitdiff
path: root/regress/scp3.sh
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2021-08-04 21:28:00 +0000
committerDarren Tucker <dtucker@dtucker.net>2021-08-06 16:57:37 +1000
commitd247a73ce27b460138599648d9c637c6f2b77605 (patch)
treee86f6718f8818f2ec7f9d3c9ae04b5f825229dc9 /regress/scp3.sh
parent35c8e41a6f6d8ad76f8d1cd81ac2ea23d0d993b2 (diff)
downloadopenssh-git-d247a73ce27b460138599648d9c637c6f2b77605.tar.gz
upstream: regression test for scp -3
OpenBSD-Regress-ID: b44375d125c827754a1f722ec6b6b75b634de05d
Diffstat (limited to 'regress/scp3.sh')
-rw-r--r--regress/scp3.sh58
1 files changed, 58 insertions, 0 deletions
diff --git a/regress/scp3.sh b/regress/scp3.sh
new file mode 100644
index 00000000..e5493ee8
--- /dev/null
+++ b/regress/scp3.sh
@@ -0,0 +1,58 @@
+# $OpenBSD: scp3.sh,v 1.1 2021/08/04 21:28:00 djm Exp $
+# Placed in the Public Domain.
+
+tid="scp3"
+
+#set -x
+
+COPY2=${OBJ}/copy2
+DIR=${COPY}.dd
+DIR2=${COPY}.dd2
+
+SRC=`dirname ${SCRIPT}`
+cp ${SRC}/scp-ssh-wrapper.sh ${OBJ}/scp-ssh-wrapper.scp
+chmod 755 ${OBJ}/scp-ssh-wrapper.scp
+export SCP # used in scp-ssh-wrapper.scp
+
+scpclean() {
+ rm -rf ${COPY} ${COPY2} ${DIR} ${DIR2}
+ mkdir ${DIR} ${DIR2}
+ chmod 755 ${DIR} ${DIR2}
+}
+
+# XXX sftp too once it's ready
+for mode in scp ; do
+ scpopts="-F${OBJ}/ssh_proxy -S ${SSH} -q"
+ tag="$tid: $mode mode"
+# if test $mode = scp ; then
+# scpopts="$scpopts -O"
+# fi
+
+ verbose "$tag: simple copy remote file to remote file"
+ scpclean
+ $SCP $scpopts -3 hostA:${DATA} hostB:${COPY} || fail "copy failed"
+ cmp ${DATA} ${COPY} || fail "corrupted copy"
+
+ verbose "$tag: simple copy remote file to remote dir"
+ scpclean
+ cp ${DATA} ${COPY}
+ $SCP $scpopts -3 hostA:${COPY} hostB:${DIR} || fail "copy failed"
+ cmp ${COPY} ${DIR}/copy || fail "corrupted copy"
+
+ verbose "$tag: recursive remote dir to remote dir"
+ scpclean
+ rm -rf ${DIR2}
+ cp ${DATA} ${DIR}/copy
+ $SCP $scpopts -3r hostA:${DIR} hostB:${DIR2} || fail "copy failed"
+ diff -rN ${DIR} ${DIR2} || fail "corrupted copy"
+
+ verbose "$tag: detect non-directory target"
+ scpclean
+ echo a > ${COPY}
+ echo b > ${COPY2}
+ $SCP $scpopts -3 hostA:${DATA} hostA:${COPY} hostB:${COPY2}
+ cmp ${COPY} ${COPY2} >/dev/null && fail "corrupt target"
+done
+
+scpclean
+rm -f ${OBJ}/scp-ssh-wrapper.exe