summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2008-05-31 14:52:24 -0700
committerWayne Davison <wayned@samba.org>2008-05-31 14:52:24 -0700
commit0e9c3564c6763e4d99d7b518ccc27e60de622a3b (patch)
treed799e2cce67aff1733d93617574c6952f039344a /testsuite
parent164cb66addee693700c70fed63d996872fcc3edb (diff)
downloadrsync-0e9c3564c6763e4d99d7b518ccc27e60de622a3b.tar.gz
rsync-0e9c3564c6763e4d99d7b518ccc27e60de622a3b.tar.bz2
rsync-0e9c3564c6763e4d99d7b518ccc27e60de622a3b.zip
Improved the daemon testing, including adding a test to ensure that
daemon excludes can't exclude a dot dir.
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/daemon.test48
-rw-r--r--testsuite/rsync.fns8
2 files changed, 51 insertions, 5 deletions
diff --git a/testsuite/daemon.test b/testsuite/daemon.test
index 994a9944..113d6a59 100644
--- a/testsuite/daemon.test
+++ b/testsuite/daemon.test
@@ -19,15 +19,23 @@
# checking the log file
# password authentication
-# TODO: Put the common framework in a common file, so that we can have
-# subtests fail and keep going.
-
. "$suitedir/rsync.fns"
+chkfile="$scratchdir/rsync.chk"
+outfile="$scratchdir/rsync.out"
+
SSH="src/support/lsh --no-cd"
+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
@@ -46,4 +54,36 @@ $RSYNC -ve "$SSH" --rsync-path="$RSYNC$confopt" localhost::
RSYNC_CONNECT_PROG="$RSYNC --config=$conf --daemon"
export RSYNC_CONNECT_PROG
-$RSYNC -v localhost::
+$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 "$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 "$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"
+
diff --git a/testsuite/rsync.fns b/testsuite/rsync.fns
index de628665..b982461b 100644
--- a/testsuite/rsync.fns
+++ b/testsuite/rsync.fns
@@ -244,7 +244,7 @@ hosts allow = localhost 127.0.0.0/24 192.168.0.0/16 10.0.0.0/8 $hostname
log file = $logfile
log format = %i %h [%a] %m (%u) %l %f%L
transfer logging = yes
-exclude = foobar.baz
+exclude = ? foobar.baz
max verbosity = 9
uid = 0
gid = 0
@@ -252,14 +252,20 @@ gid = 0
[test-from]
path = $fromdir
read only = yes
+ comment = r/o
[test-to]
path = $todir
read only = no
+ comment = r/w
[test-scratch]
path = $scratchdir
read only = no
+
+[test-hidden]
+ path = $fromdir
+ list = no
EOF
# Build a helper script to ignore exit code 23