]> arthur.barton.de Git - bup.git/blob - test/ext/test-save-smaller
Update base_version to 0.34~ for 0.34 development
[bup.git] / test / ext / test-save-smaller
1 #!/usr/bin/env bash
2 . wvtest.sh
3 . wvtest-bup.sh
4 . dev/lib.sh
5
6 set -o pipefail
7
8 top="$(WVPASS pwd)" || exit $?
9 tmpdir="$(WVPASS wvmktempdir)" || exit $?
10 export BUP_DIR="$tmpdir/bup"
11
12 bup() { "$top/bup" "$@"; }
13 sha1sum() { "$top/dev/checksum" -t sha1 "$@"; }
14
15 WVPASS cd "$tmpdir"
16
17 WVSTART "init"
18 WVPASS bup init
19
20 WVPASS mkdir "$tmpdir/save"
21 WVPASS echo small0 > "$tmpdir/save/small"
22 WVPASS echo bigbigbigbigbig01 > "$tmpdir/save/big1"
23 big1sha="$(sha1sum < "$tmpdir/save/big1")"
24 WVPASS bup index "$tmpdir/save"
25 WVPASS bup save -vv -n test "$tmpdir/save"
26 WVPASS mkdir "$tmpdir/restore1"
27 WVPASS bup restore -v --outdir="$tmpdir/restore1/" "/test/latest$tmpdir/save/"
28 WVPASS cmp "$tmpdir/restore1/small" "$tmpdir/save/small"
29 WVPASS cmp "$tmpdir/restore1/big1" "$tmpdir/save/big1"
30
31 WVSTART "save --smaller"
32 WVPASS echo bigbigbigbigbig02 > "$tmpdir/save/big1"
33 WVPASS echo bigbigbigbigbig03 > "$tmpdir/save/big2"
34 WVPASS bup index "$tmpdir/save"
35 WVPASS bup save -vv -n test --smaller=10 "$tmpdir/save"
36 WVPASS mkdir "$tmpdir/restore2"
37 WVPASS bup restore -v --outdir="$tmpdir/restore2/" "/test/latest$tmpdir/save/"
38 WVPASS cmp "$tmpdir/restore2/small" "$tmpdir/save/small"
39 # (per the original DESIGN document, we should've had the old version
40 # of the modified large file, but really that isn't implemented)
41 # must _not_ have this file at all
42 WVFAIL test -f "$tmpdir/restore2/big1"
43 # and not the new one either
44 WVFAIL test -f "$tmpdir/restore2/big2"
45
46 WVSTART "index --fake-valid / save"
47 WVPASS echo bigbigbigbigbig02 > "$tmpdir/save/big1"
48 WVPASS echo bigbigbigbigbig03 > "$tmpdir/save/big2"
49 WVPASS bup index "$tmpdir/save"
50 WVPASS bup index --fake-valid "$tmpdir/save/big1" "$tmpdir/save/big2"
51 WVPASS bup save -vv -n test "$tmpdir/save"
52 WVPASS mkdir "$tmpdir/restore3"
53 WVPASS bup restore -v --outdir="$tmpdir/restore3/" "/test/latest$tmpdir/save/"
54 WVPASS cmp "$tmpdir/restore3/small" "$tmpdir/save/small"
55 WVPASSEQ "$(sha1sum < "$tmpdir/restore3/big1")" "$big1sha"
56 WVPASS cmp "$tmpdir/restore3/big2" "$tmpdir/save/big2"
57
58 WVPASS rm -rf "$tmpdir"