Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4647f812 authored by Dan Shi's avatar Dan Shi Committed by android-build-merger
Browse files

Merge "Test config should use manifest package attribute"

am: a6c3cece

Change-Id: Iad499856cef0be99d8f6af260d05c70c9200bc78
parents e63e713c a6c3cece
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -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')

+10 −7
Original line number Diff line number Diff line
@@ -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):