Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liblongpath-rsync
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liblongpath
liblongpath-rsync
Commits
c8313794
Commit
c8313794
authored
Oct 31, 1999
by
Andrew Tridgell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updated test suite from Phil.
parent
d73ee7b7
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
68 additions
and
34 deletions
+68
-34
test.sh
test.sh
+68
-34
No files found.
test.sh
View file @
c8313794
#!/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)
#
...
...
@@ -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
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
...
...
@@ -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
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
()
{
echo
-n
"Test
$4
:
$5
:"
log
=
${
LOG
}
.
$
4
testnum
=
`
expr
0
${
testnum
}
+ 1
`
log
=
${
LOG
}
.
$
{
testnum
}
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
}
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
}
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
echo
" done."
test
-z
"
${
Debian
}
"
&&
echo
" done."
rm
$log
return
0
else
echo
" FAILED."
if
test
-n
"
${
Debian
}
"
;
then
cat
${
log
}
rm
${
log
}
else
echo
" FAILED (test #
${
testnum
}
)."
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
<<
EOF
...
...
@@ -87,44 +120,45 @@ EOF
# 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
checkit
"rsync -avH
${
FROM
}
/
${
TO
}
"
${
FROM
}
/
${
TO
}
\
2
"hard links"
runtest
"hard links"
'checkit "rsync -avH ${FROM}/ ${TO}" ${FROM}/ ${TO}'
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
}
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
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
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"
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
echo
""
echo
"**** Skipping SSH tests because ssh is not in the path ****"
echo
""
printmsg
"Skipping SSH tests because ssh is not in the path"
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
}
.?
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment