releasetools: common.LoadInfoDict() takes a bool parameter for repacking.
It used to accept a non-None input_dir to indicate the need to
re-generate images (called from add_img_to_target_files.py). During that
flow, both of the two parameters redundantly refer to the same input
dir. This CL replaces the second parameter with a bool value instead.
Test: `python -m unittest test_common`
Test: `m dist` with aosp_taimen-userdebug
Test: `zip -d aosp_taimen-target_files-eng.zip IMAGES/\* &&
add_img_to_target_files.py -a aosp_taimen-target_files-eng.zip`
Change-Id: I0a5a164366acb116407f94bb350872a3a0b207d1
diff --git a/tools/releasetools/test_common.py b/tools/releasetools/test_common.py
index f56f368..5179900 100644
--- a/tools/releasetools/test_common.py
+++ b/tools/releasetools/test_common.py
@@ -806,6 +806,9 @@
else:
fstab_values = FSTAB_TEMPLATE.format('/system')
common.ZipWriteStr(target_files_zip, fstab_path, fstab_values)
+
+ common.ZipWriteStr(
+ target_files_zip, 'META/file_contexts', 'file-contexts')
return target_files
def test_LoadInfoDict(self):
@@ -898,6 +901,38 @@
self.assertEqual(2, loaded_dict['fstab_version'])
self.assertIsNone(loaded_dict['fstab'])
+ def test_LoadInfoDict_missingMetaMiscInfoTxt(self):
+ target_files = self._test_LoadInfoDict_createTargetFiles(
+ self.INFO_DICT_DEFAULT,
+ 'BOOT/RAMDISK/system/etc/recovery.fstab')
+ common.ZipDelete(target_files, 'META/misc_info.txt')
+ with zipfile.ZipFile(target_files, 'r') as target_files_zip:
+ self.assertRaises(ValueError, common.LoadInfoDict, target_files_zip)
+
+ def test_LoadInfoDict_repacking(self):
+ target_files = self._test_LoadInfoDict_createTargetFiles(
+ self.INFO_DICT_DEFAULT,
+ 'BOOT/RAMDISK/system/etc/recovery.fstab')
+ unzipped = common.UnzipTemp(target_files)
+ loaded_dict = common.LoadInfoDict(unzipped, True)
+ self.assertEqual(3, loaded_dict['recovery_api_version'])
+ self.assertEqual(2, loaded_dict['fstab_version'])
+ self.assertIn('/', loaded_dict['fstab'])
+ self.assertIn('/system', loaded_dict['fstab'])
+ self.assertEqual(
+ os.path.join(unzipped, 'ROOT'), loaded_dict['root_dir'])
+ self.assertEqual(
+ os.path.join(unzipped, 'META', 'root_filesystem_config.txt'),
+ loaded_dict['root_fs_config'])
+
+ def test_LoadInfoDict_repackingWithZipFileInput(self):
+ target_files = self._test_LoadInfoDict_createTargetFiles(
+ self.INFO_DICT_DEFAULT,
+ 'BOOT/RAMDISK/system/etc/recovery.fstab')
+ with zipfile.ZipFile(target_files, 'r') as target_files_zip:
+ self.assertRaises(
+ AssertionError, common.LoadInfoDict, target_files_zip, True)
+
class InstallRecoveryScriptFormatTest(unittest.TestCase):
"""Checks the format of install-recovery.sh.