aboutsummaryrefslogtreecommitdiffstats
path: root/tests/t0100-redo.t
blob: a2b757f539b993402930e46d5720a5de0e35ec3e (plain) (blame)
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
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/sh -e
# Copyright (c) 2015-2016 Tharre
#
# This software may be modified and distributed under the terms
# of the MIT license.  See the LICENSE file for details.

test_description='Redo tests'

. ./sharness.sh

cat > "a.do" <<'EOF'
#!/bin/sh -e
redo-ifchange b
echo "a" | cat - b > $3
EOF

cat > "b.do" <<'EOF'
#!/bin/sh -e
redo-ifchange c
[ -e "b" ] && exit 1
echo "b" | cat - c > $3
EOF

cat > "c.do" <<'EOF'
#!/bin/sh -e
redo-ifchange s
echo "c" > $3
EOF

test_expect_success "redo shortcuts" "
    echo "s1" > s &&
    redo a &&
    echo "s2" > s &&
    redo a
"

cat > "nonexistant.do" << 'EOF'
#!/bin/sh -e
redo-ifchange nonexistant2
cat nonexistant2 > $3
EOF

cat > "nonexistant2.do" <<'EOF'
#!/bin/sh -e
[ -e "dir/b" ] && redo-ifchange dir/b && cat dir/b > $3
echo "b" >> $3
EOF

test_expect_success "redo should succeed despite missing directories" "
    mkdir dir &&
    echo a > dir/b &&
    redo nonexistant &&
    rm -rf dir &&
    redo nonexistant
"

test_done