Don't rely on the local shell's wildcard expansion to make the test
[rsync/rsync.git] / testsuite / merge.test
1 #! /bin/sh
2
3 # Copyright (C) 2004 by Wayne Davison <wayned@samba.org>
4
5 # This program is distributable under the terms of the GNU GPL (see
6 # COPYING).
7
8 # Make sure we can merge files from multiple directories into one.
9
10 . $srcdir/testsuite/rsync.fns
11
12 set -x
13
14 # Build some files/dirs/links to copy
15
16 fromdir="$scratchdir/from"
17 from1dir="${fromdir}1"
18 from2dir="${fromdir}2"
19 from3dir="${fromdir}3"
20 todir="$scratchdir/to"
21 chkdir="$scratchdir/chk"
22
23 mkdir "$from1dir" "$from2dir" "$from3dir"
24 mkdir "$from2dir"/sub1 "$from3dir"/sub1
25 mkdir "$from3dir"/sub2
26 mkdir "$chkdir" "$chkdir"/sub1 "$chkdir"/sub2
27 echo "one" >"$from1dir"/one
28 cp -p "$from1dir"/one "$from2dir"/one
29 cp -p "$from1dir"/one "$from3dir"/one
30 echo "two" >"$from1dir"/two
31 echo "three" >"$from2dir"/three
32 echo "four" >"$from3dir"/four
33 echo "five" >"$from1dir"/five
34 echo "six" >"$from3dir"/six
35 echo "sub1" >"$from2dir"/sub1/uno
36 cp -p "$from2dir"/sub1/uno "$from3dir"/sub1/uno
37 echo "sub2" >"$from3dir"/sub1/dos
38 echo "sub3" >"$from2dir"/sub1/tres
39 echo "subby" >"$from3dir"/sub2/subby
40
41 cp -p "$from1dir"/one "$from1dir"/two "$from2dir"/three "$from3dir"/four "$from1dir"/five "$from3dir"/six "$chkdir"
42 cp -p "$from2dir"/sub1/uno "$from3dir"/sub1/dos "$from2dir"/sub1/tres "$chkdir"/sub1
43 cp -p "$from3dir"/sub2/subby "$chkdir"/sub2
44
45 # Get rid of any directory-time differences
46 $RSYNC -av --existing --include='*/' --exclude='*' "$from1dir/" "$from2dir/" "$from3dir/" "$chkdir/"
47
48 checkit "$RSYNC -aHvv \"$from1dir/\" \"$from2dir/\" \"$from3dir/\" \"$todir/\"" "$chkdir" "$todir"
49
50 # The script would have aborted on error, so getting here means we've won.
51 exit 0