summaryrefslogtreecommitdiffstats
path: root/tests/wifitests/src/com/android/server/wifi/WifiScoreReportTest.java
diff options
context:
space:
mode:
authorMichael Plass <mplass@google.com>2018-03-15 13:22:51 -0700
committerMichael Plass <mplass@google.com>2018-03-26 13:41:20 -0700
commit226f9367871d2c25caf8c58076245d5b6d4891b6 (patch)
tree36ac70d04f6a60a5b11a4b735984cd6c0bea1711 /tests/wifitests/src/com/android/server/wifi/WifiScoreReportTest.java
parent2d5ae699905ffec6bc0f50d17a28e1132fd498b1 (diff)
downloadandroid_frameworks_opt_net_wifi-226f9367871d2c25caf8c58076245d5b6d4891b6.tar.gz
android_frameworks_opt_net_wifi-226f9367871d2c25caf8c58076245d5b6d4891b6.tar.bz2
android_frameworks_opt_net_wifi-226f9367871d2c25caf8c58076245d5b6d4891b6.zip
[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/wifitests/src/com/android/server/wifi/WifiScoreReportTest.java')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiScoreReportTest.java30
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.