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

Commit cdecb319 authored by João Victor Mendes Freire's avatar João Victor Mendes Freire
Browse files

Add new version of stopUser performance test

Similar to what was done for switchUser, this commit adds a new version
of the stopUser test. In this variation, a single user is created per
test run (instead of one per iteration of the run) and a wait for cool
down was added in between iterations.

Bug: 261621873
Test: atest UserLifecycleTests#stopUser_realistic
Change-Id: Ief41deeea82392e6d44ff5520acffebfcc53f69d
parent f45b9cae
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -397,6 +397,32 @@ public class UserLifecycleTests {
        }
    }

    /** Tests stopping a background user, with wait times between iterations. The hypothesis is
     * that the effects of the user creation could impact the measured times, so in this variant we
     * create one user per run, instead of one per iteration */
    @Test(timeout = TIMEOUT_MAX_TEST_TIME_MS)
    public void stopUser_realistic() throws RemoteException {
        final int userId = createUserNoFlags();
        waitCoolDownPeriod();
        while (mRunner.keepRunning()) {
            mRunner.pauseTiming();
            runThenWaitForBroadcasts(userId, ()-> {
                mIam.startUserInBackground(userId);
            }, Intent.ACTION_USER_STARTED, Intent.ACTION_MEDIA_MOUNTED);
            waitCoolDownPeriod();
            Log.d(TAG, "Starting timer");
            mRunner.resumeTiming();

            stopUser(userId, false);

            mRunner.pauseTiming();
            Log.d(TAG, "Stopping timer");

            mRunner.resumeTimingForNextIteration();
        }
        removeUser(userId);
    }

    /** Tests reaching LOOKED_BOOT_COMPLETE when switching to uninitialized user. */
    @Test(timeout = TIMEOUT_MAX_TEST_TIME_MS)
    public void lockedBootCompleted() throws RemoteException {