Add support to lock test method of WmTests by rule
Window manager could execute something on several threads, e.g.
display, animation, ui. And they cannot be stubbed completely
because that might reduce the similarity to the real case.
The test method usually run without synchronization but in the
real world those methods inside the test should be locked. That
may lead to some race condition such as damaging the mocking and
IndexOutOfBoundsException.
This CL introduces a new runner and rule to make sure the test
method and @Before/After are protected by the WM global lock.
Currently the rule only applies to the classes which are known
to have problems. If it looks stable, we can apply the rule to
more classes and remove the scattered synchronization in each
test method.
Bug: 140284973
Test: atest ActivityStarterTests
ActivityRecordTests
DisplayWindowSettingsTests
RootActivityContainerTests
RecentsAnimationTest
WindowStateTests
Change-Id: Ib9dc4bb8a9c3c3cbf0b329d0b05e4fdbe14b2e3e
11 files changed