From b61fac95f5c1df1af9efbab9a13ce5d2dc6e80d3 Mon Sep 17 00:00:00 2001 From: Richard Uhler Date: Thu, 29 Aug 2019 12:03:35 +0100 Subject: [PATCH] Fix flaky testEnableRollbackTimeoutFailsRollback test We no longer block on the handler thread in getAvailableRollbacks. That means it is possible we see an available rollback left over from a previous test run. Update the test to ensure previous rollbacks are removed and give sufficient time to make a new rollback available before concluding that no rollback will be made available in this case. Test: atest RollbackTest:com.android.tests.rollback.RollbackTest#testEnableRollbackTimeoutFailsRollback Change-Id: Id94d5452836b07d6f802758bd0dfdd3c276a3c05 --- .../src/com/android/tests/rollback/RollbackTest.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java index bfbe08ae396a7..ed8f272874e15 100644 --- a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java +++ b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java @@ -1020,6 +1020,7 @@ public class RollbackTest { Uninstall.packages(TestApp.A); Install.single(TestApp.A1).commit(); + waitForUnavailableRollback(TestApp.A); // Block the RollbackManager to make extra sure it will not be // able to enable the rollback in time. @@ -1028,6 +1029,10 @@ public class RollbackTest { assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2); + // Give plenty of time for RollbackManager to unblock and attempt + // to make the rollback available before asserting that the + // rollback was not made available. + Thread.sleep(TimeUnit.SECONDS.toMillis(2)); assertThat( getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TestApp.A)).isNull(); } finally {