diff options
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; |