statemachine migration from base to modules-utils
Changes needed in order to not have a hidden dependency used by
modules-utils.
We are replacing the os.test.TestLooper by os.TestLooperManger
Bug: 198418216
Tag: #refactor
Test: atest ModulesUtilsTests
Ignore-AOSP-First: avoid merge-conflict with frameworks/base
Change-Id: I50ef57bdb869f3e8da7235943f34a8c66ce4b498
diff --git a/javatests/com/android/internal/util/StateMachineTest.java b/javatests/com/android/internal/util/StateMachineTest.java
index b85cb9c..ec3b049 100644
--- a/javatests/com/android/internal/util/StateMachineTest.java
+++ b/javatests/com/android/internal/util/StateMachineTest.java
@@ -21,11 +21,13 @@
import android.os.Looper;
import android.os.Message;
import android.os.SystemClock;
-import android.os.test.TestLooper;
+import android.os.TestLooperManager;
import android.test.suitebuilder.annotation.MediumTest;
import android.test.suitebuilder.annotation.SmallTest;
import android.util.Log;
+import androidx.test.InstrumentationRegistry;
+
import com.android.internal.util.StateMachine.LogRec;
import junit.framework.TestCase;
@@ -411,15 +413,22 @@
public void testStateMachineQuitNowAfterStart() throws Exception {
if (WAIT_FOR_DEBUGGER) Debug.waitForDebugger();
- TestLooper testLooper = new TestLooper();
- StateMachineQuitNowAfterStartTest smQuitNowAfterStartTest =
- new StateMachineQuitNowAfterStartTest(
- "smQuitNowAfterStartTest", testLooper.getLooper());
- smQuitNowAfterStartTest.start();
- smQuitNowAfterStartTest.quitNow();
- if (smQuitNowAfterStartTest.isDbg()) tlog("testStateMachineQuitNowAfterStart E");
+ HandlerThread mThread = new HandlerThread("testStateMachineQuitNowAfterStart");
+ mThread.start();
- testLooper.dispatchAll();
+ Looper mLooper = mThread.getLooper();
+ TestLooperManager looperManager = InstrumentationRegistry.getInstrumentation()
+ .acquireLooperManager(mLooper);
+ StateMachineQuitNowAfterStartTest smQuitNowAfterStartTest =
+ new StateMachineQuitNowAfterStartTest("smQuitNowAfterStartTest", mLooper);
+ synchronized(smQuitNowAfterStartTest) {
+ smQuitNowAfterStartTest.start();
+ smQuitNowAfterStartTest.quitNow();
+ if (smQuitNowAfterStartTest.isDbg()) tlog("testStateMachineQuitNowAfterStart E");
+
+ looperManager.release();
+ smQuitNowAfterStartTest.wait();
+ }
dumpLogRecs(smQuitNowAfterStartTest.mLogRecs);
assertEquals(2, smQuitNowAfterStartTest.mLogRecs.size());