liyujie
2025-08-28 786ff4f4ca2374bdd9177f2e24b503d43e7a3b93
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#    $OpenBSD: ssh-com-sftp.sh,v 1.7 2013/05/17 04:29:14 dtucker Exp $
#    Placed in the Public Domain.
 
tid="basic sftp put/get with ssh.com server"
 
SFTPCMDFILE=${OBJ}/batch
 
cat >$SFTPCMDFILE <<EOF
version
get $DATA ${COPY}.1
put $DATA ${COPY}.2
EOF
 
BUFFERSIZE="5 1000 32000 64000"
REQUESTS="1 2 10"
 
#TEST_COMBASE=/path/to/ssh/com/binaries
if [ "X${TEST_COMBASE}" = "X" ]; then
   fatal '$TEST_COMBASE is not set'
fi
 
VERSIONS="
   2.0.10
   2.0.12
   2.0.13
   2.1.0
   2.2.0
   2.3.0
   2.3.1
   2.4.0
   3.0.0
   3.1.0
   3.2.0
   3.2.2
   3.2.3
   3.2.5
   3.2.9
   3.2.9.1
   3.3.0"
 
# go for it
for v in ${VERSIONS}; do
   server=${TEST_COMBASE}/${v}/sftp-server2
   if [ ! -x ${server} ]; then
       continue
   fi
   verbose "sftp-server $v"
   for B in ${BUFFERSIZE}; do
       for R in ${REQUESTS}; do
           verbose "test $tid: buffer_size $B num_requests $R"
           rm -f ${COPY}.1 ${COPY}.2
           ${SFTP} -D ${server} -B $B -R $R -b $SFTPCMDFILE \
           > /dev/null 2>&1
           r=$?
           if [ $r -ne 0 ]; then
               fail "sftp failed with $r"
           else                                
               cmp $DATA ${COPY}.1 || fail "corrupted copy after get"
               cmp $DATA ${COPY}.2 || fail "corrupted copy after put"
           fi
       done
   done
done
rm -f ${COPY}.1 ${COPY}.2                
rm -f $SFTPCMDFILE