From 824a057935ecb0565babc5c865df5906f2637626 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Tue, 18 Jan 2022 22:43:25 -0800 Subject: [PATCH] Add some arg-escaping tests. --- testsuite/00-hello.test | 55 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 51 insertions(+), 4 deletions(-) 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 -- 2.34.1