]> arthur.barton.de Git - bup.git/blob - t/test-drecurse.sh
test-restore-map-owner: accommodate python 3 and test there
[bup.git] / t / test-drecurse.sh
1 #!/usr/bin/env bash
2 . ./wvtest-bup.sh || exit $?
3 . t/lib.sh || exit $?
4
5 set -o pipefail
6
7 top="$(WVPASS pwd)" || exit $?
8 tmpdir="$(WVPASS wvmktempdir)" || exit $?
9
10 export BUP_DIR="$tmpdir/bup"
11 export GIT_DIR="$tmpdir/bup"
12
13 bup() { "$top/bup" "$@"; }
14
15 WVPASS cd "$tmpdir"
16
17 # These tests aren't comprehensive, but test-save-restore-excludes.sh
18 # exercises some of the same code more thoroughly via index, and
19 # --xdev is handled in test-xdev.sh.
20
21 WVSTART "drecurse"
22 WVPASS bup init
23 WVPASS mkdir src src/a src/b
24 WVPASS touch src/a/1 src/a/2 src/b/1 src/b/2 src/c
25 (cd src && WVPASS ln -s a a-link)
26 WVPASSEQ "$(bup drecurse src)" "src/c
27 src/b/2
28 src/b/1
29 src/b/
30 src/a/2
31 src/a/1
32 src/a/
33 src/a-link
34 src/"
35
36 WVSTART "drecurse --exclude (file)"
37 WVPASSEQ "$(bup drecurse --exclude src/b/2 src)" "src/c
38 src/b/1
39 src/b/
40 src/a/2
41 src/a/1
42 src/a/
43 src/a-link
44 src/"
45
46 WVSTART "drecurse --exclude (dir)"
47 WVPASSEQ "$(bup drecurse --exclude src/b/ src)" "src/c
48 src/a/2
49 src/a/1
50 src/a/
51 src/a-link
52 src/"
53
54 WVSTART "drecurse --exclude (symlink)"
55 WVPASSEQ "$(bup drecurse --exclude src/a-link src)" "src/c
56 src/b/2
57 src/b/1
58 src/b/
59 src/a/2
60 src/a/1
61 src/a/
62 src/"
63
64 WVSTART "drecurse --exclude (absolute path)"
65 WVPASSEQ "$(bup drecurse --exclude src/b/2 "$(pwd)/src")" "$(pwd)/src/c
66 $(pwd)/src/b/1
67 $(pwd)/src/b/
68 $(pwd)/src/a/2
69 $(pwd)/src/a/1
70 $(pwd)/src/a/
71 $(pwd)/src/a-link
72 $(pwd)/src/"
73
74 WVSTART "drecurse --exclude-from"
75 WVPASS echo "src/b" > exclude-list
76 WVPASSEQ "$(bup drecurse --exclude-from exclude-list src)" "src/c
77 src/a/2
78 src/a/1
79 src/a/
80 src/a-link
81 src/"
82
83 WVSTART "drecurse --exclude-rx (trivial)"
84 WVPASSEQ "$(bup drecurse --exclude-rx '^src/b' src)" "src/c
85 src/a/2
86 src/a/1
87 src/a/
88 src/a-link
89 src/"
90
91 WVSTART "drecurse --exclude-rx (trivial - absolute path)"
92 WVPASSEQ "$(bup drecurse --exclude-rx "^$(pwd)/src/b" "$(pwd)/src")" \
93 "$(pwd)/src/c
94 $(pwd)/src/a/2
95 $(pwd)/src/a/1
96 $(pwd)/src/a/
97 $(pwd)/src/a-link
98 $(pwd)/src/"
99
100 WVPASS rm -rf "$tmpdir"