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}
rm main-files -rf
ostree --repo=ostree-srv/gnomerepo checkout main main-files
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)
ostree --repo=repo static-delta generate --empty --to=${origrev}
ostree --repo=repo commit -b test -s test --tree=dir=files
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}
+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 --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]"
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 static-delta apply-offline repo/deltas/${deltaprefix}/${deltadir}
ostree --repo=repo2 fsck
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'