diff options
author | Kai Shi <kaishi@google.com> | 2020-02-21 23:24:48 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-02-21 23:24:48 +0000 |
commit | 7f06922f0540a679df06baf9cc70008fd1b1fe48 (patch) | |
tree | bfda89a02011db174b3ccbd0883fbcb7011889fc /tests | |
parent | e2cf2e5c7809366692256a44609a021aa7925573 (diff) | |
parent | 4e2eea441c312d3128ffcbc1464d209c37c749c6 (diff) |
Merge "Bug fix WifiHealthMonitor daily detection timer"
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiHealthMonitorTest.java | 68 |
1 files changed, 67 insertions, 1 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiHealthMonitorTest.java b/tests/wifitests/src/com/android/server/wifi/WifiHealthMonitorTest.java index 33b22d2ef..253180d12 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiHealthMonitorTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiHealthMonitorTest.java @@ -54,6 +54,7 @@ import com.android.server.wifi.proto.WifiScoreCardProto.SystemInfoStats; import com.android.server.wifi.proto.WifiStatsLog; import com.android.server.wifi.proto.nano.WifiMetricsProto.HealthMonitorMetrics; + import org.junit.Before; import org.junit.Test; import org.mockito.Mock; @@ -63,6 +64,7 @@ import org.mockito.quality.Strictness; import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.Calendar; import java.util.List; /** @@ -74,6 +76,7 @@ public class WifiHealthMonitorTest extends WifiBaseTest { static final WifiSsid TEST_SSID_1 = WifiSsid.createFromAsciiEncoded("Joe's Place"); static final WifiSsid TEST_SSID_2 = WifiSsid.createFromAsciiEncoded("Poe's Place"); static final MacAddress TEST_BSSID_1 = MacAddress.fromString("aa:bb:cc:dd:ee:ff"); + private static final long CURRENT_ELAPSED_TIME_MS = 1000; private WifiScoreCard mWifiScoreCard; private WifiHealthMonitor mWifiHealthMonitor; @@ -394,7 +397,70 @@ public class WifiHealthMonitorTest extends WifiBaseTest { } /** - * Check stats after two daily detections. + * Check alarm timing of a multi-day run. + */ + @Test + public void testTimerMultiDayRun() throws Exception { + long currentWallClockTimeMs = 23 * 3600_000; + long currentElapsedTimeMs = CURRENT_ELAPSED_TIME_MS; + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(currentWallClockTimeMs); + int expectedWaitHours = WifiHealthMonitor.DAILY_DETECTION_HOUR + - calendar.get(Calendar.HOUR_OF_DAY); + if (expectedWaitHours <= 0) expectedWaitHours += 24; + + // day 1 + when(mClock.getElapsedSinceBootMillis()).thenReturn(currentElapsedTimeMs); + when(mClock.getWallClockMillis()).thenReturn(currentWallClockTimeMs); + mWifiHealthMonitor.installMemoryStoreSetUpDetectionAlarm(mMemoryStore); + long waitTimeMs = mAlarmManager + .getTriggerTimeMillis(WifiHealthMonitor.DAILY_DETECTION_TIMER_TAG) + - currentElapsedTimeMs; + assertEquals(expectedWaitHours * 3600_000, waitTimeMs); + currentElapsedTimeMs += 24 * 3600_000 + 1; + when(mClock.getElapsedSinceBootMillis()).thenReturn(currentElapsedTimeMs); + mAlarmManager.dispatch(WifiHealthMonitor.DAILY_DETECTION_TIMER_TAG); + mLooper.dispatchAll(); + waitTimeMs = mAlarmManager + .getTriggerTimeMillis(WifiHealthMonitor.DAILY_DETECTION_TIMER_TAG) + - currentElapsedTimeMs; + assertEquals(24 * 3600_000, waitTimeMs); + // day 2 + currentElapsedTimeMs += 24 * 3600_000 - 1; + when(mClock.getElapsedSinceBootMillis()).thenReturn(currentElapsedTimeMs); + mAlarmManager.dispatch(WifiHealthMonitor.DAILY_DETECTION_TIMER_TAG); + mLooper.dispatchAll(); + waitTimeMs = mAlarmManager + .getTriggerTimeMillis(WifiHealthMonitor.DAILY_DETECTION_TIMER_TAG) + - currentElapsedTimeMs; + assertEquals(24 * 3600_000, waitTimeMs); + } + + /** + * Check the alarm timing with a different wall clock time + */ + @Test + public void testTimerWith() throws Exception { + long currentWallClockTimeMs = 7 * 3600_000; + long currentElapsedTimeMs = CURRENT_ELAPSED_TIME_MS; + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(currentWallClockTimeMs); + int expectedWaitHours = WifiHealthMonitor.DAILY_DETECTION_HOUR + - calendar.get(Calendar.HOUR_OF_DAY); + if (expectedWaitHours <= 0) expectedWaitHours += 24; + + // day 1 + when(mClock.getElapsedSinceBootMillis()).thenReturn(currentElapsedTimeMs); + when(mClock.getWallClockMillis()).thenReturn(currentWallClockTimeMs); + mWifiHealthMonitor.installMemoryStoreSetUpDetectionAlarm(mMemoryStore); + long waitTimeMs = mAlarmManager + .getTriggerTimeMillis(WifiHealthMonitor.DAILY_DETECTION_TIMER_TAG) + - currentElapsedTimeMs; + assertEquals(expectedWaitHours * 3600_000, waitTimeMs); + } + + /** + * Check stats with two daily detections. */ @Test public void testTwoDailyDetections() throws Exception { |