Add tests for inline static deltas
This commit is contained in:
parent
ccb77d3bd8
commit
ee70ffbbcb
|
|
@ -109,6 +109,28 @@ assert_not_has_file baz/saucer
|
||||||
|
|
||||||
echo "ok static delta"
|
echo "ok static delta"
|
||||||
|
|
||||||
|
cd ${test_tmpdir}
|
||||||
|
rm main-files -rf
|
||||||
|
ostree --repo=ostree-srv/gnomerepo checkout main main-files
|
||||||
|
cd main-files
|
||||||
|
echo "more added files for static deltas" > added-file2
|
||||||
|
ostree --repo=${test_tmpdir}/ostree-srv/gnomerepo commit -b main -s 'inline static delta test'
|
||||||
|
cd ..
|
||||||
|
rm main-files -rf
|
||||||
|
# Generate new delta that we'll use
|
||||||
|
ostree --repo=ostree-srv/gnomerepo static-delta generate --inline main
|
||||||
|
|
||||||
|
cd ${test_tmpdir}
|
||||||
|
${CMD_PREFIX} ostree --repo=repo pull origin main
|
||||||
|
${CMD_PREFIX} ostree --repo=repo fsck
|
||||||
|
|
||||||
|
rm checkout-origin-main -rf
|
||||||
|
$OSTREE checkout origin:main checkout-origin-main
|
||||||
|
cd checkout-origin-main
|
||||||
|
assert_file_has_content added-file2 "more added files for static deltas"
|
||||||
|
|
||||||
|
echo "ok inline static delta"
|
||||||
|
|
||||||
cd ${test_tmpdir}
|
cd ${test_tmpdir}
|
||||||
rm main-files -rf
|
rm main-files -rf
|
||||||
ostree --repo=ostree-srv/gnomerepo checkout main main-files
|
ostree --repo=ostree-srv/gnomerepo checkout main main-files
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,28 @@ function permuteDirectory() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_assert_one_direntry_matching() {
|
||||||
|
local path=$1
|
||||||
|
local r=$2
|
||||||
|
local child=""
|
||||||
|
local bn
|
||||||
|
for p in ${path}/*; do
|
||||||
|
bn=$(basename $p)
|
||||||
|
if ! echo ${bn} | grep -q "$r"; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if test -z "${child}"; then
|
||||||
|
child=${bn}
|
||||||
|
else
|
||||||
|
assert_not_reached "Expected only one child matching ${r} in ${path}";
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if test -z "${child}"; then
|
||||||
|
assert_not_reached "Failed to find child matching ${r}"
|
||||||
|
fi
|
||||||
|
echo ${child}
|
||||||
|
}
|
||||||
|
|
||||||
origrev=$(${CMD_PREFIX} ostree --repo=repo rev-parse test)
|
origrev=$(${CMD_PREFIX} ostree --repo=repo rev-parse test)
|
||||||
|
|
||||||
ostree --repo=repo static-delta generate --empty --to=${origrev}
|
ostree --repo=repo static-delta generate --empty --to=${origrev}
|
||||||
|
|
@ -66,8 +88,20 @@ permuteDirectory 1 files
|
||||||
ostree --repo=repo commit -b test -s test --tree=dir=files
|
ostree --repo=repo commit -b test -s test --tree=dir=files
|
||||||
|
|
||||||
newrev=$(${CMD_PREFIX} ostree --repo=repo rev-parse test)
|
newrev=$(${CMD_PREFIX} ostree --repo=repo rev-parse test)
|
||||||
|
|
||||||
|
ostree --repo=repo static-delta generate --from=${origrev} --to=${newrev} --inline
|
||||||
|
|
||||||
|
deltaprefix=$(get_assert_one_direntry_matching repo/deltas '.')
|
||||||
|
deltadir=$(get_assert_one_direntry_matching repo/deltas/${deltaprefix} '-')
|
||||||
|
|
||||||
|
assert_has_file repo/deltas/${deltaprefix}/${deltadir}/superblock
|
||||||
|
assert_not_has_file repo/deltas/${deltaprefix}/${deltadir}/0
|
||||||
|
|
||||||
ostree --repo=repo static-delta generate --from=${origrev} --to=${newrev}
|
ostree --repo=repo static-delta generate --from=${origrev} --to=${newrev}
|
||||||
|
|
||||||
|
assert_has_file repo/deltas/${deltaprefix}/${deltadir}/superblock
|
||||||
|
assert_has_file repo/deltas/${deltaprefix}/${deltadir}/0
|
||||||
|
|
||||||
ostree --repo=repo static-delta generate --disable-bsdiff --from=${origrev} --to=${newrev} 2>&1 | grep "bsdiff=0 objects"
|
ostree --repo=repo static-delta generate --disable-bsdiff --from=${origrev} --to=${newrev} 2>&1 | grep "bsdiff=0 objects"
|
||||||
ostree --repo=repo static-delta generate --max-bsdiff-size=0 --from=${origrev} --to=${newrev} 2>&1 | grep "bsdiff=0 objects"
|
ostree --repo=repo static-delta generate --max-bsdiff-size=0 --from=${origrev} --to=${newrev} 2>&1 | grep "bsdiff=0 objects"
|
||||||
ostree --repo=repo static-delta generate --max-bsdiff-size=10000 --from=${origrev} --to=${newrev} 2>&1 | grep "bsdiff=[1-9]"
|
ostree --repo=repo static-delta generate --max-bsdiff-size=10000 --from=${origrev} --to=${newrev} 2>&1 | grep "bsdiff=[1-9]"
|
||||||
|
|
@ -91,28 +125,6 @@ rm repo2 -rf
|
||||||
mkdir repo2 && ostree --repo=repo2 init --mode=bare-user
|
mkdir repo2 && ostree --repo=repo2 init --mode=bare-user
|
||||||
mkdir deltadir
|
mkdir deltadir
|
||||||
|
|
||||||
get_assert_one_direntry_matching() {
|
|
||||||
local path=$1
|
|
||||||
local r=$2
|
|
||||||
local child=""
|
|
||||||
local bn
|
|
||||||
for p in ${path}/*; do
|
|
||||||
bn=$(basename $p)
|
|
||||||
if ! echo ${bn} | grep -q "$r"; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
if test -z "${child}"; then
|
|
||||||
child=${bn}
|
|
||||||
else
|
|
||||||
assert_not_reached "Expected only one child matching ${r} in ${path}";
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if test -z "${child}"; then
|
|
||||||
assert_not_reached "Failed to find child matching ${r}"
|
|
||||||
fi
|
|
||||||
echo ${child}
|
|
||||||
}
|
|
||||||
|
|
||||||
deltaprefix=$(get_assert_one_direntry_matching repo/deltas '.')
|
deltaprefix=$(get_assert_one_direntry_matching repo/deltas '.')
|
||||||
deltadir=$(get_assert_one_direntry_matching repo/deltas/${deltaprefix} '-')
|
deltadir=$(get_assert_one_direntry_matching repo/deltas/${deltaprefix} '-')
|
||||||
ostree --repo=repo2 pull-local repo ${origrev}
|
ostree --repo=repo2 pull-local repo ${origrev}
|
||||||
|
|
@ -120,3 +132,20 @@ ostree --repo=repo2 ls ${origrev} >/dev/null
|
||||||
ostree --repo=repo2 static-delta apply-offline repo/deltas/${deltaprefix}/${deltadir}
|
ostree --repo=repo2 static-delta apply-offline repo/deltas/${deltaprefix}/${deltadir}
|
||||||
ostree --repo=repo2 fsck
|
ostree --repo=repo2 fsck
|
||||||
ostree --repo=repo2 ls ${newrev} >/dev/null
|
ostree --repo=repo2 ls ${newrev} >/dev/null
|
||||||
|
|
||||||
|
echo 'ok apply offline'
|
||||||
|
|
||||||
|
rm -rf repo/deltas/${deltaprefix}/${deltadir}/*
|
||||||
|
ostree --repo=repo static-delta generate --from=${origrev} --to=${newrev} --inline
|
||||||
|
assert_not_has_file repo/deltas/${deltaprefix}/${deltadir}/0
|
||||||
|
|
||||||
|
rm repo2 -rf
|
||||||
|
mkdir repo2 && ostree --repo=repo2 init --mode=bare-user
|
||||||
|
|
||||||
|
ostree --repo=repo2 pull-local repo ${origrev}
|
||||||
|
ostree --repo=repo2 ls ${origrev} >/dev/null
|
||||||
|
ostree --repo=repo2 static-delta apply-offline repo/deltas/${deltaprefix}/${deltadir}
|
||||||
|
ostree --repo=repo2 fsck
|
||||||
|
ostree --repo=repo2 ls ${newrev} >/dev/null
|
||||||
|
|
||||||
|
echo 'ok apply offline inline'
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue