2 . ./wvtest-bup.sh || exit $?
6 top="$(WVPASS pwd)" || exit $?
7 tmpdir="$(WVPASS wvmktempdir)" || exit $?
9 bup() { "$top/bup" "$@"; }
11 WVPASS "$top/dev/sync-tree" "$top/test/sampledata/" "$tmpdir/src/"
13 export BUP_DIR="$tmpdir/bup"
14 export GIT_DIR="$tmpdir/bup"
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
28 WVPASS bup fsck "$BUP_DIR"/objects/pack/pack-*.pack
29 WVPASS bup fsck --quick
30 if bup fsck --par2-ok; then
33 WVSTART "fsck (PAR2 IS MISSING)"
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
50 WVFAIL bup fsck -rvv # too many errors to be repairable
51 WVFAIL bup fsck -r # too many errors to be repairable
53 WVFAIL bup fsck --quick -r # still fails because par2 was missing
57 WVPASS rm -rf "$tmpdir"