12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #!/bin/sh
- # Copyright (C) 2001 by Martin Pool <mbp@samba.org>
- # This program is distributable under the terms of the GNU GPL (see
- # COPYING)
- # We don't really want to start the server listening, because that
- # might interfere with the security or operation of the test machine.
- # Instead we use the fake-connect feature to dynamically assign a pair
- # of ports.
- # Having started the server we try some basic operations against it:
- # getting a list of module
- # listing files in a module
- # retrieving a module
- # uploading to a module
- # checking the log file
- # password authentication
- . "$suitedir/rsync.fns"
- chkfile="$scratchdir/rsync.chk"
- outfile="$scratchdir/rsync.out"
- SSH="src/support/lsh --no-cd"
- FILE_REPL='s/^\([^d][^ ]*\) *\(..........[0-9]\) /\1 \2 /'
- DIR_REPL='s/^\(d[^ ]*\) *[0-9][0-9]* /\1 DIR /'
- 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];####/##/## ##:##:##;'
- build_rsyncd_conf
- makepath "$fromdir/foo" "$fromdir/bar/baz"
- makepath "$todir"
- echo one >"$fromdir/foo/one"
- echo two >"$fromdir/bar/two"
- echo three >"$fromdir/bar/baz/three"
- cd "$scratchdir"
- ln -s test-rsyncd.conf rsyncd.conf
- confopt=''
- case `get_testuid` in
- 0)
- # Root needs to specify the config file, or it uses /etc/rsyncd.conf.
- echo "Forcing --config=$conf"
- confopt=" --config=$conf"
- ;;
- esac
- $RSYNC -ve "$SSH" --rsync-path="$RSYNC$confopt" localhost::
- RSYNC_CONNECT_PROG="$RSYNC --config=$conf --daemon"
- export RSYNC_CONNECT_PROG
- $RSYNC -v localhost:: \
- | tee "$outfile"
- # These have a space-padded 15-char name, then a tab, then a comment.
- sed 's/NOCOMMENT//' <<EOT >"$chkfile"
- test-from r/o
- test-to r/w
- test-scratch NOCOMMENT
- EOT
- diff $diffopt "$chkfile" "$outfile" || test_fail "test 1 failed"
- $RSYNC -r localhost::test-hidden \
- | sed "$FILE_REPL" | sed "$DIR_REPL" | sed "$LS_REPL" \
- | tee "$outfile"
- cat <<EOT >"$chkfile"
- drwxr-xr-x DIR ####/##/## ##:##:## .
- drwxr-xr-x DIR ####/##/## ##:##:## bar
- -rw-r--r-- 4 ####/##/## ##:##:## bar/two
- drwxr-xr-x DIR ####/##/## ##:##:## bar/baz
- -rw-r--r-- 6 ####/##/## ##:##:## bar/baz/three
- drwxr-xr-x DIR ####/##/## ##:##:## foo
- -rw-r--r-- 4 ####/##/## ##:##:## foo/one
- EOT
- diff $diffopt "$chkfile" "$outfile" || test_fail "test 2 failed"
- $RSYNC -r localhost::test-from/f* \
- | sed "$FILE_REPL" | sed "$DIR_REPL" | sed "$LS_REPL" \
- | tee "$outfile"
- cat <<EOT >"$chkfile"
- drwxr-xr-x DIR ####/##/## ##:##:## foo
- -rw-r--r-- 4 ####/##/## ##:##:## foo/one
- EOT
- diff $diffopt "$chkfile" "$outfile" || test_fail "test 3 failed"
|