Merge "exclude flaky tests for 9.0 R2" into pi-dev am: be9e9dba7b am: e58abeb79d
am: 59abe03af9

Change-Id: I77dd66d73b1ff90097225b4bd34dcb505de4425b
diff --git a/broadcastradio/V1_1/adapter/AndroidTest.xml b/broadcastradio/V1_1/adapter/AndroidTest.xml
index 6f8579e..b630c93 100644
--- a/broadcastradio/V1_1/adapter/AndroidTest.xml
+++ b/broadcastradio/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalBroadcastradioV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.broadcastradio@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.broadcastradio@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.broadcastradio@1.1"/>
diff --git a/camera/device/V3_3/adapter/AndroidTest.xml b/camera/device/V3_3/adapter/AndroidTest.xml
index 2c9e7d3..7c1728d 100644
--- a/camera/device/V3_3/adapter/AndroidTest.xml
+++ b/camera/device/V3_3/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalCameraDeviceV3_3Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.camera.device@3.3"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.camera.device@3.2-adapter"/>
         <option name="hal-package-name" value="android.hardware.camera.device@3.3"/>
diff --git a/camera/device/V3_4/adapter/AndroidTest.xml b/camera/device/V3_4/adapter/AndroidTest.xml
index ff53174..6d4396e 100644
--- a/camera/device/V3_4/adapter/AndroidTest.xml
+++ b/camera/device/V3_4/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalCameraDeviceV3_4Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.camera.device@3.4"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.camera.device@3.3-adapter"/>
         <option name="hal-package-name" value="android.hardware.camera.device@3.4"/>
diff --git a/camera/metadata/V3_3/adapter/AndroidTest.xml b/camera/metadata/V3_3/adapter/AndroidTest.xml
index 4011569..cf3ef15 100644
--- a/camera/metadata/V3_3/adapter/AndroidTest.xml
+++ b/camera/metadata/V3_3/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalCameraMetadataV3_3Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.camera.metadata@3.3"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.camera.metadata@3.2-adapter"/>
         <option name="hal-package-name" value="android.hardware.camera.metadata@3.3"/>
diff --git a/camera/provider/V2_4/target/AndroidTest.xml b/camera/provider/V2_4/target/AndroidTest.xml
index 4324d51..4eca95f 100644
--- a/camera/provider/V2_4/target/AndroidTest.xml
+++ b/camera/provider/V2_4/target/AndroidTest.xml
@@ -30,6 +30,6 @@
         <option name="exclude-coverage-path" value="hardware/interfaces/sensors" />
         <option name="exclude-coverage-path" value="hardware/qcom/display/msm8998" />
         <option name="exclude-coverage-path" value="vendor/qcom/msm8998/proprietary/proprietary/qmi-framework" />
-        <option name="test-timeout" value="15m"/>
+        <option name="test-timeout" value="30m"/>
     </test>
 </configuration>
diff --git a/drm/V1_1/adapter/AndroidTest.xml b/drm/V1_1/adapter/AndroidTest.xml
index 3cee6cc..e7331ff 100644
--- a/drm/V1_1/adapter/AndroidTest.xml
+++ b/drm/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalDrmV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.drm@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.drm@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.drm@1.1"/>
diff --git a/gnss/V1_1/adapter/AndroidTest.xml b/gnss/V1_1/adapter/AndroidTest.xml
index ab1676c..8b431f2 100644
--- a/gnss/V1_1/adapter/AndroidTest.xml
+++ b/gnss/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalGnssV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.gnss@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.gnss@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.gnss@1.1"/>
diff --git a/graphics/common/V1_1/adapter/AndroidTest.xml b/graphics/common/V1_1/adapter/AndroidTest.xml
index b6a795c..a9f341b 100644
--- a/graphics/common/V1_1/adapter/AndroidTest.xml
+++ b/graphics/common/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalGraphicsCommonV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.graphics.common@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.graphics.common@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.graphics.common@1.1"/>
diff --git a/graphics/composer/V2_2/adapter/AndroidTest.xml b/graphics/composer/V2_2/adapter/AndroidTest.xml
index 0c90a5b..fd140ad 100644
--- a/graphics/composer/V2_2/adapter/AndroidTest.xml
+++ b/graphics/composer/V2_2/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalGraphicsComposerV2_2Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.graphics.composer@2.2"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.graphics.composer@2.1-adapter"/>
         <option name="hal-package-name" value="android.hardware.graphics.composer@2.2"/>
diff --git a/graphics/mapper/V2_1/adapter/AndroidTest.xml b/graphics/mapper/V2_1/adapter/AndroidTest.xml
index 4207ea4..35417de 100644
--- a/graphics/mapper/V2_1/adapter/AndroidTest.xml
+++ b/graphics/mapper/V2_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalGraphicsMapperV2_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.graphics.mapper@2.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.graphics.mapper@2.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.graphics.mapper@2.1"/>
diff --git a/media/omx/V1_0/host_omxstore/VtsHalMediaOmxStoreV1_0HostTest.py b/media/omx/V1_0/host_omxstore/VtsHalMediaOmxStoreV1_0HostTest.py
index 001857d..253d4b7 100644
--- a/media/omx/V1_0/host_omxstore/VtsHalMediaOmxStoreV1_0HostTest.py
+++ b/media/omx/V1_0/host_omxstore/VtsHalMediaOmxStoreV1_0HostTest.py
@@ -102,7 +102,7 @@
             attr_value = attr['value']
 
             # attr_key must not have been seen before.
-            assert(
+            asserts.assertTrue(
                 attr_key not in key_set,
                 'Service attribute "' + attr_key + '" has duplicates.')
             key_set.add(attr_key)
@@ -212,31 +212,34 @@
         # Mapping from mime types to roles.
         # These values come from MediaDefs.cpp and OMXUtils.cpp
         audio_mime_to_role = {
-            '3gpp'          : 'amrnb',
-            'ac3'           : 'ac3',
-            'amr-wb'        : 'amrwb',
-            'eac3'          : 'eac3',
-            'flac'          : 'flac',
-            'g711-alaw'     : 'g711alaw',
-            'g711-mlaw'     : 'g711mlaw',
-            'gsm'           : 'gsm',
-            'mp4a-latm'     : 'aac',
-            'mpeg'          : 'mp3',
-            'mpeg-L1'       : 'mp1',
-            'mpeg-L2'       : 'mp2',
-            'opus'          : 'opus',
-            'raw'           : 'raw',
-            'vorbis'        : 'vorbis',
+            '3gpp'             : 'amrnb',
+            'ac3'              : 'ac3',
+            'amr-wb'           : 'amrwb',
+            'eac3'             : 'eac3',
+            'flac'             : 'flac',
+            'g711-alaw'        : 'g711alaw',
+            'g711-mlaw'        : 'g711mlaw',
+            'gsm'              : 'gsm',
+            'mp4a-latm'        : 'aac',
+            'mpeg'             : 'mp3',
+            'mpeg-L1'          : 'mp1',
+            'mpeg-L2'          : 'mp2',
+            'opus'             : 'opus',
+            'raw'              : 'raw',
+            'vorbis'           : 'vorbis',
         }
         video_mime_to_role = {
-            '3gpp'          : 'h263',
-            'avc'           : 'avc',
-            'dolby-vision'  : 'dolby-vision',
-            'hevc'          : 'hevc',
-            'mp4v-es'       : 'mpeg4',
-            'mpeg2'         : 'mpeg2',
-            'x-vnd.on2.vp8' : 'vp8',
-            'x-vnd.on2.vp9' : 'vp9',
+            '3gpp'             : 'h263',
+            'avc'              : 'avc',
+            'dolby-vision'     : 'dolby-vision',
+            'hevc'             : 'hevc',
+            'mp4v-es'          : 'mpeg4',
+            'mpeg2'            : 'mpeg2',
+            'x-vnd.on2.vp8'    : 'vp8',
+            'x-vnd.on2.vp9'    : 'vp9',
+        }
+        image_mime_to_role = {
+            'vnd.android.heic' : 'heic',
         }
         def get_role(is_encoder, mime):
             """Returns the role based on is_encoder and mime.
@@ -268,6 +271,11 @@
                     return None
                 prefix = 'video_'
                 suffix = video_mime_to_role[mime_suffix]
+            elif mime.startswith('image/'):
+                if mime_suffix not in image_mime_to_role:
+                    return None
+                prefix = 'image_'
+                suffix = image_mime_to_role[mime_suffix]
             else:
                 return None
             return prefix + middle + suffix
@@ -440,7 +448,7 @@
                     self.vtypes.Status.OK, status,
                     'IOmx::allocateNode() for IOmx instance "' + owner + '" ' +
                     'fails to allocate node "' + node +'".')
-
+                status = omxNode.freeNode()
 
             # Check that all nodes obtained from IOmxStore::listRoles() are
             # supported by the their corresponding IOmx instances.
diff --git a/neuralnetworks/V1_1/adapter/AndroidTest.xml b/neuralnetworks/V1_1/adapter/AndroidTest.xml
index 420e320..1b9ef4f 100644
--- a/neuralnetworks/V1_1/adapter/AndroidTest.xml
+++ b/neuralnetworks/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalNeuralnetworksV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.neuralnetworks@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.neuralnetworks@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.neuralnetworks@1.1"/>
diff --git a/nfc/V1_1/adapter/AndroidTest.xml b/nfc/V1_1/adapter/AndroidTest.xml
index caff75e..bdb72ba 100644
--- a/nfc/V1_1/adapter/AndroidTest.xml
+++ b/nfc/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalNfcV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.nfc@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.nfc@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.nfc@1.1"/>
diff --git a/power/V1_1/adapter/AndroidTest.xml b/power/V1_1/adapter/AndroidTest.xml
index 2352390..d85639f 100644
--- a/power/V1_1/adapter/AndroidTest.xml
+++ b/power/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalPowerV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.power@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.power@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.power@1.1"/>
diff --git a/power/V1_2/adapter/AndroidTest.xml b/power/V1_2/adapter/AndroidTest.xml
index 5c36976..4542192 100644
--- a/power/V1_2/adapter/AndroidTest.xml
+++ b/power/V1_2/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalPowerV1_2Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.power@1.2"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.power@1.1-adapter"/>
         <option name="hal-package-name" value="android.hardware.power@1.2"/>
diff --git a/power/V1_3/build/Android.bp b/power/V1_3/build/Android.bp
new file mode 100644
index 0000000..7c7b27f
--- /dev/null
+++ b/power/V1_3/build/Android.bp
@@ -0,0 +1,108 @@
+// This file was auto-generated. Do not edit manually.
+// Use launch_hal_test.py or update_makefiles.py in test/vts-testcase/hal/script/ to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.power@1.3-vts.spec",
+    hidl_gen_args: "-r android.hardware:hardware/interfaces",
+    srcs: [
+        ":android.hardware.power@1.3_hal",
+    ],
+    out: [
+        "android/hardware/power/1.3/Power.vts",
+        "android/hardware/power/1.3/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.power@1.3-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.power@1.3 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/power/1.3/ $(genDir)/android/hardware/power/1.3/",
+    srcs: [
+        ":android.hardware.power@1.3_hal",
+    ],
+    out: [
+        "android/hardware/power/1.3/Power.vts.cpp",
+        "android/hardware/power/1.3/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.power@1.3-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.power@1.3 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/power/1.3/ $(genDir)/android/hardware/power/1.3/",
+    srcs: [
+        ":android.hardware.power@1.3_hal",
+    ],
+    out: [
+        "android/hardware/power/1.3/Power.vts.h",
+        "android/hardware/power/1.3/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.power@1.3-vts.driver",
+    generated_sources: ["android.hardware.power@1.3-vts.driver_genc++"],
+    generated_headers: ["android.hardware.power@1.3-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.power@1.3-vts.driver_genc++_headers"],
+    defaults: ["VtsHalDriverDefaults"],
+    shared_libs: [
+        "android.hardware.power@1.0-vts.driver",
+        "android.hardware.power@1.1-vts.driver",
+        "android.hardware.power@1.2-vts.driver",
+    ],
+    static_libs: [
+        "android.hardware.power@1.0",
+        "android.hardware.power@1.1",
+        "android.hardware.power@1.2",
+        "android.hardware.power@1.3",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.power@1.3-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.power@1.3 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/power/1.3/ $(genDir)/android/hardware/power/1.3/",
+    srcs: [
+        ":android.hardware.power@1.3_hal",
+    ],
+    out: [
+        "android/hardware/power/1.3/Power.vts.cpp",
+        "android/hardware/power/1.3/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.power@1.3-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.power@1.3 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/power/1.3/ $(genDir)/android/hardware/power/1.3/",
+    srcs: [
+        ":android.hardware.power@1.3_hal",
+    ],
+    out: [
+        "android/hardware/power/1.3/Power.vts.h",
+        "android/hardware/power/1.3/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.power@1.3-vts.profiler",
+    generated_sources: ["android.hardware.power@1.3-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.power@1.3-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.power@1.3-vts.profiler_genc++_headers"],
+    defaults: ["VtsHalProfilerDefaults"],
+    shared_libs: [
+        "android.hardware.power@1.0-vts.profiler",
+        "android.hardware.power@1.1-vts.profiler",
+        "android.hardware.power@1.2-vts.profiler",
+    ],
+    static_libs: [
+        "android.hardware.power@1.0",
+        "android.hardware.power@1.1",
+        "android.hardware.power@1.2",
+        "android.hardware.power@1.3",
+    ],
+}
+
diff --git a/power/V1_3/target/Android.mk b/power/V1_3/target/Android.mk
new file mode 100644
index 0000000..812df84
--- /dev/null
+++ b/power/V1_3/target/Android.mk
@@ -0,0 +1,23 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := VtsHalPowerV1_3Target
+VTS_CONFIG_SRC_DIR := testcases/hal/power/V1_3/target
+include test/vts/tools/build/Android.host_config.mk
diff --git a/power/V1_3/target/AndroidTest.xml b/power/V1_3/target/AndroidTest.xml
new file mode 100644
index 0000000..1be863a
--- /dev/null
+++ b/power/V1_3/target/AndroidTest.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<configuration description="Config for VTS VtsHalPowerV1_3Target test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+        <option name="abort-on-push-failure" value="false"/>
+        <option name="push-group" value="HalHidlTargetTest.push"/>
+    </target_preparer>
+    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalPowerV1_3Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalPowerV1_3TargetTest/VtsHalPowerV1_3TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalPowerV1_3TargetTest/VtsHalPowerV1_3TargetTest"/>
+        <option name="binary-test-type" value="hal_hidl_gtest"/>
+        <option name="binary-test-disable-framework" value="true"/>
+        <option name="binary-test-stop-native-servers" value="true"/>
+        <option name="test-timeout" value="1m"/>
+    </test>
+</configuration>
diff --git a/radio/V1_1/adapter/AndroidTest.xml b/radio/V1_1/adapter/AndroidTest.xml
index 1a256a3..1e1d782 100644
--- a/radio/V1_1/adapter/AndroidTest.xml
+++ b/radio/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalRadioV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.radio@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.radio@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.radio@1.1"/>
diff --git a/radio/V1_2/adapter/AndroidTest.xml b/radio/V1_2/adapter/AndroidTest.xml
index b1b40e9..edde14e 100644
--- a/radio/V1_2/adapter/AndroidTest.xml
+++ b/radio/V1_2/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalRadioV1_2Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.radio@1.2"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.radio@1.1-adapter"/>
         <option name="hal-package-name" value="android.hardware.radio@1.2"/>
diff --git a/script/configure/test_case_creator.py b/script/configure/test_case_creator.py
index ffbbc79..04bfeb4 100755
--- a/script/configure/test_case_creator.py
+++ b/script/configure/test_case_creator.py
@@ -272,6 +272,13 @@
         """
 
         # Configure VtsHalAdapterPreparer.
+        adapter_module_controller = ET.SubElement(configuration, 'object',
+                                         {'type': 'module_controller',
+                                          'class': VTA_HAL_ADAPTER_MODULE_CONTROLLER})
+        ET.SubElement(adapter_module_controller, 'option', {
+            'name': 'hal-package-name',
+            'value': self._hal_package_name
+        })
         adapter_preparer = ET.SubElement(configuration, 'target_preparer',
                                          {'class': VTA_HAL_ADAPTER_PREPARER})
         (major_version, minor_version) = self._hal_version.split('.')
@@ -281,7 +288,7 @@
                 'name':
                 'adapter-binary-name',
                 'value':
-                Constant.HAL_PACKAGE_PREFIX + self._hal_name + '@' +
+                Constant.HAL_PACKAGE_PREFIX + '.' + self._hal_name + '@' +
                 adapter_version + '-adapter'
             })
         ET.SubElement(adapter_preparer, 'option', {
@@ -313,7 +320,7 @@
 
         with open(latest_file, 'r') as cts_hal_map_file:
             for line in cts_hal_map_file.readlines():
-                if line.startswith(Constant.HAL_PACKAGE_PREFIX +
+                if line.startswith(Constant.HAL_PACKAGE_PREFIX + '.' +
                                    self._hal_name + '@' + adapter_version):
                     cts_tests = line.split(':')[1].split(',')
                     for cts_test in cts_tests:
@@ -577,5 +584,6 @@
 VTS_LIB_PUSH_TEMPLATE_32 = 'DATA/lib/{lib_name}->/data/local/tmp/32/{lib_name}'
 VTS_LIB_PUSH_TEMPLATE_64 = 'DATA/lib64/{lib_name}->/data/local/tmp/64/{lib_name}'
 
+VTA_HAL_ADAPTER_MODULE_CONTROLLER = 'com.android.tradefed.module.VtsHalAdapterModuleController'
 VTA_HAL_ADAPTER_PREPARER = 'com.android.tradefed.targetprep.VtsHalAdapterPreparer'
 ANDROID_JUNIT_TEST = 'com.android.tradefed.testtype.AndroidJUnitTest'
diff --git a/soundtrigger/V2_1/adapter/AndroidTest.xml b/soundtrigger/V2_1/adapter/AndroidTest.xml
index dc4d31e..e292e96 100644
--- a/soundtrigger/V2_1/adapter/AndroidTest.xml
+++ b/soundtrigger/V2_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalSoundtriggerV2_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.soundtrigger@2.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.soundtrigger@2.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.soundtrigger@2.1"/>
diff --git a/thermal/V1_1/adapter/AndroidTest.xml b/thermal/V1_1/adapter/AndroidTest.xml
index f60a48f..b9e1679 100644
--- a/thermal/V1_1/adapter/AndroidTest.xml
+++ b/thermal/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalThermalV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.thermal@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.thermal@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.thermal@1.1"/>
diff --git a/usb/V1_1/adapter/AndroidTest.xml b/usb/V1_1/adapter/AndroidTest.xml
index 9246ddb..4029f2a 100644
--- a/usb/V1_1/adapter/AndroidTest.xml
+++ b/usb/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalUsbV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.usb@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.usb@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.usb@1.1"/>
diff --git a/vibrator/V1_1/adapter/AndroidTest.xml b/vibrator/V1_1/adapter/AndroidTest.xml
index ccda2e5..d8f497c 100644
--- a/vibrator/V1_1/adapter/AndroidTest.xml
+++ b/vibrator/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalVibratorV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.vibrator@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.vibrator@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.vibrator@1.1"/>
diff --git a/vibrator/V1_2/adapter/AndroidTest.xml b/vibrator/V1_2/adapter/AndroidTest.xml
index d4244b7..674f5bf 100644
--- a/vibrator/V1_2/adapter/AndroidTest.xml
+++ b/vibrator/V1_2/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalVibratorV1_2Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.vibrator@1.2"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.vibrator@1.1-adapter"/>
         <option name="hal-package-name" value="android.hardware.vibrator@1.2"/>
diff --git a/wifi/V1_1/adapter/AndroidTest.xml b/wifi/V1_1/adapter/AndroidTest.xml
index dedffc5..0352352 100644
--- a/wifi/V1_1/adapter/AndroidTest.xml
+++ b/wifi/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalWifiV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.wifi@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.wifi@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.wifi@1.1"/>
diff --git a/wifi/V1_2/adapter/AndroidTest.xml b/wifi/V1_2/adapter/AndroidTest.xml
index 83eaeb7..2b4f411 100644
--- a/wifi/V1_2/adapter/AndroidTest.xml
+++ b/wifi/V1_2/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalWifiV1_2Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.wifi@1.2"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.wifi@1.1-adapter"/>
         <option name="hal-package-name" value="android.hardware.wifi@1.2"/>
diff --git a/wifi/supplicant/V1_1/adapter/AndroidTest.xml b/wifi/supplicant/V1_1/adapter/AndroidTest.xml
index 8f764ba..83e661e 100644
--- a/wifi/supplicant/V1_1/adapter/AndroidTest.xml
+++ b/wifi/supplicant/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalWifiSupplicantV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.wifi.supplicant@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.wifi.supplicant@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.wifi.supplicant@1.1"/>