summaryrefslogtreecommitdiff
path: root/tests/test-delta.sh
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2016-02-24 17:04:04 -0500
committerColin Walters <walters@verbum.org>2016-02-26 08:19:01 -0500
commit7fdf07271031cd4a88af9280b41ece5dc7c1d580 (patch)
tree6eb35793c1b0fc0bca80a61ac2b1f3dab24850ca /tests/test-delta.sh
parent04d77da0056c89f2f18ae9e47ef121c960f2307b (diff)
downloadostree-7fdf07271031cd4a88af9280b41ece5dc7c1d580.tar.gz
deltas: Heuristically detect endianness for older deltas
If the average object size is greater than 4GiB, let's assume we're dealing with opposite endianness. I'm fairly confident no one is going to be shipping peta- or exa- byte size ostree deltas, period. Past the gigabyte scale you really want bittorrent or something.
Diffstat (limited to 'tests/test-delta.sh')
-rwxr-xr-xtests/test-delta.sh21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/test-delta.sh b/tests/test-delta.sh
index 4679ab8e..ebe35571 100755
--- a/tests/test-delta.sh
+++ b/tests/test-delta.sh
@@ -128,6 +128,27 @@ assert_streq "${totalsize_orig}" "${totalsize_swapped}"
echo 'ok generate + show endian swapped'
+tar xf ${SRCDIR}/pre-endian-deltas-repo-big.tar.xz
+mv pre-endian-deltas-repo{,-big}
+tar xf ${SRCDIR}/pre-endian-deltas-repo-little.tar.xz
+mv pre-endian-deltas-repo{,-little}
+legacy_origrev=$(${CMD_PREFIX} ostree --repo=pre-endian-deltas-repo-big rev-parse main^)
+legacy_newrev=$(${CMD_PREFIX} ostree --repo=pre-endian-deltas-repo-big rev-parse main)
+${CMD_PREFIX} ostree --repo=pre-endian-deltas-repo-big static-delta show ${legacy_origrev}-${legacy_newrev} > show-legacy-big.txt
+totalsize_legacy_big=$(grep 'Total Size:' show-legacy-big.txt)
+${CMD_PREFIX} ostree --repo=pre-endian-deltas-repo-big static-delta show ${legacy_origrev}-${legacy_newrev} > show-legacy-little.txt
+totalsize_legacy_little=$(grep 'Total Size:' show-legacy-little.txt)
+for f in show-legacy-{big,little}.txt; do
+ if grep 'Endianness:.*heuristic' $f; then
+ found_heuristic=yes
+ break
+ fi
+done
+assert_streq "${found_heuristic}" "yes"
+assert_streq "${totalsize_legacy_big}" "${totalsize_legacy_little}"
+
+echo 'ok heuristic endian detection'
+
mkdir repo2 && ${CMD_PREFIX} ostree --repo=repo2 init --mode=archive-z2
${CMD_PREFIX} ostree --repo=repo2 pull-local repo ${newrev}
${CMD_PREFIX} ostree --repo=repo2 fsck