Merge "Test config should use manifest package attribute" am: a6c3cece9e
am: 4647f8125a
Change-Id: Ie0ede8acaf7085c0312f5305ad6c7b54fd8a09aa
This commit is contained in:
commit
7abb8ccbca
2 changed files with 17 additions and 12 deletions
|
@ -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')
|
||||
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in a new issue