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

Commit d93a6c41 authored by Riddle Hsu's avatar Riddle Hsu
Browse files

Use non-singleton looper for activity task manager tests

The handler thread for testing will quit after each test method.
It should prevent the delayed messages from affecting other
subsequent tests.

Test: atest ActivityStackTests

Change-Id: I56bad6ad8d6e9e769e3a5d96e9d5ff70c99d344a
parent 8c0d41ac
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -328,6 +328,7 @@ import com.android.server.AlarmManagerInternal;
import com.android.server.AppOpsService;
import com.android.server.AttributeCache;
import com.android.server.DeviceIdleController;
import com.android.server.DisplayThread;
import com.android.server.IntentResolver;
import com.android.server.IoThread;
import com.android.server.LocalServices;
@@ -2262,7 +2263,8 @@ public class ActivityManagerService extends IActivityManager.Stub
        mIntentFirewall = new IntentFirewall(new IntentFirewallInterface(), mHandler);
        mActivityTaskManager = atm;
        mActivityTaskManager.setActivityManagerService(mIntentFirewall, mPendingIntentController);
        mActivityTaskManager.initialize(mIntentFirewall, mPendingIntentController,
                DisplayThread.get().getLooper());
        mAtmInternal = LocalServices.getService(ActivityTaskManagerInternal.class);
        mProcessCpuThread = new Thread("CpuTracker") {
+6 −6
Original line number Diff line number Diff line
@@ -190,6 +190,7 @@ import android.os.Handler;
import android.os.IBinder;
import android.os.IUserManager;
import android.os.LocaleList;
import android.os.Looper;
import android.os.Message;
import android.os.PersistableBundle;
import android.os.PowerManager;
@@ -246,7 +247,6 @@ import com.android.internal.util.Preconditions;
import com.android.internal.util.function.pooled.PooledLambda;
import com.android.server.AppOpsService;
import com.android.server.AttributeCache;
import com.android.server.DisplayThread;
import com.android.server.LocalServices;
import com.android.server.SystemService;
import com.android.server.SystemServiceManager;
@@ -753,9 +753,9 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
        return mGlobalLock;
    }

    public void setActivityManagerService(IntentFirewall intentFirewall,
            PendingIntentController intentController) {
        mH = new H();
    public void initialize(IntentFirewall intentFirewall, PendingIntentController intentController,
            Looper looper) {
        mH = new H(looper);
        mUiHandler = new UiHandler();
        mIntentFirewall = intentFirewall;
        final File systemDir = SystemServiceManager.ensureSystemDir();
@@ -5576,8 +5576,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
        static final int FIRST_ACTIVITY_STACK_MSG = 100;
        static final int FIRST_SUPERVISOR_STACK_MSG = 200;

        public H() {
            super(DisplayThread.get().getLooper());
        H(Looper looper) {
            super(looper);
        }

        @Override
+5 −7
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
import static com.android.server.wm.ActivityStack.REMOVE_TASK_MODE_DESTROYING;
import static com.android.server.wm.ActivityStackSupervisor.ON_TOP;
@@ -403,11 +402,10 @@ class ActivityTestsBase {
            doReturn(true).when(this).isBackgroundActivityStartsEnabled();
        }

        void setActivityManagerService(IntentFirewall intentFirewall,
                PendingIntentController intentController, ActivityManagerInternal amInternal,
                WindowManagerService wm) {
        void setup(IntentFirewall intentFirewall, PendingIntentController intentController,
                ActivityManagerInternal amInternal, WindowManagerService wm, Looper looper) {
            mAmInternal = amInternal;
            setActivityManagerService(intentFirewall, intentController);
            initialize(intentFirewall, intentController, looper);
            initRootActivityContainerMocks(wm);
            setWindowManager(wm);
        }
@@ -517,8 +515,8 @@ class ActivityTestsBase {
            mWindowManager = prepareMockWindowManager();
            mUgmInternal = mock(UriGrantsManagerInternal.class);

            atm.setActivityManagerService(mIntentFirewall, mPendingIntentController,
                    new LocalService(), mWindowManager);
            atm.setup(mIntentFirewall, mPendingIntentController, new LocalService(), mWindowManager,
                    testInjector.mHandlerThread.getLooper());

            mActivityTaskManager = atm;
            mAtmInternal = atm.mInternal;