Fix occassional CME in physics tests.

Test: atest SystemUITests
Change-Id: I93748f7efa2dc4ea69854c17d62d048159a8b03d
This commit is contained in:
Joshua Tsuji
2019-12-19 15:54:12 -05:00
parent 60cadb2368
commit ba5f0fe3d4

View File

@@ -236,6 +236,14 @@ object PhysicsAnimatorTestUtils {
vararg additionalUpdateMatchers: UpdateMatcher
) {
val updateFrames: UpdateFramesPerProperty<T> = getAnimationUpdateFrames(animator)
if (!updateFrames.containsKey(property)) {
error("No frames for given target object and property.")
}
// Copy the frames to avoid a ConcurrentModificationException if the animation update
// listeners attempt to add a new frame while we're verifying these.
val framesForProperty = ArrayList(updateFrames[property]!!)
val matchers = ArrayDeque<UpdateMatcher>(
additionalUpdateMatchers.toList())
val frameTraceMessage = StringBuilder()
@@ -243,8 +251,7 @@ object PhysicsAnimatorTestUtils {
var curMatcher = firstUpdateMatcher
// Loop through the updates from the testable animator.
for (update in updateFrames[property]
?: error("No frames for given target object and property.")) {
for (update in framesForProperty) {
// Check whether this frame satisfies the current matcher.
if (curMatcher(update)) {