Merge "releasetools: Remove RemoveBackwardEdges()."
This commit is contained in:
commit
d4b9e01f39
2 changed files with 5 additions and 59 deletions
|
@ -270,7 +270,6 @@ class ImgdiffStats(object):
|
|||
USED_IMGDIFF_LARGE_APK = "Large APK files split and diff'd with imgdiff"
|
||||
|
||||
# Reasons for not applying imgdiff on APKs.
|
||||
SKIPPED_TRIMMED = "Not used imgdiff due to trimmed RangeSet"
|
||||
SKIPPED_NONMONOTONIC = "Not used imgdiff due to having non-monotonic ranges"
|
||||
SKIPPED_SHARED_BLOCKS = "Not used imgdiff due to using shared blocks"
|
||||
SKIPPED_INCOMPLETE = "Not used imgdiff due to incomplete RangeSet"
|
||||
|
@ -279,7 +278,6 @@ class ImgdiffStats(object):
|
|||
REASONS = (
|
||||
USED_IMGDIFF,
|
||||
USED_IMGDIFF_LARGE_APK,
|
||||
SKIPPED_TRIMMED,
|
||||
SKIPPED_NONMONOTONIC,
|
||||
SKIPPED_SHARED_BLOCKS,
|
||||
SKIPPED_INCOMPLETE,
|
||||
|
@ -449,10 +447,6 @@ class BlockImageDiff(object):
|
|||
self.imgdiff_stats.Log(name, ImgdiffStats.SKIPPED_INCOMPLETE)
|
||||
return False
|
||||
|
||||
if tgt_ranges.extra.get('trimmed') or src_ranges.extra.get('trimmed'):
|
||||
self.imgdiff_stats.Log(name, ImgdiffStats.SKIPPED_TRIMMED)
|
||||
return False
|
||||
|
||||
reason = (ImgdiffStats.USED_IMGDIFF_LARGE_APK if large_apk
|
||||
else ImgdiffStats.USED_IMGDIFF)
|
||||
self.imgdiff_stats.Log(name, reason)
|
||||
|
@ -836,14 +830,10 @@ class BlockImageDiff(object):
|
|||
str(xf.tgt_ranges), str(xf.src_ranges)))
|
||||
else:
|
||||
if xf.patch:
|
||||
# We have already generated the patch with imgdiff. Check if the
|
||||
# transfer is intact.
|
||||
# We have already generated the patch with imgdiff, while
|
||||
# splitting large APKs (i.e. in FindTransfers()).
|
||||
assert not self.disable_imgdiff
|
||||
imgdiff = True
|
||||
if (xf.src_ranges.extra.get('trimmed') or
|
||||
xf.tgt_ranges.extra.get('trimmed')):
|
||||
imgdiff = False
|
||||
xf.patch = None
|
||||
else:
|
||||
imgdiff = self.CanUseImgdiff(
|
||||
xf.tgt_name, xf.tgt_ranges, xf.src_ranges)
|
||||
|
@ -1045,42 +1035,6 @@ class BlockImageDiff(object):
|
|||
for i, xf in enumerate(L):
|
||||
xf.order = i
|
||||
|
||||
def RemoveBackwardEdges(self):
|
||||
print("Removing backward edges...")
|
||||
in_order = 0
|
||||
out_of_order = 0
|
||||
lost_source = 0
|
||||
|
||||
for xf in self.transfers:
|
||||
lost = 0
|
||||
size = xf.src_ranges.size()
|
||||
for u in xf.goes_before:
|
||||
# xf should go before u
|
||||
if xf.order < u.order:
|
||||
# it does, hurray!
|
||||
in_order += 1
|
||||
else:
|
||||
# it doesn't, boo. trim the blocks that u writes from xf's
|
||||
# source, so that xf can go after u.
|
||||
out_of_order += 1
|
||||
assert xf.src_ranges.overlaps(u.tgt_ranges)
|
||||
xf.src_ranges = xf.src_ranges.subtract(u.tgt_ranges)
|
||||
xf.src_ranges.extra['trimmed'] = True
|
||||
|
||||
if xf.style == "diff" and not xf.src_ranges:
|
||||
# nothing left to diff from; treat as new data
|
||||
xf.style = "new"
|
||||
|
||||
lost = size - xf.src_ranges.size()
|
||||
lost_source += lost
|
||||
|
||||
print((" %d/%d dependencies (%.2f%%) were violated; "
|
||||
"%d source blocks removed.") %
|
||||
(out_of_order, in_order + out_of_order,
|
||||
(out_of_order * 100.0 / (in_order + out_of_order))
|
||||
if (in_order + out_of_order) else 0.0,
|
||||
lost_source))
|
||||
|
||||
def ReverseBackwardEdges(self):
|
||||
"""Reverse unsatisfying edges and compute pairs of stashed blocks.
|
||||
|
||||
|
|
|
@ -203,8 +203,8 @@ class BlockImageDiffTest(unittest.TestCase):
|
|||
|
||||
self.assertDictEqual(
|
||||
{
|
||||
ImgdiffStats.USED_IMGDIFF : {"/system/app/app1.apk"},
|
||||
ImgdiffStats.USED_IMGDIFF_LARGE_APK : {"/vendor/app/app2.apk"},
|
||||
ImgdiffStats.USED_IMGDIFF: {"/system/app/app1.apk"},
|
||||
ImgdiffStats.USED_IMGDIFF_LARGE_APK: {"/vendor/app/app2.apk"},
|
||||
},
|
||||
block_image_diff.imgdiff_stats.stats)
|
||||
|
||||
|
@ -229,13 +229,6 @@ class BlockImageDiffTest(unittest.TestCase):
|
|||
"/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))
|
||||
|
||||
# At least one of the ranges is incomplete.
|
||||
src_ranges = RangeSet("0-5")
|
||||
src_ranges.extra['incomplete'] = True
|
||||
|
@ -246,8 +239,7 @@ class BlockImageDiffTest(unittest.TestCase):
|
|||
# The stats are correctly logged.
|
||||
self.assertDictEqual(
|
||||
{
|
||||
ImgdiffStats.SKIPPED_NONMONOTONIC : {'/system/app/app2.apk'},
|
||||
ImgdiffStats.SKIPPED_TRIMMED : {'/vendor/app/app3.apk'},
|
||||
ImgdiffStats.SKIPPED_NONMONOTONIC: {'/system/app/app2.apk'},
|
||||
ImgdiffStats.SKIPPED_INCOMPLETE: {'/vendor/app/app4.apk'},
|
||||
},
|
||||
block_image_diff.imgdiff_stats.stats)
|
||||
|
|
Loading…
Reference in a new issue