]> arthur.barton.de Git - bup.git/blob - t/test-fsck.sh
test-fsck: test invocation with pack arguments
[bup.git] / t / test-fsck.sh
1 #!/usr/bin/env bash
2 . ./wvtest-bup.sh || exit $?
3
4 set -o pipefail
5
6 top="$(WVPASS pwd)" || exit $?
7 tmpdir="$(WVPASS wvmktempdir)" || exit $?
8
9 bup() { "$top/bup" "$@"; }
10
11 WVPASS "$top/t/sync-tree" "$top/t/sampledata/" "$tmpdir/src/"
12
13 export BUP_DIR="$tmpdir/bup"
14 export GIT_DIR="$tmpdir/bup"
15
16 WVPASS bup init
17 WVPASS cd "$tmpdir"
18
19 WVSTART "fsck"
20
21 WVPASS bup index src
22 WVPASS bup save -n fsck-test src/b2
23 WVPASS bup save -n fsck-test src/var/cmd
24 WVPASS bup save -n fsck-test src/var/doc
25 WVPASS bup save -n fsck-test src/var/lib
26 WVPASS bup save -n fsck-test src/y
27 WVPASS bup fsck
28 WVPASS bup fsck "$BUP_DIR"/objects/pack/pack-*.pack
29 WVPASS bup fsck --quick
30 if bup fsck --par2-ok; then
31     WVSTART "fsck (par2)"
32 else
33     WVSTART "fsck (PAR2 IS MISSING)"
34 fi
35 WVPASS bup fsck -g
36 WVPASS bup fsck -r
37 WVPASS bup damage "$BUP_DIR"/objects/pack/*.pack -n10 -s1 -S0
38 WVFAIL bup fsck --quick
39 WVFAIL bup fsck --quick --disable-par2
40 WVPASS chmod u+w "$BUP_DIR"/objects/pack/*.idx
41 WVPASS bup damage "$BUP_DIR"/objects/pack/*.idx -n10 -s1 -S0
42 WVFAIL bup fsck --quick -j4
43 WVPASS bup damage "$BUP_DIR"/objects/pack/*.pack -n10 -s1024 --percent 0.4 -S0
44 WVFAIL bup fsck --quick
45 WVFAIL bup fsck --quick -rvv -j99   # fails because repairs were needed
46 if bup fsck --par2-ok; then
47     WVPASS bup fsck -r # ok because of repairs from last time
48     WVPASS bup damage "$BUP_DIR"/objects/pack/*.pack -n202 -s1 --equal -S0
49     WVFAIL bup fsck
50     WVFAIL bup fsck -rvv   # too many errors to be repairable
51     WVFAIL bup fsck -r   # too many errors to be repairable
52 else
53     WVFAIL bup fsck --quick -r # still fails because par2 was missing
54 fi
55
56
57 WVPASS rm -rf "$tmpdir"