setup-test-tree()
{
- WVPASS make PREFIX="$tmpdir"/src install
+ WVPASS "$TOP/t/sync-tree" "$TOP/t/sampledata/" "$tmpdir/src/"
# Add some hard links for the general tests.
(
# Test a deeper subdir/ to make sure top-level non-dir metadata is
# restored correctly. We need at least one dir and one non-dir at
# the "top-level".
- WVPASS test -d src/bin
- WVPASS test -f src/bin/bup
+ WVPASS test -d src/var/cmd
+ WVPASS test -f src/var/cmd/save-cmd.py
WVPASS rm -rf "$BUP_DIR"
WVPASS bup init
WVPASS touch -t 201111111111 src-restore # Make sure the top won't match.
WVPASS bup index src
WVPASS bup save -t -n src src
WVPASS force-delete src-restore
- WVPASS bup restore -C src-restore "/src/latest$(pwd)/src/lib/"
+ WVPASS bup restore -C src-restore "/src/latest$(pwd)/src/var/."
WVPASS touch -t 201211111111 src-restore # Make sure the top won't match.
# Check that the only difference is the top dir.
- WVFAIL $TOP/t/compare-trees -c src/lib/ src-restore/ > tmp-compare-trees
- WVPASSEQ $(cat tmp-compare-trees | wc -l) 2
- WVPASS tail -n +2 tmp-compare-trees | WVPASS grep -qE '^\.d[^ ]+ \./$'
+ WVFAIL $TOP/t/compare-trees -c src/var/ src-restore/ > tmp-compare-trees
+ WVPASSEQ $(cat tmp-compare-trees | wc -l) 1
+ # The number of rsync status characters varies, so accept any
+ # number of trailing dots. For example OS X native rsync produces
+ # 9, but Homebrew's produces 12, while on other platforms, 11 is
+ # common.
+ expected_diff_rx='^\.d\.\.t\.\.\.(\.)+ \./$'
+ if ! grep -qE "$expected_diff_rx" tmp-compare-trees; then
+ echo -n 'tmp-compare-trees: ' 1>&2
+ cat tmp-compare-trees 1>&2
+ fi
+ WVPASS grep -qE "$expected_diff_rx" tmp-compare-trees
WVPASS rm -r "$tmpdir"
) || exit $?
WVPASS "$TOP/t/compare-trees" -c src/ src-restore-1/src/
WVPASS echo "blarg" > src/volatile/1
- WVPASS cp -a src/volatile/1 src-restore-1/src/volatile/
+ WVPASS cp -pP src/volatile/1 src-restore-1/src/volatile/
WVPASS bup index src
# Bup should *not* pick up these metadata changes.
WVPASS mkdir src/foo
WVPASS touch src/foo/{1,2,3}
WVPASS bup meta -cf src.meta src
- WVPASSEQ "$(LC_ALL=C; bup meta -tf src.meta | sort)" "src/
+ WVPASSEQ "$(bup meta -tf src.meta | LC_ALL=C sort)" "src/
src/foo/
src/foo/1
src/foo/2
src/foo/3"
WVPASS bup meta --no-recurse -cf src.meta src
- WVPASSEQ "$(LC_ALL=C; bup meta -tf src.meta | sort)" "src/"
+ WVPASSEQ "$(bup meta -tf src.meta | LC_ALL=C sort)" "src/"
WVPASS rm -r "$tmpdir"
) || exit $?
tmpdir="$(WVPASS wvmktempdir)" || exit $?
- first_group="$(WVPASS python -c 'import os,grp; \
- print grp.getgrgid(os.getgroups()[0])[0]')" || exit $?
- last_group="$(python -c 'import os,grp; \
- print grp.getgrgid(os.getgroups()[-1])[0]')" || exit $?
+ # FIXME: binary groups
+ first_group="$(WVPASS bup-python -c 'import os,grp; \
+ print(grp.getgrgid(os.getgroups()[0])[0])')" || exit $?
+ last_group="$(bup-python -c 'import os,grp; \
+ print(grp.getgrgid(os.getgroups()[-1])[0])')" || exit $?
last_group_erx="$(escape-erx "$last_group")"
WVSTART 'metadata (restoration of ownership)'
(
WVPASS mkdir "$testfs"/src/foo
WVPASS touch "$testfs"/src/bar
- PYTHONPATH="$TOP/lib" \
- WVPASS python -c "from bup import xstat; \
+ WVPASS bup-python -c "from bup import xstat; \
x = xstat.timespec_to_nsecs((42, 0));\
- xstat.utime('$testfs/src/foo', (x, x));\
- xstat.utime('$testfs/src/bar', (x, x));"
+ xstat.utime(b'$testfs/src/foo', (x, x));\
+ xstat.utime(b'$testfs/src/bar', (x, x));"
WVPASS cd "$testfs"
WVPASS bup meta -v --create --recurse --file src.meta src
WVPASS bup meta -tvf src.meta
(
WVPASS touch "$testfs"/src/foo
WVPASS mkdir "$testfs"/src/bar
- WVPASS chattr +acdeijstuADST "$testfs"/src/foo
+ WVPASS chattr +acdeijstuADS "$testfs"/src/foo
WVPASS chattr +acdeijstuADST "$testfs"/src/bar
(WVPASS cd "$testfs"; WVPASS test-src-create-extract) || exit $?
# Test restoration to a limited filesystem (vfat).
WVPASS cd "$testfs_limited"/src-restore
WVFAIL bup meta --extract --file "$testfs"/src.meta 2>&1 \
| WVPASS grep -e '^Linux chattr:' \
- | WVPASS python -c \
+ | WVPASS bup-python -c \
'import sys; exit(not len(sys.stdin.readlines()) == 3)'
) || exit $?
) || exit $?
WVPASS cd "$testfs_limited"/src-restore
WVFAIL bup meta --extract --file "$testfs"/src.meta
WVFAIL bup meta --extract --file "$testfs"/src.meta 2>&1 \
- | WVPASS grep -e "^xattr\.set '" \
- | WVPASS python -c \
+ | WVPASS grep -e "^xattr\.set u\?'" \
+ | WVPASS bup-python -c \
'import sys; exit(not len(sys.stdin.readlines()) == 2)'
) || exit $?
WVPASS cd "$testfs_limited"/src-restore
WVFAIL bup meta --extract --file "$testfs"/src.meta 2>&1 \
| WVPASS grep -e '^POSIX1e ACL applyto:' \
- | WVPASS python -c \
+ | WVPASS bup-python -c \
'import sys; exit(not len(sys.stdin.readlines()) == 2)'
) || exit $?