Merge "Test config should use manifest package attribute" am: a6c3cece9e

am: 4647f8125a

Change-Id: Ie0ede8acaf7085c0312f5305ad6c7b54fd8a09aa
This commit is contained in:
Dan Shi 2017-12-22 23:41:46 +00:00 committed by android-build-merger
commit 7abb8ccbca
2 changed files with 17 additions and 12 deletions

View file

@ -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')

View file

@ -31,7 +31,8 @@ MANIFEST_INVALID = """<?xml version="1.0" encoding="utf-8"?>
"""
MANIFEST_JUNIT_TEST = """<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.my.tests.x">
<instrumentation
android:name="android.support.test.runner.AndroidJUnitRunner"
android:targetPackage="com.android.my.tests" />
@ -39,7 +40,8 @@ MANIFEST_JUNIT_TEST = """<?xml version="1.0" encoding="utf-8"?>
"""
MANIFEST_INSTRUMENTATION_TEST = """<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.my.tests.x">
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.android.my.tests"
@ -69,7 +71,7 @@ EXPECTED_JUNIT_TEST_CONFIG = """<?xml version="1.0" encoding="utf-8"?>
</target_preparer>
<test class="com.android.tradefed.testtype.AndroidJUnitTest" >
<option name="package" value="com.android.my.tests" />
<option name="package" value="com.android.my.tests.x" />
<option name="runner" value="android.support.test.runner.AndroidJUnitRunner" />
</test>
</configuration>
@ -97,16 +99,17 @@ EXPECTED_INSTRUMENTATION_TEST_CONFIG = """<?xml version="1.0" encoding="utf-8"?>
</target_preparer>
<test class="com.android.tradefed.testtype.InstrumentationTest" >
<option name="package" value="com.android.my.tests" />
<option name="package" value="com.android.my.tests.x" />
<option name="runner" value="android.test.InstrumentationTestRunner" />
</test>
</configuration>
"""
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):