diff options
author | Dario Freni <dariofreni@google.com> | 2020-03-06 18:33:32 +0000 |
---|---|---|
committer | Dario Freni <dariofreni@google.com> | 2020-03-06 18:36:54 +0000 |
commit | ef7b8c2982a3e4560de443da606aff62791b3593 (patch) | |
tree | 9b1566ab2c3e601b187b4734829c5ba25ad2827e /apexer/apexer_test.py | |
parent | 0ca7c925b51ece7e4bfc0ed13cd64c8665760a5e (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.py | 22 |
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) |