summaryrefslogtreecommitdiff
path: root/apexer/apexer_test.py
diff options
context:
space:
mode:
authorDario Freni <dariofreni@google.com>2020-03-06 18:33:32 +0000
committerDario Freni <dariofreni@google.com>2020-03-06 18:36:54 +0000
commitef7b8c2982a3e4560de443da606aff62791b3593 (patch)
tree9b1566ab2c3e601b187b4734829c5ba25ad2827e /apexer/apexer_test.py
parent0ca7c925b51ece7e4bfc0ed13cd64c8665760a5e (diff)
Test re-packing unsigned images.
Verifies that re-packing an unsigned image generates an equivalent unsigned image. Bug: 150942423 Test: apexer_test Change-Id: I0a0d0f9e2a1a0ce8f1f267feda4d19d2649ad5d7
Diffstat (limited to 'apexer/apexer_test.py')
-rw-r--r--apexer/apexer_test.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/apexer/apexer_test.py b/apexer/apexer_test.py
index 89a3980..fce2f0f 100644
--- a/apexer/apexer_test.py
+++ b/apexer/apexer_test.py
@@ -197,6 +197,20 @@ class ApexerRebuildTest(unittest.TestCase):
return files
+ def _extract_payload_from_img(self, img_file_path):
+ dir_name = tempfile.mkdtemp(prefix=self._testMethodName+"_extracted_payload_")
+ self._to_cleanup.append(dir_name)
+ cmd = ["debugfs_static", '-R', 'rdump ./ %s' % dir_name, img_file_path]
+ run_host_command(cmd)
+
+ # Remove payload files added by apexer and e2fs tools.
+ for i in ["apex_manifest.json", "apex_manifest.pb"]:
+ if os.path.exists(os.path.join(dir_name, i)):
+ os.remove(os.path.join(dir_name, i))
+ if os.path.isdir(os.path.join(dir_name, "lost+found")):
+ shutil.rmtree(os.path.join(dir_name, "lost+found"))
+ return dir_name
+
def _extract_payload(self, apex_file_path):
dir_name = tempfile.mkdtemp(prefix=self._testMethodName+"_extracted_payload_")
self._to_cleanup.append(dir_name)
@@ -336,6 +350,14 @@ class ApexerRebuildTest(unittest.TestCase):
self.assertEqual(get_sha1sum(signed_payload),
get_sha1sum(container_files["apex_payload"]))
+ # Now assert that given an unsigned image and the original container
+ # files, we can produce an identical unsigned image.
+ unsigned_payload_dir = self._extract_payload_from_img(unsigned_payload_only_file_path)
+ unsigned_payload_only_2_file_path = self._run_apexer(container_files, unsigned_payload_dir,
+ ["--unsigned_payload_only"])
+ self.assertEqual(get_sha1sum(unsigned_payload_only_file_path),
+ get_sha1sum(unsigned_payload_only_2_file_path))
+
if __name__ == '__main__':
unittest.main(verbosity=2)