Bug fix of PerNetwork.mergeConnectionStats()
Fix a typo in mergeConnectionStats() where accumulate(CNT_CONNECTION_ATTEMPT, source.getNumConnectionFailure()) should be accumulate(CNT_CONNECTION_FAILURE, source.getNumConnectionFailure())
Bug: 174166637
Test: atest com.android.server.wifi
Test: manual test with a SAP which always disconnects STA during 4-way HS.
Merged-In: Icfa57647c9a639f97340b0f42aef0a0e77215c93
Change-Id: I0ae849ddb7e94d97854dfd419cfc04cfe5c47257
diff --git a/service/java/com/android/server/wifi/WifiScoreCard.java b/service/java/com/android/server/wifi/WifiScoreCard.java
index 2ab5fb4..002734d 100644
--- a/service/java/com/android/server/wifi/WifiScoreCard.java
+++ b/service/java/com/android/server/wifi/WifiScoreCard.java
@@ -1280,7 +1280,7 @@
target.accumulate(CNT_CONNECTION_ATTEMPT, source.getNumConnectionAttempt());
}
if (source.hasNumConnectionFailure()) {
- target.accumulate(CNT_CONNECTION_ATTEMPT, source.getNumConnectionFailure());
+ target.accumulate(CNT_CONNECTION_FAILURE, source.getNumConnectionFailure());
}
if (source.hasConnectionDurationSec()) {
target.accumulate(CNT_CONNECTION_DURATION_SEC, source.getConnectionDurationSec());
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiScoreCardTest.java b/tests/wifitests/src/com/android/server/wifi/WifiScoreCardTest.java
index e5739a1..edbc4b0 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiScoreCardTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiScoreCardTest.java
@@ -1079,7 +1079,7 @@
* Constructs a protobuf form of Network example.
*/
private byte[] makeSerializedNetworkExample() {
- makeNormalConnectionExample();
+ makeAuthFailureAndWrongPassword();
PerNetwork perNetwork = mWifiScoreCard.fetchByNetwork(mWifiInfo.getSSID());
checkSerializationNetworkExample("before serialization", perNetwork);
@@ -1093,14 +1093,14 @@
*/
private void checkSerializationNetworkExample(String diag, PerNetwork perNetwork) {
NetworkConnectionStats dailyStats = perNetwork.getRecentStats();
- assertEquals(diag, 1, dailyStats.getCount(CNT_CONNECTION_ATTEMPT));
- assertEquals(diag, 0, dailyStats.getCount(CNT_CONNECTION_FAILURE));
- assertEquals(diag, 11, dailyStats.getCount(CNT_CONNECTION_DURATION_SEC));
+ assertEquals(diag, 2, dailyStats.getCount(CNT_CONNECTION_ATTEMPT));
+ assertEquals(diag, 1, dailyStats.getCount(CNT_CONNECTION_FAILURE));
+ assertEquals(diag, 0, dailyStats.getCount(CNT_CONNECTION_DURATION_SEC));
assertEquals(diag, 0, dailyStats.getCount(CNT_SHORT_CONNECTION_NONLOCAL));
assertEquals(diag, 0, dailyStats.getCount(CNT_DISCONNECTION_NONLOCAL));
assertEquals(diag, 0, dailyStats.getCount(CNT_ASSOCIATION_REJECTION));
assertEquals(diag, 0, dailyStats.getCount(CNT_ASSOCIATION_TIMEOUT));
- assertEquals(diag, 0, dailyStats.getCount(CNT_AUTHENTICATION_FAILURE));
+ assertEquals(diag, 1, dailyStats.getCount(CNT_AUTHENTICATION_FAILURE));
}
/**
@@ -1113,14 +1113,14 @@
// Verify by parsing it and checking that we see the expected results
NetworkStats ns = NetworkStats.parseFrom(serialized);
ConnectionStats dailyStats = ns.getRecentStats();
- assertEquals(1, dailyStats.getNumConnectionAttempt());
- assertEquals(0, dailyStats.getNumConnectionFailure());
- assertEquals(11, dailyStats.getConnectionDurationSec());
+ assertEquals(2, dailyStats.getNumConnectionAttempt());
+ assertEquals(1, dailyStats.getNumConnectionFailure());
+ assertEquals(0, dailyStats.getConnectionDurationSec());
assertEquals(0, dailyStats.getNumDisconnectionNonlocal());
assertEquals(0, dailyStats.getNumShortConnectionNonlocal());
assertEquals(0, dailyStats.getNumAssociationRejection());
assertEquals(0, dailyStats.getNumAssociationTimeout());
- assertEquals(0, dailyStats.getNumAuthenticationFailure());
+ assertEquals(1, dailyStats.getNumAuthenticationFailure());
}
/**