diff options
author | Wayne Davison <wayne@opencoder.net> | 2020-09-21 13:15:43 -0700 |
---|---|---|
committer | Wayne Davison <wayne@opencoder.net> | 2020-09-21 13:32:41 -0700 |
commit | 122b0fdc4f1fb9595f633fd4daf347de157ff659 (patch) | |
tree | 4dc447eb4480a0d5f364bae8aedd0d29d2cee427 /testsuite/itemize.test | |
parent | b990d97d35c39a1bf508b9819c47b0876686f333 (diff) | |
download | rsync-122b0fdc4f1fb9595f633fd4daf347de157ff659.tar.gz |
Check status of tests that pipe rsync's output & simplify output diffing.
Diffstat (limited to 'testsuite/itemize.test')
-rw-r--r-- | testsuite/itemize.test | 133 |
1 files changed, 35 insertions, 98 deletions
diff --git a/testsuite/itemize.test b/testsuite/itemize.test index 9988cb72..146ed2ed 100644 --- a/testsuite/itemize.test +++ b/testsuite/itemize.test @@ -12,9 +12,6 @@ to2dir="$tmpdir/to2" -chkfile="$scratchdir/rsync.chk" -outfile="$scratchdir/rsync.out" - makepath "$fromdir/foo" makepath "$fromdir/bar/baz" cp_p "$srcdir/configure.ac" "$fromdir/foo/config1" @@ -28,10 +25,18 @@ ln "$fromdir/foo/config1" "$fromdir/foo/extra" rm -f "$to2dir" # Check if rsync is set to hard-link symlinks. -if egrep '^#define CAN_HARDLINK_SYMLINK 1' config.h >/dev/null; then +if $RSYNC --version | grep "[, ] hardlink-symlinks" >/dev/null; then L=hL + sym_dots="$allspace" + L_sym_dots=".L$allspace" + is_uptodate='is uptodate' + touch "$chkfile.extra" else L=cL + sym_dots="c.t.$dots" + L_sym_dots="cL$sym_dots" + is_uptodate='-> ../bar/baz/rsync' + echo "cL$sym_dots foo/sym $is_uptodate" >"$chkfile.extra" fi # Check if rsync can preserve time on symlinks @@ -48,9 +53,7 @@ case "$RSYNC" in ;; esac -$RSYNC -iplr "$fromdir/" "$todir/" \ - | tee "$outfile" -cat <<EOT >"$chkfile" +checkdiff "$RSYNC -iplr '$fromdir/' '$todir/'" <<EOT cd$all_plus ./ cd$all_plus bar/ cd$all_plus bar/baz/ @@ -61,22 +64,18 @@ cd$all_plus foo/ >f$all_plus foo/extra cL$all_plus foo/sym -> ../bar/baz/rsync EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 1 failed" # Ensure there are no accidental directory-time problems. $RSYNC -a -f '-! */' "$fromdir/" "$todir" cp_p "$srcdir/configure.ac" "$fromdir/foo/config2" chmod 601 "$fromdir/foo/config2" -$RSYNC -iplrH "$fromdir/" "$todir/" \ - | tee "$outfile" -cat <<EOT >"$chkfile" +checkdiff "$RSYNC -iplrH '$fromdir/' '$todir/'" <<EOT >f..T.$dots bar/baz/rsync >f..T.$dots foo/config1 >f.sTp$dots foo/config2 hf..T.$dots foo/extra => foo/config1 EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 2 failed" $RSYNC -a -f '-! */' "$fromdir/" "$todir" cp_p "$srcdir/config.sub" "$fromdir/foo/config2" @@ -88,38 +87,30 @@ umask 022 chmod 600 "$fromdir/foo/config2" chmod 777 "$todir/bar/baz/rsync" -$RSYNC -iplrtc "$fromdir/" "$todir/" \ - | tee "$outfile" -cat <<EOT >"$chkfile" +checkdiff "$RSYNC -iplrtc '$fromdir/' '$todir/'" <<EOT .f..tp$dots bar/baz/rsync .d..t.$dots foo/ .f..t.$dots foo/config1 >fcstp$dots foo/config2 cLc$T.$dots foo/sym -> ../bar/baz/rsync EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 3 failed" cp_p "$srcdir/configure.ac" "$fromdir/foo/config2" chmod 600 "$fromdir/foo/config2" # Lack of -t is for unchanged hard-link stress-test! -$RSYNC -vvplrH "$fromdir/" "$todir/" \ - | tee "$outfile" -filter_outfile -cat <<EOT >"$chkfile" +checkdiff "$RSYNC -vvplrH '$fromdir/' '$todir/'" \ + v_filt <<EOT bar/baz/rsync is uptodate foo/config1 is uptodate foo/extra is uptodate foo/sym is uptodate foo/config2 EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 4 failed" chmod 747 "$todir/bar/baz/rsync" $RSYNC -a -f '-! */' "$fromdir/" "$todir" -$RSYNC -ivvplrtH "$fromdir/" "$todir/" \ - | tee "$outfile" -filter_outfile -cat <<EOT >"$chkfile" +checkdiff "$RSYNC -ivvplrtH '$fromdir/' '$todir/'" \ + v_filt <<EOT .d$allspace ./ .d$allspace bar/ .d$allspace bar/baz/ @@ -130,47 +121,23 @@ cat <<EOT >"$chkfile" hf$allspace foo/extra .L$allspace foo/sym -> ../bar/baz/rsync EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 5 failed" chmod 757 "$todir/foo/config1" touch "$todir/foo/config2" -$RSYNC -vplrtH "$fromdir/" "$todir/" \ - | tee "$outfile" -filter_outfile -cat <<EOT >"$chkfile" +checkdiff "$RSYNC -vplrtH '$fromdir/' '$todir/'" \ + v_filt <<EOT foo/config2 EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 6 failed" chmod 757 "$todir/foo/config1" touch "$todir/foo/config2" -$RSYNC -iplrtH "$fromdir/" "$todir/" \ - | tee "$outfile" -cat <<EOT >"$chkfile" +checkdiff "$RSYNC -iplrtH '$fromdir/' '$todir/'" <<EOT .f...p$dots foo/config1 >f..t.$dots foo/config2 EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 7 failed" -$RSYNC -ivvplrtH --copy-dest=../to "$fromdir/" "$to2dir/" \ - | tee "$outfile" -filter_outfile -case `tail -1 "$outfile"` in -cLc.t*) - sym_dots="c.t.$dots" - L_sym_dots="cL$sym_dots" - is_uptodate='-> ../bar/baz/rsync' - echo "cL$sym_dots foo/sym $is_uptodate" >"$chkfile.extra" - L=cL - ;; -*) - sym_dots="$allspace" - L_sym_dots=".L$allspace" - is_uptodate='is uptodate' - touch "$chkfile.extra" - ;; -esac -cat <<EOT >"$chkfile" +checkdiff "$RSYNC -ivvplrtH --copy-dest=../to '$fromdir/' '$to2dir/'" \ + v_filt <<EOT cd$allspace ./ cd$allspace bar/ cd$allspace bar/baz/ @@ -181,21 +148,16 @@ cf$allspace foo/config2 hf$allspace foo/extra => foo/config1 cL$sym_dots foo/sym -> ../bar/baz/rsync EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 8 failed" rm -rf "$to2dir" -$RSYNC -iplrtH --copy-dest=../to "$fromdir/" "$to2dir/" \ - | tee "$outfile" cat - "$chkfile.extra" <<EOT >"$chkfile" hf$allspace foo/extra => foo/config1 EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 9 failed" +checkdiff2 "$RSYNC -iplrtH --copy-dest=../to '$fromdir/' '$to2dir/'" rm -rf "$to2dir" -$RSYNC -vvplrtH --copy-dest="$todir" "$fromdir/" "$to2dir/" \ - | tee "$outfile" -filter_outfile -cat <<EOT >"$chkfile" +checkdiff "$RSYNC -vvplrtH --copy-dest='$todir' '$fromdir/' '$to2dir/'" \ + v_filt <<EOT ./ is uptodate bar/ is uptodate bar/baz/ is uptodate @@ -206,13 +168,10 @@ foo/config2 is uptodate foo/sym $is_uptodate foo/extra => foo/config1 EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 10 failed" rm -rf "$to2dir" -$RSYNC -ivvplrtH --link-dest="$todir" "$fromdir/" "$to2dir/" \ - | tee "$outfile" -filter_outfile -cat <<EOT >"$chkfile" +checkdiff "$RSYNC -ivvplrtH --link-dest='$todir' '$fromdir/' '$to2dir/'" \ + v_filt <<EOT cd$allspace ./ cd$allspace bar/ cd$allspace bar/baz/ @@ -223,27 +182,16 @@ hf$allspace foo/config2 hf$allspace foo/extra => foo/config1 $L$sym_dots foo/sym -> ../bar/baz/rsync EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 11 failed" rm -rf "$to2dir" -$RSYNC -iplrtH --dry-run --link-dest=../to "$fromdir/" "$to2dir/" \ - | tee "$outfile" -cat - "$chkfile.extra" <<EOT >"$chkfile" -EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 12 failed" +checkdiff "$RSYNC -iplrtH --dry-run --link-dest=../to '$fromdir/' '$to2dir/'" <"$chkfile.extra" rm -rf "$to2dir" -$RSYNC -iplrtH --link-dest=../to "$fromdir/" "$to2dir/" \ - | tee "$outfile" -cat - "$chkfile.extra" <<EOT >"$chkfile" -EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 13 failed" +checkdiff "$RSYNC -iplrtH --link-dest=../to '$fromdir/' '$to2dir/'" <"$chkfile.extra" rm -rf "$to2dir" -$RSYNC -vvplrtH --link-dest="$todir" "$fromdir/" "$to2dir/" \ - | tee "$outfile" -filter_outfile -cat <<EOT >"$chkfile" +checkdiff "$RSYNC -vvplrtH --link-dest='$todir' '$fromdir/' '$to2dir/'" \ + v_filt <<EOT ./ is uptodate bar/ is uptodate bar/baz/ is uptodate @@ -254,13 +202,10 @@ foo/config2 is uptodate foo/extra is uptodate foo/sym $is_uptodate EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 14 failed" rm -rf "$to2dir" -$RSYNC -ivvplrtH --compare-dest="$todir" "$fromdir/" "$to2dir/" \ - | tee "$outfile" -filter_outfile -cat <<EOT >"$chkfile" +checkdiff "$RSYNC -ivvplrtH --compare-dest='$todir' '$fromdir/' '$to2dir/'" \ + v_filt <<EOT cd$allspace ./ cd$allspace bar/ cd$allspace bar/baz/ @@ -271,20 +216,13 @@ cd$allspace foo/ .f$allspace foo/extra $L_sym_dots foo/sym -> ../bar/baz/rsync EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 15 failed" rm -rf "$to2dir" -$RSYNC -iplrtH --compare-dest="$todir" "$fromdir/" "$to2dir/" \ - | tee "$outfile" -cat - "$chkfile.extra" <<EOT >"$chkfile" -EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 16 failed" +checkdiff "$RSYNC -iplrtH --compare-dest='$todir' '$fromdir/' '$to2dir/'" <"$chkfile.extra" rm -rf "$to2dir" -$RSYNC -vvplrtH --compare-dest="$todir" "$fromdir/" "$to2dir/" \ - | tee "$outfile" -filter_outfile -cat <<EOT >"$chkfile" +checkdiff "$RSYNC -vvplrtH --compare-dest='$todir' '$fromdir/' '$to2dir/'" \ + v_filt <<EOT ./ is uptodate bar/ is uptodate bar/baz/ is uptodate @@ -295,7 +233,6 @@ foo/config2 is uptodate foo/extra is uptodate foo/sym $is_uptodate EOT -diff $diffopt "$chkfile" "$outfile" || test_fail "test 17 failed" # The script would have aborted on error, so getting here means we've won. exit 0 |