diff options
author | Yifan Hong <elsk@google.com> | 2019-11-07 13:34:16 -0800 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-11-07 13:34:16 -0800 |
commit | e64874fec44cc2935d1db5242563a02110e5b413 (patch) | |
tree | 680175e484ca566a831f2e91178abffd077dbb41 | |
parent | ea6462f1970112f5781c270d89b8960d1ab6e078 (diff) | |
parent | b3a4b3a2b5b05327da89932bef2ca313ef35afdd (diff) | |
download | build-e64874fec44cc2935d1db5242563a02110e5b413.tar.gz |
Merge "Fix Virtual A/B size checks" am: 654fdb5edd
am: b3a4b3a2b5
Change-Id: I793cf714323d8c695e0b46e5cac4d0c8edb30d3d
-rw-r--r-- | tools/releasetools/check_partition_sizes.py | 14 | ||||
-rw-r--r-- | tools/releasetools/test_check_partition_sizes.py | 34 |
2 files changed, 48 insertions, 0 deletions
diff --git a/tools/releasetools/check_partition_sizes.py b/tools/releasetools/check_partition_sizes.py index 04d832ced8..745c136e90 100644 --- a/tools/releasetools/check_partition_sizes.py +++ b/tools/releasetools/check_partition_sizes.py @@ -76,11 +76,17 @@ class Expression(object): class DeviceType(object): NONE = 0 AB = 1 + RVAB = 2 # retrofit Virtual-A/B + VAB = 3 @staticmethod def Get(info_dict): if info_dict.get("ab_update") != "true": return DeviceType.NONE + if info_dict.get("virtual_ab_retrofit") == "true": + return DeviceType.RVAB + if info_dict.get("virtual_ab") == "true": + return DeviceType.VAB return DeviceType.AB @@ -175,6 +181,14 @@ class DynamicPartitionSizeChecker(object): if slot == DeviceType.AB: return 2 + # DAP + retrofit Virtual A/B: same as A/B + if slot == DeviceType.RVAB: + return 2 + + # DAP + Launch Virtual A/B: 1 *real* slot in super (2 virtual slots) + if slot == DeviceType.VAB: + return 1 + # DAP + non-A/B: 1 slot in super assert slot == DeviceType.NONE return 1 diff --git a/tools/releasetools/test_check_partition_sizes.py b/tools/releasetools/test_check_partition_sizes.py index 5482b1cebb..ed20873acb 100644 --- a/tools/releasetools/test_check_partition_sizes.py +++ b/tools/releasetools/test_check_partition_sizes.py @@ -92,3 +92,37 @@ class CheckPartitionSizesTest(test_utils.ReleaseToolsTestCase): """.split("\n"))) with self.assertRaises(RuntimeError): CheckPartitionSizes(self.info_dict) + + def test_retrofit_vab(self): + self.info_dict.update(common.LoadDictionaryFromLines(""" + virtual_ab=true + virtual_ab_retrofit=true + """.split("\n"))) + CheckPartitionSizes(self.info_dict) + + def test_retrofit_vab_too_big(self): + self.info_dict.update(common.LoadDictionaryFromLines(""" + virtual_ab=true + virtual_ab_retrofit=true + system_image_size=100 + """.split("\n"))) + with self.assertRaises(RuntimeError): + CheckPartitionSizes(self.info_dict) + + def test_vab(self): + self.info_dict.update(common.LoadDictionaryFromLines(""" + virtual_ab=true + super_partition_size=100 + super_super_device_size=100 + """.split("\n"))) + CheckPartitionSizes(self.info_dict) + + def test_vab_too_big(self): + self.info_dict.update(common.LoadDictionaryFromLines(""" + virtual_ab=true + super_partition_size=100 + super_super_device_size=100 + system_image_size=100 + """.split("\n"))) + with self.assertRaises(RuntimeError): + CheckPartitionSizes(self.info_dict) |