summaryrefslogtreecommitdiffstats
path: root/tests/wifitests/src
diff options
context:
space:
mode:
authorMehdi Alizadeh <mett@google.com>2017-08-10 18:16:38 -0700
committerMehdi Alizadeh <mett@google.com>2017-09-01 20:14:10 +0000
commita2dae3436431f3fe2ac79ad087fe62f6fcda8ad7 (patch)
treeee23392efeb18b3a08ce3b314dcb9d62c64b1b2a /tests/wifitests/src
parentd2c7a6041bbdf91d3cedbcb16ca06d37f449d95a (diff)
downloadandroid_frameworks_opt_net_wifi-a2dae3436431f3fe2ac79ad087fe62f6fcda8ad7.tar.gz
android_frameworks_opt_net_wifi-a2dae3436431f3fe2ac79ad087fe62f6fcda8ad7.tar.bz2
android_frameworks_opt_net_wifi-a2dae3436431f3fe2ac79ad087fe62f6fcda8ad7.zip
Adds definitions to collect wifi Pno metrics
Provide APIs from WifiMetrics to update PNO scan counters. Include these metrics in dumpsys and update unit tests to verify deserialization of newly added metrics. Bug: 32842314 Test: Unit test and verify values in dumpsys Change-Id: I536cd9081a8cfe70f044818e7febd08003ccc702
Diffstat (limited to 'tests/wifitests/src')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java32
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WificondControlTest.java44
2 files changed, 74 insertions, 2 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java b/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java
index 5a139282b..10ad3c620 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java
@@ -16,6 +16,7 @@
package com.android.server.wifi;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.*;
@@ -37,6 +38,7 @@ import com.android.server.wifi.hotspot2.PasspointManager;
import com.android.server.wifi.hotspot2.PasspointMatch;
import com.android.server.wifi.hotspot2.PasspointProvider;
import com.android.server.wifi.nano.WifiMetricsProto;
+import com.android.server.wifi.nano.WifiMetricsProto.PnoScanMetrics;
import com.android.server.wifi.nano.WifiMetricsProto.StaEvent;
import org.junit.Before;
@@ -252,6 +254,11 @@ public class WifiMetricsTest {
private static final int NUM_PASSPOINT_PROVIDER_UNINSTALL_SUCCESS = 2;
private static final int NUM_PASSPOINT_PROVIDERS_SUCCESSFULLY_CONNECTED = 1;
private static final int NUM_PARTIAL_SCAN_RESULTS = 73;
+ private static final int NUM_PNO_SCAN_ATTEMPTS = 20;
+ private static final int NUM_PNO_SCAN_FAILED = 5;
+ private static final int NUM_PNO_SCAN_STARTED_OVER_OFFLOAD = 17;
+ private static final int NUM_PNO_SCAN_FAILED_OVER_OFFLOAD = 8;
+ private static final int NUM_PNO_FOUND_NETWORK_EVENTS = 10;
private ScanDetail buildMockScanDetail(boolean hidden, NetworkDetail.HSRelease hSRelease,
String capabilities) {
@@ -474,6 +481,23 @@ public class WifiMetricsTest {
for (int i = 0; i < NUM_PASSPOINT_PROVIDER_UNINSTALL_SUCCESS; i++) {
mWifiMetrics.incrementNumPasspointProviderUninstallSuccess();
}
+
+ // increment pno scan metrics
+ for (int i = 0; i < NUM_PNO_SCAN_ATTEMPTS; i++) {
+ mWifiMetrics.incrementPnoScanStartAttempCount();
+ }
+ for (int i = 0; i < NUM_PNO_SCAN_FAILED; i++) {
+ mWifiMetrics.incrementPnoScanFailedCount();
+ }
+ for (int i = 0; i < NUM_PNO_SCAN_STARTED_OVER_OFFLOAD; i++) {
+ mWifiMetrics.incrementPnoScanStartedOverOffloadCount();
+ }
+ for (int i = 0; i < NUM_PNO_SCAN_FAILED_OVER_OFFLOAD; i++) {
+ mWifiMetrics.incrementPnoScanFailedOverOffloadCount();
+ }
+ for (int i = 0; i < NUM_PNO_FOUND_NETWORK_EVENTS; i++) {
+ mWifiMetrics.incrementPnoFoundNetworkEventCount();
+ }
}
/**
@@ -618,6 +642,14 @@ public class WifiMetricsTest {
mDecodedProto.numPasspointProviderUninstallSuccess);
assertEquals(NUM_PASSPOINT_PROVIDERS_SUCCESSFULLY_CONNECTED,
mDecodedProto.numPasspointProvidersSuccessfullyConnected);
+
+ PnoScanMetrics pno_metrics = mDecodedProto.pnoScanMetrics;
+ assertNotNull(pno_metrics);
+ assertEquals(NUM_PNO_SCAN_ATTEMPTS, pno_metrics.numPnoScanAttempts);
+ assertEquals(NUM_PNO_SCAN_FAILED, pno_metrics.numPnoScanFailed);
+ assertEquals(NUM_PNO_SCAN_STARTED_OVER_OFFLOAD, pno_metrics.numPnoScanStartedOverOffload);
+ assertEquals(NUM_PNO_SCAN_FAILED_OVER_OFFLOAD, pno_metrics.numPnoScanFailedOverOffload);
+ assertEquals(NUM_PNO_FOUND_NETWORK_EVENTS, pno_metrics.numPnoFoundNetworkEvents);
}
/**
diff --git a/tests/wifitests/src/com/android/server/wifi/WificondControlTest.java b/tests/wifitests/src/com/android/server/wifi/WificondControlTest.java
index 164f75999..cca204564 100644
--- a/tests/wifitests/src/com/android/server/wifi/WificondControlTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WificondControlTest.java
@@ -66,6 +66,7 @@ import java.util.Set;
public class WificondControlTest {
private WifiInjector mWifiInjector;
private WifiMonitor mWifiMonitor;
+ private WifiMetrics mWifiMetrics;
private CarrierNetworkConfig mCarrierNetworkConfig;
private WificondControl mWificondControl;
private static final String TEST_INTERFACE_NAME = "test_wlan_if";
@@ -145,6 +146,8 @@ public class WificondControlTest {
public void setUp() throws Exception {
mWifiInjector = mock(WifiInjector.class);
mWifiMonitor = mock(WifiMonitor.class);
+ mWifiMetrics = mock(WifiMetrics.class);
+ when(mWifiInjector.getWifiMetrics()).thenReturn(mWifiMetrics);
mCarrierNetworkConfig = mock(CarrierNetworkConfig.class);
mWificondControl = new WificondControl(mWifiInjector, mWifiMonitor, mCarrierNetworkConfig);
}
@@ -660,7 +663,7 @@ public class WificondControlTest {
/**
* Verifies that WificondControl can invoke WifiMonitor broadcast methods upon pno scan
- * reuslt event.
+ * result event.
*/
@Test
public void testPnoScanResultEvent() throws Exception {
@@ -671,11 +674,48 @@ public class WificondControlTest {
IPnoScanEvent pnoScanEvent = messageCaptor.getValue();
assertNotNull(pnoScanEvent);
pnoScanEvent.OnPnoNetworkFound();
-
verify(mWifiMonitor).broadcastPnoScanResultEvent(any(String.class));
}
/**
+ * Verifies that WificondControl can invoke WifiMetrics pno scan count methods upon pno event.
+ */
+ @Test
+ public void testPnoScanEventsForMetrics() throws Exception {
+ IWifiScannerImpl scanner = setupClientInterfaceAndCreateMockWificondScanner();
+
+ ArgumentCaptor<IPnoScanEvent> messageCaptor = ArgumentCaptor.forClass(IPnoScanEvent.class);
+ verify(scanner).subscribePnoScanEvents(messageCaptor.capture());
+ IPnoScanEvent pnoScanEvent = messageCaptor.getValue();
+ assertNotNull(pnoScanEvent);
+
+ pnoScanEvent.OnPnoNetworkFound();
+ verify(mWifiMetrics).incrementPnoFoundNetworkEventCount();
+
+ pnoScanEvent.OnPnoScanFailed();
+ verify(mWifiMetrics).incrementPnoScanFailedCount();
+
+ pnoScanEvent.OnPnoScanOverOffloadStarted();
+ verify(mWifiMetrics).incrementPnoScanStartedOverOffloadCount();
+
+ pnoScanEvent.OnPnoScanOverOffloadFailed(0);
+ verify(mWifiMetrics).incrementPnoScanFailedOverOffloadCount();
+ }
+
+ /**
+ * Verifies that startPnoScan() can invoke WifiMetrics pno scan count methods correctly.
+ */
+ @Test
+ public void testStartPnoScanForMetrics() throws Exception {
+ IWifiScannerImpl scanner = setupClientInterfaceAndCreateMockWificondScanner();
+
+ when(scanner.startPnoScan(any(PnoSettings.class))).thenReturn(false);
+ assertFalse(mWificondControl.startPnoScan(TEST_PNO_SETTINGS));
+ verify(mWifiMetrics).incrementPnoScanStartAttempCount();
+ verify(mWifiMetrics).incrementPnoScanFailedCount();
+ }
+
+ /**
* Verifies that abortScan() calls underlying wificond.
*/
@Test