]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - crypto/openssh/regress/scp3.sh
Import OpenCSD v.1.4.0.
[FreeBSD/FreeBSD.git] / crypto / openssh / regress / scp3.sh
1 #       $OpenBSD: scp3.sh,v 1.4 2023/01/13 04:47:34 dtucker Exp $
2 #       Placed in the Public Domain.
3
4 tid="scp3"
5
6 set -x
7
8 COPY2=${OBJ}/copy2
9 DIR=${COPY}.dd
10 DIR2=${COPY}.dd2
11
12 maybe_add_scp_path_to_sshd
13
14 SRC=`dirname ${SCRIPT}`
15 cp ${SRC}/scp-ssh-wrapper.sh ${OBJ}/scp-ssh-wrapper.scp
16 chmod 755 ${OBJ}/scp-ssh-wrapper.scp
17 export SCP # used in scp-ssh-wrapper.scp
18
19 scpclean() {
20         rm -rf ${COPY} ${COPY2} ${DIR} ${DIR2}
21         mkdir ${DIR} ${DIR2}
22         chmod 755 ${DIR} ${DIR2}
23 }
24
25 for mode in scp sftp ; do
26         scpopts="-F${OBJ}/ssh_proxy -S ${SSH} -q"
27         tag="$tid: $mode mode"
28         if test $mode = scp ; then
29                 scpopts="$scpopts -O"
30         else
31                 scpopts="-s -D ${SFTPSERVER}"
32         fi
33
34         verbose "$tag: simple copy remote file to remote file"
35         scpclean
36         $SCP $scpopts -3 hostA:${DATA} hostB:${COPY} || fail "copy failed"
37         cmp ${DATA} ${COPY} || fail "corrupted copy"
38
39         verbose "$tag: simple copy remote file to remote dir"
40         scpclean
41         cp ${DATA} ${COPY}
42         $SCP $scpopts -3 hostA:${COPY} hostB:${DIR} || fail "copy failed"
43         cmp ${COPY} ${DIR}/copy || fail "corrupted copy"
44
45         verbose "$tag: recursive remote dir to remote dir"
46         scpclean
47         rm -rf ${DIR2}
48         cp ${DATA} ${DIR}/copy
49         $SCP $scpopts -3r hostA:${DIR} hostB:${DIR2} || fail "copy failed"
50         diff -r ${DIR} ${DIR2} || fail "corrupted copy"
51         diff -r ${DIR2} ${DIR} || fail "corrupted copy"
52
53         verbose "$tag: detect non-directory target"
54         scpclean
55         echo a > ${COPY}
56         echo b > ${COPY2}
57         $SCP $scpopts -3 hostA:${DATA} hostA:${COPY} hostB:${COPY2}
58         cmp ${COPY} ${COPY2} >/dev/null && fail "corrupt target"
59 done
60
61 scpclean
62 rm -f ${OBJ}/scp-ssh-wrapper.exe