Fix the argument passing for the active-parameter
Ensure the Config "parameter" and the "active-parameter"
the module is created against are differentiated to clear
reporting.
Test: unit tests
Bug: 153117935
Change-Id: Ie526446a5a2a11b61646137c0edf2c5f359a3290
diff --git a/invocation_interfaces/com/android/tradefed/config/ConfigurationDescriptor.java b/invocation_interfaces/com/android/tradefed/config/ConfigurationDescriptor.java
index bc6d30c..e97233f 100644
--- a/invocation_interfaces/com/android/tradefed/config/ConfigurationDescriptor.java
+++ b/invocation_interfaces/com/android/tradefed/config/ConfigurationDescriptor.java
@@ -48,7 +48,7 @@
/** Metadata key for a config to specify that it was sharded. */
public static final String LOCAL_SHARDED_KEY = "sharded";
/** Metadata key for a config parameterization, optional. */
- public static final String PARAMETER_KEY = "parameter";
+ public static final String ACTIVE_PARAMETER_KEY = "active-parameter";
@Option(name = "test-suite-tag", description = "A membership tag to suite. Can be repeated.")
private List<String> mSuiteTags = new ArrayList<>();
@@ -136,7 +136,7 @@
* @param key {@link String} of the key to add values to.
* @param values a list of {@link String} of the additional values.
*/
- public void addMetaData(String key, List<String> values) {
+ public void addMetadata(String key, List<String> values) {
for (String source : values) {
mMetaData.put(key, source);
}
diff --git a/src/com/android/tradefed/testtype/suite/ModuleDefinition.java b/src/com/android/tradefed/testtype/suite/ModuleDefinition.java
index 192aff6..d869243 100644
--- a/src/com/android/tradefed/testtype/suite/ModuleDefinition.java
+++ b/src/com/android/tradefed/testtype/suite/ModuleDefinition.java
@@ -188,7 +188,7 @@
configDescriptor
.getAllMetaData()
.getUniqueMap()
- .get(ConfigurationDescriptor.PARAMETER_KEY);
+ .get(ConfigurationDescriptor.ACTIVE_PARAMETER_KEY);
if (parameterization != null) {
mModuleInvocationContext.addInvocationAttribute(
MODULE_PARAMETERIZATION, parameterization);
diff --git a/src/com/android/tradefed/testtype/suite/SuiteModuleLoader.java b/src/com/android/tradefed/testtype/suite/SuiteModuleLoader.java
index df958aa..f233b8d 100644
--- a/src/com/android/tradefed/testtype/suite/SuiteModuleLoader.java
+++ b/src/com/android/tradefed/testtype/suite/SuiteModuleLoader.java
@@ -328,7 +328,7 @@
paramConfig
.getConfigurationDescription()
.addMetadata(
- ConfigurationDescriptor.PARAMETER_KEY,
+ ConfigurationDescriptor.ACTIVE_PARAMETER_KEY,
param.getParameterIdentifier());
param.addParameterSpecificConfig(paramConfig);
setUpConfig(name, baseId, fullId, paramConfig, abi);
diff --git a/src/com/android/tradefed/testtype/suite/TestMappingSuiteRunner.java b/src/com/android/tradefed/testtype/suite/TestMappingSuiteRunner.java
index 037ceeb..1f3514a 100644
--- a/src/com/android/tradefed/testtype/suite/TestMappingSuiteRunner.java
+++ b/src/com/android/tradefed/testtype/suite/TestMappingSuiteRunner.java
@@ -177,7 +177,7 @@
moduleConfig.setTests(allTests);
// Set test sources to ConfigurationDescriptor.
List<String> testSources = getTestSources(testInfos);
- configDescriptor.addMetaData(TestMapping.TEST_SOURCES, testSources);
+ configDescriptor.addMetadata(TestMapping.TEST_SOURCES, testSources);
}
}
return testConfigs;
diff --git a/src/com/android/tradefed/util/LocalRunInstructionBuilder.java b/src/com/android/tradefed/util/LocalRunInstructionBuilder.java
index 63c72f0..3550df9 100644
--- a/src/com/android/tradefed/util/LocalRunInstructionBuilder.java
+++ b/src/com/android/tradefed/util/LocalRunInstructionBuilder.java
@@ -130,7 +130,7 @@
}
// Ensure repro is aligned with parameterized modules.
List<String> paramMetadata =
- configDescriptor.getMetaData(ConfigurationDescriptor.PARAMETER_KEY);
+ configDescriptor.getMetaData(ConfigurationDescriptor.ACTIVE_PARAMETER_KEY);
if (paramMetadata != null
&& paramMetadata.size() > 0
&& "instant".equals(paramMetadata.get(0))) {
diff --git a/tests/src/com/android/tradefed/testtype/suite/ModuleDefinitionTest.java b/tests/src/com/android/tradefed/testtype/suite/ModuleDefinitionTest.java
index 7430069..3a4ff57 100644
--- a/tests/src/com/android/tradefed/testtype/suite/ModuleDefinitionTest.java
+++ b/tests/src/com/android/tradefed/testtype/suite/ModuleDefinitionTest.java
@@ -16,6 +16,8 @@
package com.android.tradefed.testtype.suite;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -358,6 +360,51 @@
}
}
+ @Test
+ public void testCreateModule() {
+ IConfiguration config = new Configuration("", "");
+ ConfigurationDescriptor descriptor = config.getConfigurationDescription();
+ descriptor.setAbi(new Abi("armeabi-v7a", "32"));
+ descriptor.addMetadata(ITestSuite.PARAMETER_KEY, Arrays.asList("instant_app", "multi_abi"));
+ mModule =
+ new ModuleDefinition(
+ MODULE_NAME,
+ mTestList,
+ mMapDeviceTargetPreparer,
+ mMultiTargetPrepList,
+ config);
+ assertNotNull(mModule.getModuleInvocationContext());
+ IInvocationContext moduleContext = mModule.getModuleInvocationContext();
+ assertNull(moduleContext.getAttributes().get(ModuleDefinition.MODULE_PARAMETERIZATION));
+ }
+
+ @Test
+ public void testCreateModule_withParams() {
+ IConfiguration config = new Configuration("", "");
+ ConfigurationDescriptor descriptor = config.getConfigurationDescription();
+ descriptor.setAbi(new Abi("armeabi-v7a", "32"));
+ descriptor.addMetadata(
+ ConfigurationDescriptor.ACTIVE_PARAMETER_KEY, Arrays.asList("instant"));
+ mModule =
+ new ModuleDefinition(
+ MODULE_NAME,
+ mTestList,
+ mMapDeviceTargetPreparer,
+ mMultiTargetPrepList,
+ config);
+ assertNotNull(mModule.getModuleInvocationContext());
+ IInvocationContext moduleContext = mModule.getModuleInvocationContext();
+ assertEquals(
+ 1,
+ moduleContext.getAttributes().get(ModuleDefinition.MODULE_PARAMETERIZATION).size());
+ assertEquals(
+ "instant",
+ moduleContext
+ .getAttributes()
+ .getUniqueMap()
+ .get(ModuleDefinition.MODULE_PARAMETERIZATION));
+ }
+
/**
* Test that {@link ModuleDefinition#run(TestInformation, ITestInvocationListener)} is properly
* going through the execution flow.
@@ -506,7 +553,7 @@
public void testParseTokens() throws Exception {
Configuration config = new Configuration("", "");
ConfigurationDescriptor descriptor = config.getConfigurationDescription();
- descriptor.addMetaData(ITestSuite.TOKEN_KEY, Arrays.asList("SIM_CARD"));
+ descriptor.addMetadata(ITestSuite.TOKEN_KEY, Arrays.asList("SIM_CARD"));
mModule =
new ModuleDefinition(
MODULE_NAME,
diff --git a/tests/src/com/android/tradefed/testtype/suite/SuiteModuleLoaderTest.java b/tests/src/com/android/tradefed/testtype/suite/SuiteModuleLoaderTest.java
index 3df2d4b..921f675 100644
--- a/tests/src/com/android/tradefed/testtype/suite/SuiteModuleLoaderTest.java
+++ b/tests/src/com/android/tradefed/testtype/suite/SuiteModuleLoaderTest.java
@@ -311,11 +311,17 @@
// Ensure that appropriate metadata are set on the module config descriptor
ConfigurationDescriptor descriptor = instantModule.getConfigurationDescription();
assertEquals(
- "instant_app",
+ 1,
+ descriptor
+ .getAllMetaData()
+ .get(ConfigurationDescriptor.ACTIVE_PARAMETER_KEY)
+ .size());
+ assertEquals(
+ "instant",
descriptor
.getAllMetaData()
.getUniqueMap()
- .get(ConfigurationDescriptor.PARAMETER_KEY));
+ .get(ConfigurationDescriptor.ACTIVE_PARAMETER_KEY));
assertEquals("armeabi-v7a", descriptor.getAbi().getName());
}
diff --git a/tests/src/com/android/tradefed/util/LocalRunInstructionBuilderTest.java b/tests/src/com/android/tradefed/util/LocalRunInstructionBuilderTest.java
index 4a9d110..e861154 100644
--- a/tests/src/com/android/tradefed/util/LocalRunInstructionBuilderTest.java
+++ b/tests/src/com/android/tradefed/util/LocalRunInstructionBuilderTest.java
@@ -110,7 +110,7 @@
ConfigurationDescriptor configDescriptor = new ConfigurationDescriptor();
configDescriptor.setAbi(new Abi(ABI_NAME, "32"));
configDescriptor.setModuleName(OPTION_SOURCE);
- configDescriptor.addMetadata(ConfigurationDescriptor.PARAMETER_KEY, "instant");
+ configDescriptor.addMetadata(ConfigurationDescriptor.ACTIVE_PARAMETER_KEY, "instant");
String instruction =
LocalRunInstructionBuilder.getInstruction(
configDescriptor, LocalTestRunner.ATEST, null);