From: Wayne Davison Date: Wed, 19 Jan 2022 06:43:25 +0000 (-0800) Subject: Add some arg-escaping tests. X-Git-Tag: v3.2.4pre3~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=824a057935ecb0565babc5c865df5906f2637626;p=thirdparty%2Frsync.git Add some arg-escaping tests. --- diff --git a/testsuite/00-hello.test b/testsuite/00-hello.test index ed72c0bd..e9477182 100644 --- a/testsuite/00-hello.test +++ b/testsuite/00-hello.test @@ -1,9 +1,11 @@ #!/bin/sh -test_fail() { - echo "$@" >&2 - exit 1 -} +# Test some foundational things. + +. "$suitedir/rsync.fns" + +RSYNC_RSH="$scratchdir/src/support/lsh.sh" +export RSYNC_RSH echo $0 running @@ -12,3 +14,48 @@ $RSYNC --version || test_fail '--version output failed' $RSYNC --info=help || test_fail '--info=help output failed' $RSYNC --debug=help || test_fail '--debug=help output failed' + +weird_name="A weird)name" + +mkdir "$fromdir" +mkdir "$fromdir/$weird_name" + +append_line() { + echo "$1" + echo "$1" >>"$fromdir/$weird_name/file" +} + +append_line test1 +checkit "$RSYNC -ai '$fromdir/' '$todir/'" "$fromdir" "$todir" + +copy_weird() { + checkit "$RSYNC $1 \"$2$fromdir/$weird_name/\" \"$3$todir/$weird_name\"" "$fromdir" "$todir" +} + +append_line test2 +copy_weird '-ai' 'lh:' '' + +append_line test3 +copy_weird '-ai' '' 'lh:' + +append_line test4 +copy_weird '-ais' 'lh:' '' + +append_line test5 +copy_weird '-ais' '' 'lh:' + +echo test6 + +touch "$fromdir/one" "$fromdir/two" +(cd "$fromdir" && $RSYNC -ai --old-args lh:'one two' "$todir/") +if [ ! -f "$todir/one" ] || [ ! -f "$todir/two" ]; then + test_fail "old-args copy of 'one two' failed" +fi + +echo test7 + +rm "$todir/one" "$todir/two" +(cd "$fromdir" && RSYNC_OLD_ARGS=1 $RSYNC -ai lh:'one two' "$todir/") + +# The script would have aborted on error, so getting here means we've won. +exit 0