releasetools: Add sanity test for sign_apex.
This ensures a matching interface between sign_apex and apex_utils.
The test apex `testdata/foo.apex` is generated by running
`system/apex/apexer/runtests.sh`.
Test: python -m unittest test_sign_apex
Test: atest releasetools_test
Change-Id: I7c14b1df2a3038ad206aa3e5aac084c47baaa00b
diff --git a/tools/releasetools/sign_apex.py b/tools/releasetools/sign_apex.py
index 1778615..affd6a7 100755
--- a/tools/releasetools/sign_apex.py
+++ b/tools/releasetools/sign_apex.py
@@ -40,6 +40,20 @@
logger = logging.getLogger(__name__)
+def SignApexFile(apex_file, payload_key, container_key, signing_args=None):
+ """Signs the given apex file."""
+ with open(apex_file, 'rb') as input_fp:
+ apex_data = input_fp.read()
+
+ return apex_utils.SignApex(
+ apex_data,
+ payload_key=payload_key,
+ container_key=container_key,
+ container_pw=None,
+ codename_to_api_level_map=None,
+ signing_args=signing_args)
+
+
def main(argv):
options = {}
@@ -76,20 +90,12 @@
common.InitLogging()
- input_zip = args[0]
- output_zip = args[1]
- with open(input_zip) as input_fp:
- apex_data = input_fp.read()
-
- signed_apex = apex_utils.SignApex(
- apex_data,
- payload_key=options['payload_key'],
- container_key=options['container_key'],
- container_pw=None,
- codename_to_api_level_map=None,
- signing_args=options.get('payload_extra_args'))
-
- shutil.copyfile(signed_apex, output_zip)
+ signed_apex = SignApexFile(
+ args[0],
+ options['payload_key'],
+ options['container_key'],
+ options.get('payload_extra_args'))
+ shutil.copyfile(signed_apex, args[1])
logger.info("done.")