summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/tests/servicestests/src/com/android/server/power/hint/HintManagerServiceTest.java53
1 files changed, 26 insertions, 27 deletions
diff --git a/services/tests/servicestests/src/com/android/server/power/hint/HintManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/power/hint/HintManagerServiceTest.java
index 136507d429fc..726a4e285d68 100644
--- a/services/tests/servicestests/src/com/android/server/power/hint/HintManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/power/hint/HintManagerServiceTest.java
@@ -57,6 +57,8 @@ import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import java.util.concurrent.CountDownLatch;
+
/**
* Tests for {@link com.android.server.power.hint.HintManagerService}.
*
@@ -149,29 +151,28 @@ public class HintManagerServiceTest {
// Set session to background and calling updateHintAllowed() would invoke pause();
service.mUidObserver.onUidStateChanged(
a.mUid, ActivityManager.PROCESS_STATE_TRANSIENT_BACKGROUND, 0, 0);
- final Object sync = new Object();
+
+ // Using CountDownLatch to ensure above onUidStateChanged() job was digested.
+ final CountDownLatch latch = new CountDownLatch(1);
FgThread.getHandler().post(() -> {
- synchronized (sync) {
- sync.notify();
- }
+ latch.countDown();
});
- synchronized (sync) {
- sync.wait();
- }
+ latch.await();
+
assumeFalse(a.updateHintAllowed());
verify(mNativeWrapperMock, times(1)).halPauseHintSession(anyLong());
// Set session to foreground and calling updateHintAllowed() would invoke resume();
service.mUidObserver.onUidStateChanged(
a.mUid, ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND, 0, 0);
+
+ // Using CountDownLatch to ensure above onUidStateChanged() job was digested.
+ final CountDownLatch latch2 = new CountDownLatch(1);
FgThread.getHandler().post(() -> {
- synchronized (sync) {
- sync.notify();
- }
+ latch2.countDown();
});
- synchronized (sync) {
- sync.wait();
- }
+ latch2.await();
+
assumeTrue(a.updateHintAllowed());
verify(mNativeWrapperMock, times(1)).halResumeHintSession(anyLong());
}
@@ -237,15 +238,14 @@ public class HintManagerServiceTest {
// Set session to background, then the duration would not be updated.
service.mUidObserver.onUidStateChanged(
a.mUid, ActivityManager.PROCESS_STATE_TRANSIENT_BACKGROUND, 0, 0);
- final Object sync = new Object();
+
+ // Using CountDownLatch to ensure above onUidStateChanged() job was digested.
+ final CountDownLatch latch = new CountDownLatch(1);
FgThread.getHandler().post(() -> {
- synchronized (sync) {
- sync.notify();
- }
+ latch.countDown();
});
- synchronized (sync) {
- sync.wait();
- }
+ latch.await();
+
assumeFalse(a.updateHintAllowed());
a.reportActualWorkDuration(DURATIONS_THREE, TIMESTAMPS_THREE);
verify(mNativeWrapperMock, never()).halReportActualWorkDuration(anyLong(), any(), any());
@@ -287,15 +287,14 @@ public class HintManagerServiceTest {
service.mUidObserver.onUidStateChanged(
a.mUid, ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND, 0, 0);
- final Object sync = new Object();
+
+ // Using CountDownLatch to ensure above onUidStateChanged() job was digested.
+ final CountDownLatch latch = new CountDownLatch(1);
FgThread.getHandler().post(() -> {
- synchronized (sync) {
- sync.notify();
- }
+ latch.countDown();
});
- synchronized (sync) {
- sync.wait();
- }
+ latch.await();
+
assertFalse(a.updateHintAllowed());
}