summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Wale Ogunwale <ogunwale@google.com> 2019-11-21 07:19:07 -0800
committer Wale Ogunwale <ogunwale@google.com> 2019-11-21 13:09:22 -0800
commitc9dfbc5fc84a070c1a35b2897613c5a23eeeedfe (patch)
tree5395e11d91c10f17837dbcb346499b6f5e039ec5
parent84c262cf99ea1aa2de3ac500a1892c5a0cd073ab (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
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/SystemServiceTestsBase.java4
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java4
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java2
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;