Improved the daemon testing, including adding a test to ensure that
[rsync/rsync.git] / testsuite / rsync.fns
index 943c3d3..b982461 100644 (file)
@@ -23,6 +23,11 @@ fromdir="$tmpdir/from"
 todir="$tmpdir/to"
 chkdir="$tmpdir/chk"
 
+# For itemized output:
+all_plus='+++++++++'
+allspace='         '
+dots='.....' # trailing dots after changes
+
 # Berkley's nice.
 PATH="$PATH:/usr/ucb"
 
@@ -52,10 +57,13 @@ runtest() {
 # messages).  This isn't needed if you use -i without -v.
 filter_outfile() {
     sed -e '/^building file list /d' \
+       -e '/^sending incremental file list/d' \
        -e '/^created directory /d' \
        -e '/^done$/d' \
        -e '/ --whole-file$/d' \
        -e '/^total: /d' \
+       -e '/^client charset: /d' \
+       -e '/^server charset: /d' \
        -e '/^$/,$d' \
        <"$outfile" >"$outfile.new"
     mv "$outfile.new" "$outfile"
@@ -66,7 +74,7 @@ printmsg() {
 }
 
 rsync_ls_lR() {
-    find "$@" -print | sort | sed 's/ /\\ /g' | xargs "$TOOLDIR/tls"
+    find "$@" -print | sort | sed 's/ /\\ /g' | xargs "$TOOLDIR/tls" $TLS_ARGS
 }
 
 check_perms() {
@@ -145,16 +153,16 @@ hands_setup() {
 # Many machines do not have "mkdir -p", so we have to build up long paths.
 # How boring.  
 makepath() {
-    echo "        makepath $1"
-    p="$1"
-    (
+    for p in "${@}"; do
+       (echo "        makepath $p"
+
        # Absolut Unix.
        if echo $p | grep '^/' >/dev/null
        then
            cd /
        fi
     
-       # This will break if $1 contains a space.
+       # This will break if $p contains a space.
        for c in `echo $p | tr '/' ' '`
        do 
            if [ -d "$c" ] || mkdir "$c" 
@@ -163,8 +171,8 @@ makepath() {
            else
                echo "failed to create $c" >&2; return $?
            fi
-       done
-    )
+       done)
+    done
 }
 
 
@@ -224,28 +232,60 @@ build_rsyncd_conf() {
     port=2612
     pidfile="$scratchdir/rsyncd.pid"
     logfile="$scratchdir/rsyncd.log"
+    hostname=`uname -n`
 
     cat >"$conf" <<EOF
 # rsyncd configuration file autogenerated by $0
 
 pid file = $pidfile
 use chroot = no
-hosts allow = localhost, 127.0.0.1
+munge symlinks = no
+hosts allow = localhost 127.0.0.0/24 192.168.0.0/16 10.0.0.0/8 $hostname
 log file = $logfile
-exclude = foobar.baz
+log format = %i %h [%a] %m (%u) %l %f%L
+transfer logging = yes
+exclude = ? foobar.baz
 max verbosity = 9
-
 uid = 0
 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
+    ignore23="$scratchdir/ignore23"
+    echo "building help script $ignore23"
+
+    cat >"$ignore23" <<'EOT'
+if "${@}"; then
+    exit
+fi
+
+ret=$?
+
+if test $ret = 23; then
+    exit
+fi
+
+exit $ret
+EOT
+chmod +x "$ignore23"
 }