From 9a50168c85c691205b8e9606ca6db81c7d9ce482 Mon Sep 17 00:00:00 2001 From: Dan Shi Date: Fri, 22 Dec 2017 13:32:48 -0800 Subject: [PATCH] Test config should use manifest package attribute Bug: 70981774,69929803 Test: m -j SetupWizardActivityTests Change-Id: I6d50744504eac71d6ecae5db9b14e6d30eb923fe --- tools/auto_gen_test_config.py | 12 +++++++----- tools/auto_gen_test_config_test.py | 17 ++++++++++------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/tools/auto_gen_test_config.py b/tools/auto_gen_test_config.py index fa018f457..da4443c43 100755 --- a/tools/auto_gen_test_config.py +++ b/tools/auto_gen_test_config.py @@ -24,7 +24,7 @@ from xml.dom.minidom import parse ATTRIBUTE_LABEL = 'android:label' ATTRIBUTE_RUNNER = 'android:name' -ATTRIBUTE_TARGET_PACKAGE = 'android:targetPackage' +ATTRIBUTE_PACKAGE = 'package' PLACEHOLDER_LABEL = '{LABEL}' PLACEHOLDER_MODULE = '{MODULE}' @@ -54,20 +54,22 @@ def main(argv): manifest = parse(android_manifest) instrumentation_elements = manifest.getElementsByTagName('instrumentation') - if len(instrumentation_elements) != 1: - # Failed to locate instrumentation element in AndroidManifest file. - # Empty test config file will be created. + manifest_elements = manifest.getElementsByTagName('manifest') + if len(instrumentation_elements) != 1 or len(manifest_elements) != 1: + # Failed to locate instrumentation or manifest element in AndroidManifest. + # file. Empty test config file will be created. shutil.copyfile(empty_config, target_config) return 0 module = os.path.splitext(os.path.basename(target_config))[0] instrumentation = instrumentation_elements[0] + manifest = manifest_elements[0] if instrumentation.attributes.has_key(ATTRIBUTE_LABEL): label = instrumentation.attributes[ATTRIBUTE_LABEL].value else: label = module runner = instrumentation.attributes[ATTRIBUTE_RUNNER].value - package = instrumentation.attributes[ATTRIBUTE_TARGET_PACKAGE].value + package = manifest.attributes[ATTRIBUTE_PACKAGE].value test_type = ('AndroidJUnitTest' if runner.endswith('.AndroidJUnitRunner') else 'InstrumentationTest') diff --git a/tools/auto_gen_test_config_test.py b/tools/auto_gen_test_config_test.py index a438b734a..e70eff88a 100644 --- a/tools/auto_gen_test_config_test.py +++ b/tools/auto_gen_test_config_test.py @@ -31,7 +31,8 @@ MANIFEST_INVALID = """ """ MANIFEST_JUNIT_TEST = """ - + @@ -39,7 +40,8 @@ MANIFEST_JUNIT_TEST = """ """ MANIFEST_INSTRUMENTATION_TEST = """ - + - @@ -97,16 +99,17 @@ EXPECTED_INSTRUMENTATION_TEST_CONFIG = """ - """ -MAKE_ROOT = os.path.dirname(os.path.dirname(__file__)) -EMPTY_TEST_CONFIG = os.path.join(MAKE_ROOT, 'core', 'empty_test_config.xml') +TOOLS_DIR = os.path.dirname(os.path.dirname(__file__)) +EMPTY_TEST_CONFIG = os.path.join( + TOOLS_DIR, '..', 'core', 'empty_test_config.xml') INSTRUMENTATION_TEST_CONFIG_TEMPLATE = os.path.join( - MAKE_ROOT, 'core', 'instrumentation_test_config_template.xml') + TOOLS_DIR, '..', 'core', 'instrumentation_test_config_template.xml') class AutoGenTestConfigUnittests(unittest.TestCase):