Move auto_gen_test_config.py to argparse.

Follow up to aosp/2752414

Test: atest-dev auto_gen_test_config_test
Change-Id: I401c6213f0ed5e97eb97b1c603a8b6c5286f0d88
This commit is contained in:
Jingwen Chen 2023-09-19 06:34:16 +00:00
parent 84b5bb9139
commit 4bccadd460

View file

@ -17,6 +17,7 @@
"""A tool to generate TradeFed test config file. """A tool to generate TradeFed test config file.
""" """
import argparse
import re import re
import os import os
import shutil import shutil
@ -43,20 +44,28 @@ def main(argv):
Returns: Returns:
0 if no error, otherwise 1. 0 if no error, otherwise 1.
""" """
if len(argv) != 4 and len(argv) != 6:
sys.stderr.write(
f'Invalid arguments: {argv}. The script requires 4 arguments for file paths: '
'target_config, android_manifest (or the xmltree dump), empty_config, '
'instrumentation_test_config_template, '
'and 2 optional arguments for extra configs: '
'--extra-configs \'EXTRA_CONFIGS\'.\n')
return 1
target_config = argv[0] parser = argparse.ArgumentParser()
android_manifest = argv[1] parser.add_argument(
empty_config = argv[2] "target_config",
instrumentation_test_config_template = argv[3] help="Path to the generated output config.")
extra_configs = '\n'.join(argv[5].split('\\n')) if len(argv) == 6 else '' parser.add_argument(
"android_manifest",
help="Path to AndroidManifest.xml or output of 'aapt2 dump xmltree' with .xmltree extension.")
parser.add_argument(
"empty_config",
help="Path to the empty config template.")
parser.add_argument(
"instrumentation_test_config_template",
help="Path to the instrumentation test config template.")
parser.add_argument("--extra-configs", default="")
args = parser.parse_args(argv)
target_config = args.target_config
android_manifest = args.android_manifest
empty_config = args.empty_config
instrumentation_test_config_template = args.instrumentation_test_config_template
extra_configs = '\n'.join(args.extra_configs.split('\\n'))
module = os.path.splitext(os.path.basename(target_config))[0] module = os.path.splitext(os.path.basename(target_config))[0]
@ -70,7 +79,7 @@ def main(argv):
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pattern = re.compile(r"\(Raw:\s\"(.*)\"\)$") pattern = re.compile(r"\(Raw:\s\"(.*)\"\)$")
curr_element = None curr_element = None
for line in manifest.readlines(): for line in manifest:
curr_line = line.strip() curr_line = line.strip()
if curr_line.startswith("E:"): if curr_line.startswith("E:"):
# e.g. "E: instrumentation (line=9)" # e.g. "E: instrumentation (line=9)"