diff options
author | Colin Walters <walters@verbum.org> | 2015-09-13 21:35:10 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2015-09-13 22:23:56 -0400 |
commit | 27fcf68e7c12f8ade32e0cc8860e3533a3da52b5 (patch) | |
tree | e9b523136c272aff269ef05a363fb41fc3b782ba /tests/test-delta.sh | |
parent | 1ee4007a75971080bd760e8d188a369ba9c10840 (diff) | |
download | ostree-27fcf68e7c12f8ade32e0cc8860e3533a3da52b5.tar.gz |
tests: Add a test for static-delta apply-offline
Obviously it was broken...
Diffstat (limited to 'tests/test-delta.sh')
-rwxr-xr-x | tests/test-delta.sh | 45 |
1 files changed, 42 insertions, 3 deletions
diff --git a/tests/test-delta.sh b/tests/test-delta.sh index fe2f4aac..9760a570 100755 --- a/tests/test-delta.sh +++ b/tests/test-delta.sh @@ -24,7 +24,7 @@ set -e bindatafiles="bash true ostree" morebindatafiles="false ls" -echo '1..2' +echo '1..3' mkdir repo ostree --repo=repo init --mode=archive-z2 @@ -78,6 +78,45 @@ if ${CMD_PREFIX} ostree --repo=repo static-delta generate --from=${origrev} --to assert_not_reached "static-delta generate --from=${origrev} --empty unexpectedly succeeded" fi -mkdir repo2 -ostree --repo=repo2 init --mode=archive-z2 +echo 'ok generate' + +mkdir repo2 && ostree --repo=repo2 init --mode=archive-z2 +ostree --repo=repo2 pull-local repo ${newrev} +ostree --repo=repo2 fsck +ostree --repo=repo2 ls ${newrev} >/dev/null + +echo 'ok pull delta' + +rm repo2 -rf +mkdir repo2 && ostree --repo=repo2 init --mode=bare-user +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 '.') +deltadir=$(get_assert_one_direntry_matching repo/deltas/${deltaprefix} '-') 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 |