From 614ed9e0e99fa7a18d8785e6f6087b667e4e7af4 Mon Sep 17 00:00:00 2001 From: Riddle Hsu Date: Mon, 29 May 2023 20:02:52 +0800 Subject: [PATCH] Set fit insets type for decor insets test Otherwise because since the key of InsetsState#mSources is based on hashcode (InsetsSource.createId), the order to iterate mSources may be indeterministic for the same insets type. Then WindowLayout#computeFrames may compute different results according to the hashcode, that causes the test to be flaky. By setting fit insets type to 0, the insets won't affect each other. Fix: 284435531 Test: DisplayPolicyTests#testUpdateDisplayConfigurationByDecor Change-Id: I30ea22c051f84264a03d0b698d50d83c62059869 --- .../wmtests/src/com/android/server/wm/DisplayPolicyTests.java | 2 ++ .../wmtests/src/com/android/server/wm/WindowTestsBase.java | 1 + 2 files changed, 3 insertions(+) diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java index d0eb1b2ec220b..b0609ddfddfd0 100644 --- a/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java @@ -362,10 +362,12 @@ public class DisplayPolicyTests extends WindowTestsBase { new InsetsFrameProvider(bar2, 0, WindowInsets.Type.statusBars()) .setInsetsSize(Insets.of(0, STATUS_BAR_HEIGHT, 0, 0)) }; + bar2.mAttrs.setFitInsetsTypes(0); bar2.mAttrs.paramsForRotation = new WindowManager.LayoutParams[4]; final int doubleHeightFor90 = STATUS_BAR_HEIGHT * 2; for (int i = ROTATION_0; i <= Surface.ROTATION_270; i++) { final WindowManager.LayoutParams params = new WindowManager.LayoutParams(); + params.setFitInsetsTypes(0); if (i == Surface.ROTATION_90) { params.providedInsets = new InsetsFrameProvider[] { new InsetsFrameProvider(bar2, 0, WindowInsets.Type.statusBars()) 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 863523f826b2e..ddc729f773b2e 100644 --- a/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java +++ b/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java @@ -485,6 +485,7 @@ class WindowTestsBase extends SystemServiceTestsBase { new InsetsFrameProvider(owner, 0, WindowInsets.Type.statusBars()) .setInsetsSize(Insets.of(0, STATUS_BAR_HEIGHT, 0, 0)) }; + statusBar.mAttrs.setFitInsetsTypes(0); dc.getDisplayPolicy().addWindowLw(statusBar, statusBar.mAttrs); return statusBar; }