+
+WVSTART "ftp"
+WVPASS bup ftp "cat /master/latest/$TOP/$D/b" >$D/b.new
+WVPASS bup ftp "cat /master/latest/$TOP/$D/f" >$D/f.new
+WVPASS bup ftp "cat /master/latest/$TOP/$D/f"{,} >$D/f2.new
+WVPASS bup ftp "cat /master/latest/$TOP/$D/a" >$D/a.new
+WVPASSEQ "$(sha1sum <$D/b)" "$(sha1sum <$D/b.new)"
+WVPASSEQ "$(sha1sum <$D/f)" "$(sha1sum <$D/f.new)"
+WVPASSEQ "$(cat $D/f.new{,} | sha1sum)" "$(sha1sum <$D/f2.new)"
+WVPASSEQ "$(sha1sum <$D/a)" "$(sha1sum <$D/a.new)"
+
+WVSTART "fsck"
+WVPASS bup fsck
+WVPASS bup fsck --quick
+if bup fsck --par2-ok; then
+ WVSTART "fsck (par2)"
+else
+ WVSTART "fsck (PAR2 IS MISSING)"
+fi
+WVPASS bup fsck -g
+WVPASS bup fsck -r
+WVPASS bup damage $BUP_DIR/objects/pack/*.pack -n10 -s1 -S0
+WVFAIL bup fsck --quick
+WVFAIL bup fsck --quick --disable-par2
+chmod u+w $BUP_DIR/objects/pack/*.idx
+WVPASS bup damage $BUP_DIR/objects/pack/*.idx -n10 -s1 -S0
+WVFAIL bup fsck --quick -j4
+WVPASS bup damage $BUP_DIR/objects/pack/*.pack -n10 -s1024 --percent 0.4 -S0
+WVFAIL bup fsck --quick
+WVFAIL bup fsck --quick -rvv -j99 # fails because repairs were needed
+if bup fsck --par2-ok; then
+ WVPASS bup fsck -r # ok because of repairs from last time
+ WVPASS bup damage $BUP_DIR/objects/pack/*.pack -n202 -s1 --equal -S0
+ WVFAIL bup fsck
+ WVFAIL bup fsck -rvv # too many errors to be repairable
+ WVFAIL bup fsck -r # too many errors to be repairable
+else
+ WVFAIL bup fsck --quick -r # still fails because par2 was missing
+fi