3 # Copyright (C) 2001 by Martin Pool <mbp@samba.org>
5 # This program is distributable under the terms of the GNU GPL (see
8 # We don't really want to start the server listening, because that
9 # might interfere with the security or operation of the test machine.
10 # Instead we use the fake-connect feature to dynamically assign a pair
13 # Having started the server we try some basic operations against it:
15 # getting a list of module
16 # listing files in a module
18 # uploading to a module
19 # checking the log file
20 # password authentication
22 .
"$suitedir/rsync.fns"
24 chkfile
="$scratchdir/rsync.chk"
25 outfile
="$scratchdir/rsync.out"
27 SSH
="src/support/lsh.sh --no-cd"
28 FILE_REPL
='s/^\([^d][^ ]*\) *\(..........[0-9]\) /\1 \2 /'
29 DIR_REPL
='s/^\(d[^ ]*\) *[0-9][.,0-9]* /\1 DIR /'
30 LS_REPL
='s;[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9] ;####/##/## ##:##:## ;g'
34 makepath
"$fromdir/foo" "$fromdir/bar/baz"
36 echo one
>"$fromdir/foo/one"
37 echo two
>"$fromdir/bar/two"
38 echo three
>"$fromdir/bar/baz/three"
42 ln -s test-rsyncd.conf rsyncd.conf
47 # Root needs to specify the config file, or it uses /etc/rsyncd.conf.
48 echo "Forcing --config=$conf"
49 confopt
=" --config=$conf"
53 # These have a space-padded 15-char name, then a tab, then a comment.
54 sed 's/NOCOMMENT//' <<EOT >"$chkfile"
57 test-scratch NOCOMMENT
60 $RSYNC -ve "$SSH" --rsync-path="$RSYNC$confopt" localhost
:: |
tee "$outfile"
62 diff $diffopt "$chkfile" "$outfile" || test_fail
"test 0 failed"
64 RSYNC_CONNECT_PROG
="$RSYNC --config=$conf --daemon"
65 export RSYNC_CONNECT_PROG
67 $RSYNC -v localhost
:: |
tee "$outfile"
69 diff $diffopt "$chkfile" "$outfile" || test_fail
"test 1 failed"
71 $RSYNC -r localhost
::test-hidden \
72 |
sed "$FILE_REPL" |
sed "$DIR_REPL" |
sed "$LS_REPL" \
75 drwxr-xr-x DIR ####/##/## ##:##:## .
76 drwxr-xr-x DIR ####/##/## ##:##:## bar
77 -rw-r--r-- 4 ####/##/## ##:##:## bar/two
78 drwxr-xr-x DIR ####/##/## ##:##:## bar/baz
79 -rw-r--r-- 6 ####/##/## ##:##:## bar/baz/three
80 drwxr-xr-x DIR ####/##/## ##:##:## foo
81 -rw-r--r-- 4 ####/##/## ##:##:## foo/one
83 diff $diffopt "$chkfile" "$outfile" || test_fail
"test 2 failed"
85 $RSYNC -r localhost
::test-from
/f
* \
86 |
sed "$FILE_REPL" |
sed "$DIR_REPL" |
sed "$LS_REPL" \
89 drwxr-xr-x DIR ####/##/## ##:##:## foo
90 -rw-r--r-- 4 ####/##/## ##:##:## foo/one
92 diff $diffopt "$chkfile" "$outfile" || test_fail
"test 3 failed"
94 $RSYNC -rU localhost
::test-from
/f
* \
95 |
sed "$FILE_REPL" |
sed "$DIR_REPL" |
sed "$LS_REPL" \
98 drwxr-xr-x DIR ####/##/## ##:##:## foo
99 -rw-r--r-- 4 ####/##/## ##:##:## ####/##/## ##:##:## foo/one
101 diff $diffopt "$chkfile" "$outfile" || test_fail
"test 3 failed"