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 58 59 60 61 62 63 64
|
#!/usr/bin/env bash
. ./wvtest-bup.sh
set -o pipefail
top="$(WVPASS pwd)" || exit $?
tmpdir="$(WVPASS wvmktempdir)" || exit $?
export BUP_DIR="$tmpdir/bup"
export GIT_DIR="$tmpdir/bup"
bup() { "$top/bup" "$@"; }
expect-one-src-missing()
{
set -x
bup validate-ref-links "$@" > validate.log 2>&1
rc=$?
set +x
cat validate.log
WVPASSEQ 1 "$rc"
WVPASSEQ 1 "$(grep -cE '^missing ' validate.log)"
}
WVPASS cd "$tmpdir"
WVPASS bup init
WVPASS mkdir -p src/a
WVPASS echo 1 > src/a/1
WVPASS echo 2 > src/a/2
WVPASS echo 3 > src/a/3
WVPASS bup index src
WVPASS bup save --strip -n src src
WVPASS bup validate-ref-links 2>&1 | tee validate.log
WVPASS grep -vE '^missing ' validate.log
WVPASS git ls-tree src:a | WVPASS cut -d' ' -f 3 \
| WVPASS cut -b -40 | WVPASS head -1 > bupm-oid
WVPASS "$top/dev/perforate-repo" --drop-oids "$BUP_DIR" < bupm-oid
expect-one-src-missing
WVSTART 'validate specific refs'
WVPASS mkdir -p more/a
WVPASS echo 4 > more/a/4
WVPASS echo 5 > more/a/5
WVPASS bup index more
WVPASS bup save --strip -n more more
WVPASS bup validate-ref-links more 2>&1 | tee validate.log
WVPASS grep -vE '^missing ' validate.log
expect-one-src-missing
expect-one-src-missing src
WVPASS bup rm --unsafe src
WVPASS bup validate-ref-links 2>&1 | tee validate.log
WVPASS grep -vE '^missing ' validate.log
WVPASS rm -rf "$tmpdir"
|