Infer merge configs if not provided.
Bug: 221858722
Test: Create a merged package using inferred configs.
Test: atest --host releasetools_test
Change-Id: I93d67ca0f00be3f0e0424ed0a1e44c39ca2f3094
diff --git a/tools/releasetools/merge/test_merge_utils.py b/tools/releasetools/merge/test_merge_utils.py
index d0cd2cf..1949050 100644
--- a/tools/releasetools/merge/test_merge_utils.py
+++ b/tools/releasetools/merge/test_merge_utils.py
@@ -20,20 +20,12 @@
import merge_target_files
import merge_utils
import test_utils
-from merge_target_files import (
- DEFAULT_FRAMEWORK_ITEM_LIST,
- DEFAULT_VENDOR_ITEM_LIST,
- DEFAULT_FRAMEWORK_MISC_INFO_KEYS,
-)
class MergeUtilsTest(test_utils.ReleaseToolsTestCase):
def setUp(self):
self.OPTIONS = merge_target_files.OPTIONS
- self.OPTIONS.framework_item_list = DEFAULT_FRAMEWORK_ITEM_LIST
- self.OPTIONS.framework_misc_info_keys = DEFAULT_FRAMEWORK_MISC_INFO_KEYS
- self.OPTIONS.vendor_item_list = DEFAULT_VENDOR_ITEM_LIST
def test_CopyItems_CopiesItemsMatchingPatterns(self):
@@ -88,21 +80,30 @@
os.readlink(os.path.join(output_dir, 'a_link.cpp')), 'a.cpp')
def test_ValidateConfigLists_ReturnsFalseIfSharedExtractedPartition(self):
- self.OPTIONS.vendor_item_list = list(DEFAULT_VENDOR_ITEM_LIST)
+ self.OPTIONS.system_item_list = [
+ 'SYSTEM/*',
+ ]
+ self.OPTIONS.vendor_item_list = [
+ 'SYSTEM/my_system_file',
+ 'VENDOR/*',
+ ]
self.OPTIONS.vendor_item_list.append('SYSTEM/my_system_file')
self.assertFalse(merge_utils.ValidateConfigLists())
def test_ValidateConfigLists_ReturnsFalseIfSharedExtractedPartitionImage(
self):
- self.OPTIONS.vendor_item_list = list(DEFAULT_VENDOR_ITEM_LIST)
- self.OPTIONS.vendor_item_list.append('IMAGES/system.img')
+ self.OPTIONS.system_item_list = [
+ 'SYSTEM/*',
+ ]
+ self.OPTIONS.vendor_item_list = [
+ 'IMAGES/system.img',
+ 'VENDOR/*',
+ ]
self.assertFalse(merge_utils.ValidateConfigLists())
def test_ValidateConfigLists_ReturnsFalseIfBadSystemMiscInfoKeys(self):
for bad_key in ['dynamic_partition_list', 'super_partition_groups']:
- self.OPTIONS.framework_misc_info_keys = list(
- DEFAULT_FRAMEWORK_MISC_INFO_KEYS)
- self.OPTIONS.framework_misc_info_keys.append(bad_key)
+ self.OPTIONS.framework_misc_info_keys = [bad_key]
self.assertFalse(merge_utils.ValidateConfigLists())
def test_ItemListToPartitionSet(self):
@@ -116,3 +117,81 @@
]
partition_set = merge_utils.ItemListToPartitionSet(item_list)
self.assertEqual(set(['product', 'system', 'system_ext']), partition_set)
+
+ def test_InferItemList_Framework(self):
+ zip_namelist = [
+ 'SYSTEM/my_system_file',
+ 'PRODUCT/my_product_file',
+ ]
+
+ item_list = merge_utils.InferItemList(zip_namelist, framework=True)
+
+ expected_framework_item_list = [
+ 'IMAGES/product.img',
+ 'IMAGES/product.map',
+ 'IMAGES/system.img',
+ 'IMAGES/system.map',
+ 'META/filesystem_config.txt',
+ 'META/liblz4.so',
+ 'META/postinstall_config.txt',
+ 'META/product_filesystem_config.txt',
+ 'META/update_engine_config.txt',
+ 'META/zucchini_config.txt',
+ 'PRODUCT/*',
+ 'SYSTEM/*',
+ ]
+
+ self.assertEqual(item_list, expected_framework_item_list)
+
+ def test_InferItemList_Vendor(self):
+ zip_namelist = [
+ 'VENDOR/my_vendor_file',
+ 'ODM/my_odm_file',
+ ]
+
+ item_list = merge_utils.InferItemList(zip_namelist, framework=False)
+
+ expected_vendor_item_list = [
+ 'IMAGES/odm.img',
+ 'IMAGES/odm.map',
+ 'IMAGES/vendor.img',
+ 'IMAGES/vendor.map',
+ 'META/kernel_configs.txt',
+ 'META/kernel_version.txt',
+ 'META/odm_filesystem_config.txt',
+ 'META/otakeys.txt',
+ 'META/releasetools.py',
+ 'META/vendor_filesystem_config.txt',
+ 'ODM/*',
+ 'OTA/android-info.txt',
+ 'VENDOR/*',
+ ]
+ self.assertEqual(item_list, expected_vendor_item_list)
+
+ def test_InferFrameworkMiscInfoKeys(self):
+ zip_namelist = [
+ 'SYSTEM/my_system_file',
+ 'SYSTEM_EXT/my_system_ext_file',
+ ]
+
+ keys = merge_utils.InferFrameworkMiscInfoKeys(zip_namelist)
+
+ expected_keys = [
+ 'ab_update',
+ 'avb_system_add_hashtree_footer_args',
+ 'avb_system_ext_add_hashtree_footer_args',
+ 'avb_system_ext_hashtree_enable',
+ 'avb_system_hashtree_enable',
+ 'avb_vbmeta_system',
+ 'avb_vbmeta_system_algorithm',
+ 'avb_vbmeta_system_key_path',
+ 'avb_vbmeta_system_rollback_index_location',
+ 'building_system_ext_image',
+ 'building_system_image',
+ 'default_system_dev_certificate',
+ 'fs_type',
+ 'system_disable_sparse',
+ 'system_ext_disable_sparse',
+ 'system_ext_fs_type',
+ ]
+ self.assertEqual(keys, expected_keys)