Add new version of startUser performance test
Similar to what was done for switchUser, this commit adds a new version
of the startUser test. In this variation, a wait for cool down was added
in between iterations.
Bug: 261621873
Test: atest UserLifecycleTests#startUser_realistic
Change-Id: Ia4ff7ed2df7b209175185794eac0cb17630ddc9e
diff --git a/apct-tests/perftests/multiuser/src/android/multiuser/UserLifecycleTests.java b/apct-tests/perftests/multiuser/src/android/multiuser/UserLifecycleTests.java
index 3f9b54c..c6e7c35 100644
--- a/apct-tests/perftests/multiuser/src/android/multiuser/UserLifecycleTests.java
+++ b/apct-tests/perftests/multiuser/src/android/multiuser/UserLifecycleTests.java
@@ -225,6 +225,32 @@
}
/**
+ * Tests starting an uninitialized user, with wait times in between iterations.
+ * Measures the time until ACTION_USER_STARTED is received.
+ */
+ @Test(timeout = TIMEOUT_MAX_TEST_TIME_MS)
+ public void startUser_realistic() throws RemoteException {
+ while (mRunner.keepRunning()) {
+ mRunner.pauseTiming();
+ final int userId = createUserNoFlags();
+
+ waitForBroadcastIdle();
+ runThenWaitForBroadcasts(userId, () -> {
+ mRunner.resumeTiming();
+ Log.i(TAG, "Starting timer");
+
+ mIam.startUserInBackground(userId);
+ }, Intent.ACTION_USER_STARTED);
+
+ mRunner.pauseTiming();
+ Log.i(TAG, "Stopping timer");
+ removeUser(userId);
+ waitCoolDownPeriod();
+ mRunner.resumeTimingForNextIteration();
+ }
+ }
+
+ /**
* Tests starting & unlocking an uninitialized user.
* Measures the time until unlock listener is triggered and user is unlocked.
*/