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

Commit 44574df5 authored by Sudheer Shanka's avatar Sudheer Shanka Committed by Android (Google) Code Review
Browse files

Merge "Fix flaky ActivityManagerServiceTest."

parents 08ff01e7 7e4ed2b3
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -129,6 +129,10 @@ public class UidObserverController {
        return mValidateUids;
    }

    Runnable getDispatchRunnableForTest() {
        return mDispatchRunnable;
    }

    @VisibleForTesting
    static int mergeWithPendingChange(int currentChange, int pendingChange) {
        // If there is no change in idle or active state, then keep whatever was pending.
+18 −1
Original line number Diff line number Diff line
@@ -98,6 +98,7 @@ import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
@@ -164,6 +165,8 @@ public class ActivityManagerServiceTest {
        mAms.mWaitForNetworkTimeoutMs = 2000;
        mAms.mActivityTaskManager = new ActivityTaskManagerService(mContext);
        mAms.mActivityTaskManager.initialize(null, null, mHandler.getLooper());
        mHandler.setRunnablesToIgnore(
                List.of(mAms.mUidObserverController.getDispatchRunnableForTest()));
    }

    private void mockNoteOperation() {
@@ -983,12 +986,21 @@ public class ActivityManagerServiceTest {
        private static final long WAIT_FOR_MSG_TIMEOUT_MS = 4000; // 4 sec
        private static final long WAIT_FOR_MSG_INTERVAL_MS = 400; // 0.4 sec

        private Set<Integer> mMsgsHandled = new HashSet<>();
        private final Set<Integer> mMsgsHandled = new HashSet<>();
        private final List<Runnable> mRunnablesToIgnore = new ArrayList<>();

        TestHandler(Looper looper) {
            super(looper);
        }

        @Override
        public void dispatchMessage(Message msg) {
            if (msg.getCallback() != null && mRunnablesToIgnore.contains(msg.getCallback())) {
                return;
            }
            super.dispatchMessage(msg);
        }

        @Override
        public void handleMessage(Message msg) {
            mMsgsHandled.add(msg.what);
@@ -1004,6 +1016,11 @@ public class ActivityManagerServiceTest {
            }
        }

        public void setRunnablesToIgnore(List<Runnable> runnables) {
            mRunnablesToIgnore.clear();
            mRunnablesToIgnore.addAll(runnables);
        }

        public void reset() {
            mMsgsHandled.clear();
        }