summaryrefslogtreecommitdiffstats
path: root/testsuite/files-from.test
blob: 207eab5f2d41686e54ab13fa41b887565188f454 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/sh

# Copyright (C) 2008-2020 Wayne Davison

# This program is distributable under the terms of the GNU GPL (see
# COPYING).

# Test that --files-from=FILE works right.

. "$suitedir/rsync.fns"

SSH="$scratchdir/src/support/lsh.sh"

hands_setup

# This list of files skips the contents of "subsubdir" but includes
# the contents of "subsubdir2" due to its trailing slash.
cat >"$scratchdir/filelist" <<EOT
from/./
from/./dir/subdir
from/./dir/subdir/subsubdir
from/./dir/subdir/subsubdir2/
from/./dir/subdir/foobar.baz
EOT

# Create a chkdir without the content that we expect to be omitted.
$RSYNC -a --exclude=dir/text --exclude='subsubdir/**' "$fromdir/" "$chkdir/"

checkit "$RSYNC -av --files-from='$scratchdir/filelist' '$scratchdir' '$todir/'" "$chkdir" "$todir"

for filehost in '' 'localhost:'; do
    for srchost in '' 'localhost:'; do
	if [ -z "$srchost" ]; then
	    desthost='localhost:'
	else
	    desthost=''
	fi

	rm -rf "$todir"
	checkit "$RSYNC -avse '$SSH' --rsync-path='$RSYNC' --files-from='$filehost$scratchdir/filelist' '$srchost$scratchdir' '$desthost$todir/'" "$chkdir" "$todir"
    done
done

# The script would have aborted on error, so getting here means we've won.
exit 0