Merge "Check super size for factory OTA at build time"
This commit is contained in:
@@ -223,9 +223,15 @@ class DynamicPartitionSizeChecker(object):
|
||||
error_limit = Expression(
|
||||
"BOARD_SUPER_PARTITION_ERROR_LIMIT{}".format(size_limit_suffix),
|
||||
int(info_dict["super_partition_error_limit"]) // num_slots)
|
||||
self._CheckSumOfPartitionSizes(
|
||||
max_size, info_dict["dynamic_partition_list"].strip().split(),
|
||||
warn_limit, error_limit)
|
||||
partitions_in_super = info_dict["dynamic_partition_list"].strip().split()
|
||||
# In the vab case, factory OTA will allocate space on super to install
|
||||
# the system_other partition. So add system_other to the partition list.
|
||||
if DeviceType.Get(self.info_dict) == DeviceType.VAB and (
|
||||
"system_other_image" in info_dict or
|
||||
"system_other_image_size" in info_dict):
|
||||
partitions_in_super.append("system_other")
|
||||
self._CheckSumOfPartitionSizes(max_size, partitions_in_super,
|
||||
warn_limit, error_limit)
|
||||
|
||||
groups = info_dict.get("super_partition_groups", "").strip().split()
|
||||
|
||||
|
@@ -33,6 +33,7 @@ class CheckPartitionSizesTest(test_utils.ReleaseToolsTestCase):
|
||||
system_image_size=50
|
||||
vendor_image_size=20
|
||||
product_image_size=20
|
||||
system_other_image_size=10
|
||||
""".split("\n"))
|
||||
|
||||
def test_ab(self):
|
||||
@@ -126,3 +127,13 @@ class CheckPartitionSizesTest(test_utils.ReleaseToolsTestCase):
|
||||
""".split("\n")))
|
||||
with self.assertRaises(RuntimeError):
|
||||
CheckPartitionSizes(self.info_dict)
|
||||
|
||||
def test_vab_too_big_with_system_other(self):
|
||||
self.info_dict.update(common.LoadDictionaryFromLines("""
|
||||
virtual_ab=true
|
||||
system_other_image_size=20
|
||||
super_partition_size=101
|
||||
super_super_device_size=101
|
||||
""".split("\n")))
|
||||
with self.assertRaises(RuntimeError):
|
||||
CheckPartitionSizes(self.info_dict)
|
||||
|
Reference in New Issue
Block a user