From: Wayne Davison Date: Sat, 31 May 2008 21:52:24 +0000 (-0700) Subject: Improved the daemon testing, including adding a test to ensure that X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/0e9c3564c6763e4d99d7b518ccc27e60de622a3b Improved the daemon testing, including adding a test to ensure that daemon excludes can't exclude a dot dir. --- 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//' <"$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 <"$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 <"$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