Monotonic flag sets incorrectly in rangelib
After applying update_target_files_incr_ext4.sh, some files may end up occupying unsorted block fragments. In one example, an apk file has the block range [258768-259211,196604]. The monotonic flag in rangelib sets incorrectly for this example and leads to a bad input file for imgdiff. After fixing the flag, bsdiff is called instead of imgdiff and the incremental OTA package generates successfully. Bug:28053885 Change-Id: Ib841bf449ff6a29314fc4a1b8fba941a6dc532ac
This commit is contained in:
@@ -104,7 +104,7 @@ class RangeSet(object):
|
|||||||
if last <= s:
|
if last <= s:
|
||||||
last = s+1
|
last = s+1
|
||||||
else:
|
else:
|
||||||
monotonic = True
|
monotonic = False
|
||||||
data.sort()
|
data.sort()
|
||||||
self.data = tuple(self._remove_pairs(data))
|
self.data = tuple(self._remove_pairs(data))
|
||||||
self.monotonic = monotonic
|
self.monotonic = monotonic
|
||||||
|
@@ -117,6 +117,7 @@ class RangeSetTest(unittest.TestCase):
|
|||||||
self.assertTrue(RangeSet("").monotonic)
|
self.assertTrue(RangeSet("").monotonic)
|
||||||
self.assertTrue(RangeSet("0-4 5-9").monotonic)
|
self.assertTrue(RangeSet("0-4 5-9").monotonic)
|
||||||
self.assertFalse(RangeSet("5-9 0-4").monotonic)
|
self.assertFalse(RangeSet("5-9 0-4").monotonic)
|
||||||
|
self.assertFalse(RangeSet("258768-259211 196604").monotonic)
|
||||||
|
|
||||||
self.assertTrue(RangeSet(data=[0, 10]).monotonic)
|
self.assertTrue(RangeSet(data=[0, 10]).monotonic)
|
||||||
self.assertTrue(RangeSet(data=[0, 10, 15, 20]).monotonic)
|
self.assertTrue(RangeSet(data=[0, 10, 15, 20]).monotonic)
|
||||||
|
Reference in New Issue
Block a user