summaryrefslogtreecommitdiff
path: root/tools/releasetools/test_blockimgdiff.py
diff options
context:
space:
mode:
author Tao Bao <tbao@google.com> 2018-02-10 00:47:42 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2018-02-10 00:47:42 +0000
commitbec8be51a5cbc6e9a14daec2bf92a47fdb262366 (patch)
tree5290fa4ff08dbf32a1a304ae98861467386e80ef /tools/releasetools/test_blockimgdiff.py
parent2744cbf190b84b48a4d3a227ccf2b720a7cbaae5 (diff)
parentcb73aed1f00ebafe2b9319ec20e41734da9d6b88 (diff)
Merge "releasetools: Refactor the condition checking for using imgdiff."
Diffstat (limited to 'tools/releasetools/test_blockimgdiff.py')
-rw-r--r--tools/releasetools/test_blockimgdiff.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/tools/releasetools/test_blockimgdiff.py b/tools/releasetools/test_blockimgdiff.py
index 7084e21534..4ed8356dd2 100644
--- a/tools/releasetools/test_blockimgdiff.py
+++ b/tools/releasetools/test_blockimgdiff.py
@@ -172,3 +172,54 @@ class BlockImageDiffTest(unittest.TestCase):
# Insufficient cache to stash 15 blocks (size * 0.8 < 15).
common.OPTIONS.cache_size = 15 * 4096
self.assertEqual(15, block_image_diff.ReviseStashSize())
+
+ def test_FileTypeSupportedByImgdiff(self):
+ self.assertTrue(
+ BlockImageDiff.FileTypeSupportedByImgdiff(
+ "/system/priv-app/Settings/Settings.apk"))
+ self.assertTrue(
+ BlockImageDiff.FileTypeSupportedByImgdiff(
+ "/system/framework/am.jar"))
+ self.assertTrue(
+ BlockImageDiff.FileTypeSupportedByImgdiff(
+ "/system/etc/security/otacerts.zip"))
+
+ self.assertFalse(
+ BlockImageDiff.FileTypeSupportedByImgdiff(
+ "/system/framework/arm/boot.oat"))
+ self.assertFalse(
+ BlockImageDiff.FileTypeSupportedByImgdiff(
+ "/system/priv-app/notanapk"))
+
+ def test_CanUseImgdiff(self):
+ block_image_diff = BlockImageDiff(EmptyImage(), EmptyImage())
+ self.assertTrue(
+ block_image_diff.CanUseImgdiff(
+ "/system/app/app1.apk", RangeSet("10-15"), RangeSet("0-5")))
+
+ def test_CanUseImgdiff_ineligible(self):
+ # Disabled by caller.
+ block_image_diff = BlockImageDiff(EmptyImage(), EmptyImage(),
+ disable_imgdiff=True)
+ self.assertFalse(
+ block_image_diff.CanUseImgdiff(
+ "/system/app/app1.apk", RangeSet("10-15"), RangeSet("0-5")))
+
+ # Unsupported file type.
+ block_image_diff = BlockImageDiff(EmptyImage(), EmptyImage())
+ self.assertFalse(
+ block_image_diff.CanUseImgdiff(
+ "/system/bin/gzip", RangeSet("10-15"), RangeSet("0-5")))
+
+ # At least one of the ranges is in non-monotonic order.
+ self.assertFalse(
+ block_image_diff.CanUseImgdiff(
+ "/system/app/app2.apk", RangeSet("10-15"),
+ RangeSet("15-20 30 10-14")))
+
+ # At least one of the ranges has been modified.
+ src_ranges = RangeSet("0-5")
+ src_ranges.extra['trimmed'] = True
+ self.assertFalse(
+ block_image_diff.CanUseImgdiff(
+ "/vendor/app/app3.apk", RangeSet("10-15"), src_ranges))