Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
don't write more than PIPE_BUF bytes in any one write() in io.c
[rsync/rsync.git]
/
test.sh
diff --git
a/test.sh
b/test.sh
index
51f73df
..
1717f4a
100755
(executable)
--- a/
test.sh
+++ b/
test.sh
@@
-1,7
+1,6
@@
#!/bin/sh
#!/bin/sh
-#
-# Copyright (C) 1998 Philip Hands <http://www.hands.com/~phil/>
+# Copyright (C) 1998,1999 Philip Hands <phil@hands.com>
#
# This program is distributable under the terms of the GNU GPL (see COPYING)
#
#
# This program is distributable under the terms of the GNU GPL (see COPYING)
#
@@
-10,15
+9,33
@@
#
#
#
#
-cat <<EOF
+# check if we are running under debian-test, and change behaviour to suit
+if test -n "${DEBIANTEST_LIB}" ; then
+ # make sure rsync is installed
+ test -e /usr/bin/rsync || exit 0
+
+ . ${DEBIANTEST_LIB}/functions.sh
+ Debian=1
+else
+ cat <<EOF
This set of tests is not completely portable. It is intended for developers
not for end users. You may experience failures on some platforms that
do not indicate a problem with rsync.
EOF
This set of tests is not completely portable. It is intended for developers
not for end users. You may experience failures on some platforms that
do not indicate a problem with rsync.
EOF
+ export PATH=.:$PATH
+ runtest() {
+ echo -n "Test $1: "
+ eval "$2"
+ }
+ printmsg() {
+ echo ""
+ echo "**** ${1}^G ****"
+ echo ""
+ }
+fi
-export PATH=.:$PATH
TMP=/tmp/rsync-test.$$
FROM=${TMP}/from
TO=${TMP}/to
TMP=/tmp/rsync-test.$$
FROM=${TMP}/from
TO=${TMP}/to
@@
-38,10
+55,15
@@
ln -s nolf ${FROM}/nolf-symlink
cat /etc/inittab /etc/services /etc/resolv.conf > ${FROM}/${F1}
mkdir ${FROM}/dir
cp ${FROM}/${F1} ${FROM}/dir
cat /etc/inittab /etc/services /etc/resolv.conf > ${FROM}/${F1}
mkdir ${FROM}/dir
cp ${FROM}/${F1} ${FROM}/dir
+mkdir ${FROM}/dir/subdir
+mkdir ${FROM}/dir/subdir/subsubdir
+ls -ltr /etc > ${FROM}/dir/subdir/subsubdir/etc-ltr-list
+mkdir ${FROM}/dir/subdir/subsubdir2
+ls -lt /bin > ${FROM}/dir/subdir/subsubdir2/bin-lt-list
checkit() {
checkit() {
- echo -n "Test $4: $5:"
- log=${LOG}.$
4
+ testnum=`expr 0${testnum} + 1`
+ log=${LOG}.$
{testnum}
failed=
echo "Running: \"$1\"" >${log}
echo "">>${log}
failed=
echo "Running: \"$1\"" >${log}
echo "">>${log}
@@
-50,22
+72,33
@@
checkit() {
echo "-------------">>${log}
echo "check how the files compare with diff:">>${log}
echo "">>${log}
echo "-------------">>${log}
echo "check how the files compare with diff:">>${log}
echo "">>${log}
- diff -ur $2 $3 >>${log} || failed=YES
+ diff -ur $2 $3 >>${log}
2>&1
|| failed=YES
echo "-------------">>${log}
echo "check how the directory listings compare with diff:">>${log}
echo "">>${log}
echo "-------------">>${log}
echo "check how the directory listings compare with diff:">>${log}
echo "">>${log}
- ls -la $2 > ${TMP}/ls-from
- ls -la $3 > ${TMP}/ls-to
- diff -u ${TMP}/ls-from ${TMP}/ls-to >>${log} || failed=YES
+ ( 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
if [ -z "${failed}" ] ; then
-
echo "
done."
+
test -z "${Debian}" && echo "
done."
rm $log
rm $log
+ return 0
else
else
- echo " FAILED.
\a
"
+ if test -n "${Debian}" ; then
+ cat ${log}
+ rm ${log}
+ else
+ echo " FAILED (test # ${testnum}).
\a
"
+ fi
+ return 1
fi
}
fi
}
+
checkforlogs() {
checkforlogs() {
+ # skip it if we're under debian-test
+ if test -n "${Debian}" ; then return 0 ; fi
+
if [ -f $1 ] ; then
cat <<EOF
if [ -f $1 ] ; then
cat <<EOF
@@
-87,44
+120,45
@@
EOF
# Main script starts here
# Main script starts here
-checkit "rsync -av ${FROM}/ ${TO}" ${FROM}/ ${TO} \
- 1 "basic operation"
+runtest "basic operation" 'checkit "rsync -av ${FROM}/ ${TO}" ${FROM}/ ${TO}'
ln ${FROM}/pslist ${FROM}/dir
ln ${FROM}/pslist ${FROM}/dir
-checkit "rsync -avH ${FROM}/ ${TO}" ${FROM}/ ${TO} \
- 2 "hard links"
+runtest "hard links" 'checkit "rsync -avH ${FROM}/ ${TO}" ${FROM}/ ${TO}'
rm ${TO}/${F1}
rm ${TO}/${F1}
-checkit "rsync -avH ${FROM}/ ${TO}" ${FROM}/ ${TO} \
- 3 "one file"
+runtest "one file" 'checkit "rsync -avH ${FROM}/ ${TO}" ${FROM}/ ${TO}'
echo "extra line" >> ${TO}/${F1}
echo "extra line" >> ${TO}/${F1}
-checkit "rsync -avH ${FROM}/ ${TO}" ${FROM}/ ${TO} \
- 4 "extra data"
+runtest "extra data" 'checkit "rsync -avH ${FROM}/ ${TO}" ${FROM}/ ${TO}'
cp ${FROM}/${F1} ${TO}/ThisShouldGo
cp ${FROM}/${F1} ${TO}/ThisShouldGo
-checkit "rsync --delete -avH ${FROM}/ ${TO}" ${FROM}/ ${TO} \
- 5 " --delete"
+runtest " --delete" 'checkit "rsync --delete -avH ${FROM}/ ${TO}" ${FROM}/ ${TO}'
LONGDIR=${FROM}/This-is-a-directory-with-a-stupidly-long-name-created-in-an-attempt-to-provoke-an-error-found-in-2.0.11-that-should-hopefully-never-appear-again-if-this-test-does-its-job/This-is-a-directory-with-a-stupidly-long-name-created-in-an-attempt-to-provoke-an-error-found-in-2.0.11-that-should-hopefully-never-appear-again-if-this-test-does-its-job/This-is-a-directory-with-a-stupidly-long-name-created-in-an-attempt-to-provoke-an-error-found-in-2.0.11-that-should-hopefully-never-appear-again-if-this-test-does-its-job
mkdir -p ${LONGDIR}
date > ${LONGDIR}/1
ls -la / > ${LONGDIR}/2
LONGDIR=${FROM}/This-is-a-directory-with-a-stupidly-long-name-created-in-an-attempt-to-provoke-an-error-found-in-2.0.11-that-should-hopefully-never-appear-again-if-this-test-does-its-job/This-is-a-directory-with-a-stupidly-long-name-created-in-an-attempt-to-provoke-an-error-found-in-2.0.11-that-should-hopefully-never-appear-again-if-this-test-does-its-job/This-is-a-directory-with-a-stupidly-long-name-created-in-an-attempt-to-provoke-an-error-found-in-2.0.11-that-should-hopefully-never-appear-again-if-this-test-does-its-job
mkdir -p ${LONGDIR}
date > ${LONGDIR}/1
ls -la / > ${LONGDIR}/2
-checkit "rsync --delete -avH ${FROM}/ ${TO}" ${FROM}/ ${TO} \
- 6 "long paths"
+runtest "long paths" 'checkit "rsync --delete -avH ${FROM}/ ${TO}" ${FROM}/ ${TO}'
-if type ssh >/dev/null ; then
-rm -rf ${TO}
- checkit "rsync -avH -e ssh ${FROM}/ localhost:${TO}" ${FROM}/ ${TO} \
- 7 "ssh: basic test"
+if type ssh >/dev/null
2>&1
; then
+ if [ "`ssh -o'BatchMode yes' localhost echo yes 2>/dev/null`" = "yes" ]; then
+ rm -rf ${TO}
+ runtest "ssh: basic test" 'checkit "rsync -avH -e ssh ${FROM}/ localhost:${TO}" ${FROM}/ ${TO}'
- mv ${TO}/${F1} ${TO}/ThisShouldGo
- checkit "rsync --delete -avH -e ssh ${FROM}/ localhost:${TO}" ${FROM}/ ${TO}\
- 8 "ssh: renamed file"
+ mv ${TO}/${F1} ${TO}/ThisShouldGo
+ runtest "ssh: renamed file" 'checkit "rsync --delete -avH -e ssh ${FROM}/ localhost:${TO}" ${FROM}/ ${TO}'
+ else
+ printmsg "Skipping SSH tests because ssh conection to localhost not authorised"
+ fi
else
else
- echo ""
- echo "**** Skipping SSH tests because ssh is not in the path
\a
****"
- echo ""
+ printmsg "Skipping SSH tests because ssh is not in the path"
fi
fi
+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
+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
+
checkforlogs ${LOG}.?
checkforlogs ${LOG}.?