From 3fedd74ba21c4dd9d64d384881271d19fc80dc47 Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Wed, 29 Aug 2001 09:13:01 +0000 Subject: [PATCH] Clean up Phil's test more. Make the checkit() routine more generic. Split out ssh tests. --- testsuite/hands.test | 55 ++++-------------------------------- testsuite/rsync-address.test | 7 +++++ testsuite/rsync.fns | 43 ++++++++++++++++++++++++++++ testsuite/ssh-basic.test | 27 ++++++++++++++++++ 4 files changed, 82 insertions(+), 50 deletions(-) create mode 100755 testsuite/rsync-address.test create mode 100644 testsuite/ssh-basic.test diff --git a/testsuite/hands.test b/testsuite/hands.test index 55edab10..b9c68c46 100644 --- a/testsuite/hands.test +++ b/testsuite/hands.test @@ -9,65 +9,20 @@ # # -RSYNC="$rsync_bin" - . "$suitedir/rsync.fns" hands_setup -checkit() { - testnum=`expr 0${testnum} + 1` - log=${LOG}.${testnum} - failed= - echo "Running: \"$1\"" >${log} - echo "">>${log} - eval "$1" >>${log} 2>&1 - status=$? - if [ $status != 0 ]; then - failed="YES"; - fi - echo "-------------">>${log} - echo "check how the files compare with diff:">>${log} - echo "">>${log} - diff -ur $2 $3 >>${log} 2>&1 || failed=YES - echo "-------------">>${log} - echo "check how the directory listings compare with diff:">>${log} - echo "">>${log} - ( cd $2 ; ls -laR ) > ${TMP}/ls-from 2>>${log} - ( cd $3 ; ls -laR ) > ${TMP}/ls-to 2>>${log} - diff -u ${TMP}/ls-from ${TMP}/ls-to >>${log} 2>&1 || failed=YES - if [ -z "${failed}" ] ; then - echo "${ECHO_T} done." - rm $log - return 0 - else - if test -n "${Debian}" ; then - cat ${log} - rm ${log} - else - echo "${ECHO_T} FAILED (test # ${testnum} status=$status)." - fi - return 1 - fi -} - checkforlogs() { # skip it if we're under debian-test if test -n "${Debian}" ; then return 0 ; fi - if [ -f $1 ] ; then - cat <&2 + cat $1 >&2 + exit 1 else - - rm -rf ${TMP} echo "" echo "Tests Completed Successfully :-)" fi @@ -98,7 +53,7 @@ runtest "long paths" 'checkit "$RSYNC --delete -avH ${FROM}/ ${TO}" ${FROM}/ ${T rm -rf ${TO} mkdir -p ${FROM}2/dir/subdir cp -a ${FROM}/dir/subdir/subsubdir ${FROM}2/dir/subdir -cp ${FROM}/dir/* ${FROM}2/dir 2>/dev/null +cp ${FROM}/dir/* ${FROM}2/dir || : runtest "excludes" 'checkit "$RSYNC -vv -Hlrt --delete --include /dir/ --include /dir/\* --include /dir/\*/subsubdir --include /dir/\*/subsubdir/\*\* --exclude \*\* ${FROM}/dir ${TO}" ${FROM}2/ ${TO}' rm -r ${FROM}2 diff --git a/testsuite/rsync-address.test b/testsuite/rsync-address.test new file mode 100755 index 00000000..66c533bb --- /dev/null +++ b/testsuite/rsync-address.test @@ -0,0 +1,7 @@ +#! /bin/sh + +. rsync_fns + +echo $0 running + +"$rsync_bin" --version || exit 1 diff --git a/testsuite/rsync.fns b/testsuite/rsync.fns index b00f8eca..8729a4ab 100644 --- a/testsuite/rsync.fns +++ b/testsuite/rsync.fns @@ -9,6 +9,7 @@ FROM=${TMP}/from TO=${TMP}/to F1=text1 LOG=${TMP}/log +RSYNC="$rsync_bin" runtest() { echo $ECHO_N "Test $1: $ECHO_C" @@ -40,3 +41,45 @@ hands_setup() { mkdir ${FROM}/dir/subdir/subsubdir2 ls -lt /bin > ${FROM}/dir/subdir/subsubdir2/bin-lt-list } + + +########################### +# Run a test (in '$1') then compare directories $2 and $3 to see if +# there are any difference. If there are, explain them. + +checkit() { + log=${LOG} + failed= + # the log accumulates all output; we only display it if there + # is a problem. + + echo "Running: \"$1\"" >${log} + echo "">>${log} + eval "$1" >>${log} 2>&1 + status=$? + if [ $status != 0 ]; then + failed="YES"; + fi + + echo "-------------">>${log} + echo "check how the files compare with diff:">>${log} + echo "">>${log} + diff -ur $2 $3 >>${log} 2>&1 || failed=YES + echo "-------------">>${log} + echo "check how the directory listings compare with diff:">>${log} + echo "">>${log} + ( cd $2 ; ls -laR ) > ${TMP}/ls-from 2>>${log} + ( cd $3 ; ls -laR ) > ${TMP}/ls-to 2>>${log} + diff -u ${TMP}/ls-from ${TMP}/ls-to >>${log} 2>&1 || failed=YES + if [ -z "${failed}" ] ; then + echo "${ECHO_T} done." + rm $log + return 0 + else + echo "${ECHO_T} failed!" + cat ${log} + rm ${log} + return 1 + fi +} + diff --git a/testsuite/ssh-basic.test b/testsuite/ssh-basic.test new file mode 100644 index 00000000..e1aeb413 --- /dev/null +++ b/testsuite/ssh-basic.test @@ -0,0 +1,27 @@ +#!/bin/sh + +# Copyright (C) 1998,1999 Philip Hands +# Copyright (C) 2001 by Martin Pool + +# This program is distributable under the terms of the GNU GPL (see +# COPYING) + +# This script tests ssh, if possible. It's called by runtests.sh + +. "$suitedir/rsync.fns" + +if ! type ssh >/dev/null 2>&1; then + echo "Skipping SSH tests because ssh is not in the path" + exit 77 +fi + +if ! [ "`ssh -o'BatchMode yes' localhost echo yes 2>/dev/null`" = "yes" ]; then + echo "Skipping SSH tests because ssh conection to localhost not authorised" + exit 77 +fi + +runtest "ssh: basic test" 'checkit "$RSYNC -avH -e ssh --rsync-path=$RSYNC ${FROM}/ localhost:${TO}" ${FROM}/ ${TO}' + +mv ${TO}/${F1} ${TO}/ThisShouldGo + +runtest "ssh: renamed file" 'checkit "$RSYNC --delete -avH -e ssh --rsync-path=$RSYNC ${FROM}/ localhost:${TO}" ${FROM}/ ${TO}' -- 2.34.1