From b58e40332f26aff16486e6cde598395a081abdee Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Wed, 18 Apr 2007 03:23:26 +0000 Subject: [PATCH] If ssh access is not enabled, use a shell function to test that we can copy using a spawned rsync process. --- testsuite/ssh-basic.test | 48 ++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/testsuite/ssh-basic.test b/testsuite/ssh-basic.test index 6ca587b1..ff8991bd 100644 --- a/testsuite/ssh-basic.test +++ b/testsuite/ssh-basic.test @@ -10,34 +10,38 @@ . "$suitedir/rsync.fns" -if [ "x$rsync_enable_ssh_tests" != xyes ] -then - test_skipped "Skipping SSH tests because \$rsync_enable_ssh_tests is not set" +SSH="$scratchdir/pretend-ssh" + +cat >"$SSH" <<'EOT' +while : ; do + case "$1" in + -*) shift ;; + localhost) shift; break ;; + *) exit 1 ;; + esac +done + +$* +EOT +chmod +x "$SSH" + +if test x"$rsync_enable_ssh_tests" = xyes; then + if type ssh >/dev/null ; then + SSH=ssh + fi fi -if ! type ssh >/dev/null ; then - test_skipped "Skipping SSH tests because ssh is not in the path" -fi - -if ! [ "`ssh -o'BatchMode yes' localhost echo yes`" = "yes" ]; then +if ! [ "`"$SSH" -o'BatchMode yes' localhost echo yes`" = "yes" ]; then test_skipped "Skipping SSH tests because ssh conection to localhost not authorised" fi -# Added by Steve Bonds Feb 2 2003 -# Without this, there are no files in the $fromdir directory, so rsync has -# nothing to do. -hands_setup +echo "Using remote shell: $SSH" -runtest "ssh: basic test" 'checkit "$RSYNC -avH -e ssh --rsync-path=\"$RSYNC\" \"$fromdir/\" \"localhost:$todir\"" "$fromdir/" "$todir"' +# Create some files for rsync to copy +hands_setup -# Added by Steve Bonds Feb 2 2003 -# I assumed that "F1" was intended to hold a single file for testing if -# rsync could detect a renamed file over ssh. Without this line below -# it was unset so the "mv" tried to move a parent directory into a -# subdirectory of itself. There is probably a better way of pulling out -# a sample file to rename. -F1=`ls "$todir" | head -5 | tail -1` +runtest "ssh: basic test" 'checkit "$RSYNC -avH -e \"$SSH\" --rsync-path=\"$RSYNC\" \"$fromdir/\" \"localhost:$todir\"" "$fromdir/" "$todir"' -mv "$todir/$F1" "$todir/ThisShouldGo" +mv "$todir/text" "$todir/ThisShouldGo" -runtest "ssh: renamed file" 'checkit "$RSYNC --delete -avH -e ssh --rsync-path=\"$RSYNC\" \"$fromdir/\" \"localhost:$todir\"" "$fromdir/" "$todir"' +runtest "ssh: renamed file" 'checkit "$RSYNC --delete -avH -e \"$SSH\" --rsync-path=\"$RSYNC\" \"$fromdir/\" \"localhost:$todir\"" "$fromdir/" "$todir"' -- 2.34.1