Merge "Support mult processes in ProcessShowmapListener"
diff --git a/libraries/device-collectors/src/main/java/android/device/collectors/ProcessShowmapListener.java b/libraries/device-collectors/src/main/java/android/device/collectors/ProcessShowmapListener.java
index 253e988..4561cca 100644
--- a/libraries/device-collectors/src/main/java/android/device/collectors/ProcessShowmapListener.java
+++ b/libraries/device-collectors/src/main/java/android/device/collectors/ProcessShowmapListener.java
@@ -18,6 +18,7 @@
import android.device.collectors.annotations.OptionClass;
import android.os.Bundle;
+import android.util.Log;
import androidx.annotation.VisibleForTesting;
@@ -35,8 +36,11 @@
*/
@OptionClass(alias = "process-showmap-collector")
public class ProcessShowmapListener extends BaseCollectionListener<Long> {
- @VisibleForTesting
- static final String PROCESS_NAME_KEY = "processshowmap-process-name";
+ private static final String TAG = ProcessShowmapListener.class.getSimpleName();
+ @VisibleForTesting static final String PROCESS_SEPARATOR = ",";
+ @VisibleForTesting static final String PROCESS_NAMES_KEY = "showmap-process-names";
+ // TODO(119675321): Remove this once all ATP configs have switched to the new key name.
+ static final String OLD_PROCESS_NAME_KEY = "processshowmap-process-name";
private ProcessShowmapHelper mShowmapHelper = new ProcessShowmapHelper();
public ProcessShowmapListener() {
@@ -57,7 +61,17 @@
@Override
public void onTestRunStart(DataRecord runData, Description description) {
Bundle args = getArgsBundle();
- String processName = args.getString(PROCESS_NAME_KEY);
- mShowmapHelper.setUp(processName);
+ String procsString = args.getString(PROCESS_NAMES_KEY);
+ String oldProcString = args.getString(OLD_PROCESS_NAME_KEY);
+ if (procsString == null && oldProcString == null) {
+ Log.e(TAG, "No processes provided to sample");
+ return;
+ }
+ if (oldProcString != null) {
+ mShowmapHelper.setUp(oldProcString);
+ } else {
+ String[] procs = procsString.split(PROCESS_SEPARATOR);
+ mShowmapHelper.setUp(procs);
+ }
}
}
diff --git a/libraries/device-collectors/src/test/java/android/device/collectors/ProcessShowmapListenerTest.java b/libraries/device-collectors/src/test/java/android/device/collectors/ProcessShowmapListenerTest.java
index 535558f..384c9da 100644
--- a/libraries/device-collectors/src/test/java/android/device/collectors/ProcessShowmapListenerTest.java
+++ b/libraries/device-collectors/src/test/java/android/device/collectors/ProcessShowmapListenerTest.java
@@ -16,7 +16,9 @@
package android.device.collectors;
-import static org.mockito.Mockito.times;
+import static android.device.collectors.ProcessShowmapListener.PROCESS_NAMES_KEY;
+import static android.device.collectors.ProcessShowmapListener.PROCESS_SEPARATOR;
+
import static org.mockito.Mockito.verify;
import android.app.Instrumentation;
@@ -42,8 +44,6 @@
@RunWith(AndroidJUnit4.class)
public class ProcessShowmapListenerTest {
- private static final String TEST_PROCESS_NAME = "com.android.systemui";
-
@Mock
private Instrumentation mInstrumentation;
@Mock
@@ -65,13 +65,13 @@
}
@Test
- public void testHelperReceivesProcessName() throws Exception {
+ public void testHelperReceivesProcessNames() throws Exception {
Bundle b = new Bundle();
- b.putString(ProcessShowmapListener.PROCESS_NAME_KEY, TEST_PROCESS_NAME);
+ b.putString(PROCESS_NAMES_KEY, "process1" + PROCESS_SEPARATOR + "process2");
mListener = initListener(b);
mListener.testRunStarted(mRunDesc);
- verify(mShowmapHelper).setUp(TEST_PROCESS_NAME);
+ verify(mShowmapHelper).setUp("process1", "process2");
}
}