diff options
author | Michael Plass <mplass@google.com> | 2018-03-15 13:22:51 -0700 |
---|---|---|
committer | Michael Plass <mplass@google.com> | 2018-03-26 13:41:20 -0700 |
commit | 226f9367871d2c25caf8c58076245d5b6d4891b6 (patch) | |
tree | 36ac70d04f6a60a5b11a4b735984cd6c0bea1711 /tests | |
parent | 2d5ae699905ffec6bc0f50d17a28e1132fd498b1 (diff) |
[WifiScoreReport] Check entry threshold
Avoid score breach when the rssi hasn't gone below the entry threshold.
Bug: 74613347
Test: Unit test added
Change-Id: I0011e3b59ae2abe5c2b3775e2c504878399d55d1
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiScoreReportTest.java | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiScoreReportTest.java b/tests/wifitests/src/com/android/server/wifi/WifiScoreReportTest.java index 67c9a736b..c814b406d 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiScoreReportTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiScoreReportTest.java @@ -66,6 +66,7 @@ public class WifiScoreReportTest { WifiScoreReport mWifiScoreReport; ScanDetailCache mScanDetailCache; WifiInfo mWifiInfo; + ScoringParams mScoringParams; @Mock Context mContext; @Mock NetworkAgent mNetworkAgent; @Mock Resources mResources; @@ -123,7 +124,8 @@ public class WifiScoreReportTest { int trimSize = 5; when(mContext.getResources()).thenReturn(mResources); mClock = new FakeClock(); - mWifiScoreReport = new WifiScoreReport(new ScoringParams(mContext), mClock); + mScoringParams = new ScoringParams(mContext); + mWifiScoreReport = new WifiScoreReport(mScoringParams, mClock); } /** @@ -226,6 +228,32 @@ public class WifiScoreReportTest { } /** + * RSSI that falls rapidly but does not cross entry threshold should not cause handoff + * + * Expect the score to not drop below the handoff threshold. + */ + @Test + public void stayOnIfRssiDoesNotGetBelowEntryThreshold() throws Exception { + String oops = "didNotStickLanding"; + int minScore = 100; + mWifiInfo.setLinkSpeed(6); // Mbps + mWifiInfo.setFrequency(5220); + mWifiScoreReport.enableVerboseLogging(true); + mWifiInfo.txSuccessRate = 0.1; + mWifiInfo.rxSuccessRate = 0.1; + assertTrue(mScoringParams.update("rssi5=-83:-80:-66:-55")); + for (int r = -30; r >= -100; r -= 1) { + int rssi = Math.max(r, -80); + mWifiInfo.setRssi(rssi); + oops += " " + mClock.mWallClockMillis + "," + rssi; + mWifiScoreReport.calculateAndReportScore(mWifiInfo, mNetworkAgent, mWifiMetrics); + oops += ":" + mWifiInfo.score; + if (mWifiInfo.score < minScore) minScore = mWifiInfo.score; + } + assertTrue(oops, minScore > CELLULAR_THRESHOLD_SCORE); + } + + /** * This setup causes some reports to be generated when println * methods are called, to check for "concurrent" modification * errors. |