From 1d66bf8c487068e44d234dc6d7a72fa3d4080733 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: I8b22320bb3ee60152ab808706913eff43ab7cc9f Merged-In: 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 228e50ed41a0a..277c04f991374 100644 --- a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java +++ b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java @@ -1021,6 +1021,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. @@ -1029,6 +1030,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 {