diff options
| author | 2019-11-21 07:19:07 -0800 | |
|---|---|---|
| committer | 2019-11-21 13:09:22 -0800 | |
| commit | c9dfbc5fc84a070c1a35b2897613c5a23eeeedfe (patch) | |
| tree | 5395e11d91c10f17837dbcb346499b6f5e039ec5 | |
| parent | 84c262cf99ea1aa2de3ac500a1892c5a0cd073ab (diff) | |
Clean up AnimationThread default handler
To avoid flakiness during unit tests. Note that this is a different
object than WindowManagerService.mAnimationHandler.
Bug: N/A
Test: Let them pass!
Change-Id: I71a775b0599facb4172c86b28d7a9f7e36c65673
3 files changed, 9 insertions, 1 deletions
diff --git a/services/tests/wmtests/src/com/android/server/wm/SystemServiceTestsBase.java b/services/tests/wmtests/src/com/android/server/wm/SystemServiceTestsBase.java index d1b6f6f3f4cf..7e31895aa991 100644 --- a/services/tests/wmtests/src/com/android/server/wm/SystemServiceTestsBase.java +++ b/services/tests/wmtests/src/com/android/server/wm/SystemServiceTestsBase.java @@ -40,6 +40,10 @@ class SystemServiceTestsBase { mLockRule.waitForLocked(mSystemServicesTestRule::waitUntilWindowManagerHandlersIdle); } + void cleanupWindowManagerHandlers() { + mLockRule.waitForLocked(mSystemServicesTestRule::cleanupWindowManagerHandlers); + } + boolean waitHandlerIdle(Handler handler) { return waitHandlerIdle(handler, 0 /* timeout */); } diff --git a/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java b/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java index 2c34f331e965..d3b68e02cbf8 100644 --- a/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java +++ b/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java @@ -355,6 +355,8 @@ public class SystemServicesTestRule implements TestRule { } wm.mH.removeCallbacksAndMessages(null); wm.mAnimationHandler.removeCallbacksAndMessages(null); + // This is a different handler object than the wm.mAnimationHandler above. + AnimationThread.getHandler().removeCallbacksAndMessages(null); SurfaceAnimationThread.getHandler().removeCallbacksAndMessages(null); } @@ -367,6 +369,8 @@ public class SystemServicesTestRule implements TestRule { wm.mH.removeMessages(WindowManagerService.H.FORCE_GC); waitHandlerIdle(wm.mH); waitHandlerIdle(wm.mAnimationHandler); + // This is a different handler object than the wm.mAnimationHandler above. + waitHandlerIdle(AnimationThread.getHandler()); waitHandlerIdle(SurfaceAnimationThread.getHandler()); } diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java b/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java index 0da9dc40bb4d..7aa5148aa1a5 100644 --- a/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java +++ b/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java @@ -175,7 +175,7 @@ class WindowTestsBase extends SystemServiceTestsBase { } // Cleaned up everything in Handler. - mSystemServicesTestRule.cleanupWindowManagerHandlers(); + cleanupWindowManagerHandlers(); } catch (Exception e) { Log.e(TAG, "Failed to tear down test", e); throw e; |