deltas: Add tests for delta indexes

This tests generation of the index as well as using it when pulling
This commit is contained in:
Alexander Larsson 2020-09-01 16:00:08 +02:00
parent df7f07fc6c
commit e8a7485458
1 changed files with 47 additions and 1 deletions

View File

@ -28,7 +28,7 @@ skip_without_user_xattrs
bindatafiles="bash true ostree" bindatafiles="bash true ostree"
morebindatafiles="false ls" morebindatafiles="false ls"
echo '1..12' echo '1..13'
mkdir repo mkdir repo
ostree_repo_init repo --mode=archive ostree_repo_init repo --mode=archive
@ -90,6 +90,11 @@ ${CMD_PREFIX} ostree --repo=repo static-delta list | grep ${origrev} || exit 1
${CMD_PREFIX} ostree --repo=repo prune ${CMD_PREFIX} ostree --repo=repo prune
${CMD_PREFIX} ostree --repo=repo static-delta list | grep ${origrev} || exit 1 ${CMD_PREFIX} ostree --repo=repo static-delta list | grep ${origrev} || exit 1
${CMD_PREFIX} ostree --repo=repo static-delta reindex
${CMD_PREFIX} ostree --repo=repo static-delta indexes | wc -l > indexcount
assert_file_has_content indexcount "^1$"
${CMD_PREFIX} ostree --repo=repo static-delta indexes | grep ${origrev} || exit 1
permuteDirectory 1 files permuteDirectory 1 files
${CMD_PREFIX} ostree --repo=repo commit -b test -s test --tree=dir=files ${CMD_PREFIX} ostree --repo=repo commit -b test -s test --tree=dir=files
@ -119,6 +124,12 @@ ${CMD_PREFIX} ostree --repo=repo static-delta generate --max-bsdiff-size=10000 -
${CMD_PREFIX} ostree --repo=repo static-delta list | grep ${origrev}-${newrev} || exit 1 ${CMD_PREFIX} ostree --repo=repo static-delta list | grep ${origrev}-${newrev} || exit 1
${CMD_PREFIX} ostree --repo=repo static-delta reindex
${CMD_PREFIX} ostree --repo=repo static-delta indexes | wc -l > indexcount
assert_file_has_content indexcount "^2$"
${CMD_PREFIX} ostree --repo=repo static-delta indexes | grep ${origrev} || exit 1
${CMD_PREFIX} ostree --repo=repo static-delta indexes | grep ${newrev} || exit 1
if ${CMD_PREFIX} ostree --repo=repo static-delta generate --from=${origrev} --to=${newrev} --empty 2>>err.txt; then if ${CMD_PREFIX} ostree --repo=repo static-delta generate --from=${origrev} --to=${newrev} --empty 2>>err.txt; then
assert_not_reached "static-delta generate --from=${origrev} --empty unexpectedly succeeded" assert_not_reached "static-delta generate --from=${origrev} --empty unexpectedly succeeded"
fi fi
@ -249,6 +260,41 @@ ${CMD_PREFIX} ostree --repo=repo2 ls ${samerev} >/dev/null
echo 'ok pull empty delta part' echo 'ok pull empty delta part'
rm -rf repo/delta-indexes
${CMD_PREFIX} ostree --repo=repo summary -u
${CMD_PREFIX} ostree summary -v --raw --repo=repo > summary.txt
assert_file_has_content summary.txt "ostree\.static\-deltas"
${CMD_PREFIX} ostree --repo=repo config set core.no-deltas-in-summary true
${CMD_PREFIX} ostree --repo=repo summary -u
${CMD_PREFIX} ostree summary -v --raw --repo=repo > summary.txt
assert_not_file_has_content summary.txt "ostree\.static\-deltas"
rm -rf repo2
mkdir repo2 && ostree_repo_init repo2 --mode=bare-user
${CMD_PREFIX} ostree --repo=repo2 pull-local repo ${newrev}
rm -rf repo/delta-indexes
if ${CMD_PREFIX} ostree --repo=repo2 pull-local --require-static-deltas repo ${samerev} &> no-delta.txt; then
assert_not_reached "failing pull with --require-static-deltas unexpectedly succeeded"
fi
assert_file_has_content no-delta.txt "Static deltas required, but none found for"
${CMD_PREFIX} ostree --repo=repo static-delta reindex
${CMD_PREFIX} ostree --repo=repo2 pull-local --require-static-deltas repo ${samerev}
${CMD_PREFIX} ostree --repo=repo2 fsck
${CMD_PREFIX} ostree --repo=repo2 ls ${samerev} >/dev/null
${CMD_PREFIX} ostree --repo=repo config set core.no-deltas-in-summary false
${CMD_PREFIX} ostree --repo=repo summary -u
${CMD_PREFIX} ostree summary -v --raw --repo=repo > summary.txt
assert_file_has_content summary.txt "ostree\.static\-deltas"
echo 'ok pull delta part with delta index'
# Make a new branch to test "rebase deltas" # Make a new branch to test "rebase deltas"
echo otherbranch-content > files/otherbranch-content echo otherbranch-content > files/otherbranch-content
${CMD_PREFIX} ostree --repo=repo commit -b otherbranch --tree=dir=files ${CMD_PREFIX} ostree --repo=repo commit -b otherbranch --tree=dir=files