X-Git-Url: https://arthur.barton.de/gitweb/?a=blobdiff_plain;f=t%2Ftest-fuse.sh;h=1ed35542473f09db017633c4b04317d7bfd68c0e;hb=57aaebfd07e7f35aed2ebd44191669b1d9db49df;hp=f258889d9f62fe78cc55322180a17fc6d34955c6;hpb=2450055507cd709da9467335f8e5ee83c724360d;p=bup.git diff --git a/t/test-fuse.sh b/t/test-fuse.sh index f258889..1ed3554 100755 --- a/t/test-fuse.sh +++ b/t/test-fuse.sh @@ -1,14 +1,29 @@ #!/usr/bin/env bash -. ./wvtest-bup.sh +. ./wvtest-bup.sh || exit $? +. t/lib.sh || exit $? set -o pipefail +unset BLOCKSIZE BLOCK_SIZE DF_BLOCK_SIZE + +root_status="$(t/root-status)" || exit $? + +if ! bup-python -c 'import fuse' 2> /dev/null; then + WVSTART 'unable to import fuse; skipping test' + exit 0 +fi + +if test -n "$(type -p modprobe)" && ! modprobe fuse; then + echo 'Unable to load fuse module; skipping dependent tests.' 1>&2 + exit 0 +fi + if ! fusermount -V; then echo 'skipping FUSE tests: fusermount does not appear to work' exit 0 fi -if ! groups | grep -q fuse && test "$(t/root-status)" != root; then +if ! groups | grep -q fuse && test "$root_status" != root; then echo 'skipping FUSE tests: you are not root and not in the fuse group' exit 0 fi @@ -21,13 +36,24 @@ export GIT_DIR="$tmpdir/bup" bup() { "$top/bup" "$@"; } +# Some versions of bash's printf don't support the relevant date expansion. +savename() +{ + readonly secs="$1" + WVPASS bup-python -c "from time import strftime, localtime; \ + print(strftime('%Y-%m-%d-%H%M%S', localtime($secs)))" +} + +export TZ=UTC + WVPASS bup init WVPASS cd "$tmpdir" -savestamp1=$(WVPASS python -c 'import time; print int(time.time())') || exit $? +savestamp1=$(WVPASS bup-python -c 'import time; print(int(time.time()))') || exit $? savestamp2=$(($savestamp1 + 1)) -savename1="$(printf '%(%Y-%m-%d-%H%M%S)T' "$savestamp1")" || exit $? -savename2="$(printf '%(%Y-%m-%d-%H%M%S)T' "$savestamp2")" || exit $? + +savename1="$(savename "$savestamp1")" || exit $? +savename2="$(savename "$savestamp2")" || exit $? WVPASS mkdir src WVPASS echo content > src/foo @@ -56,10 +82,12 @@ result=$(WVPASS ls mnt/src/latest) || exit $? WVPASSEQ "$result" "foo pre-epoch" +result=$(WVPASS cat mnt/src/latest/foo) || exit $? +WVPASSEQ "$result" "content" + # Right now we don't detect new saves. WVPASS bup save -n src -d "$savestamp2" --strip src result=$(WVPASS ls mnt/src) || exit $? -savename="$(WVPASS printf '%(%Y-%m-%d-%H%M%S)T' "$savestamp1")" || exit $? WVPASSEQ "$result" "$savename1 latest" @@ -67,12 +95,12 @@ WVPASS fusermount -uz mnt WVSTART "extended metadata" WVPASS bup fuse --meta mnt -result=$(TZ=UTC LC_ALL=C WVPASS ls -l mnt/src/latest/) || exit $? readonly user=$(WVPASS id -un) || $? readonly group=$(WVPASS id -gn) || $? -WVPASSEQ "$result" "total 0 --rw-r--r-- 1 $user $group 8 Nov 11 2011 foo --rw-r--r-- 1 $user $group 8 Jan 1 1970 pre-epoch" +result="$(stat --format='%A %U %G %x' mnt/src/latest/foo)" +WVPASSEQ "$result" "-rw-r--r-- $user $group 2011-11-11 11:11:00.000000000 +0000" +result="$(stat --format='%A %U %G %x' mnt/src/latest/pre-epoch)" +WVPASSEQ "$result" "-rw-r--r-- $user $group 1970-01-01 00:00:00.000000000 +0000" WVPASS fusermount -uz mnt WVPASS rm -rf "$tmpdir"