summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2018-03-30 00:28:15 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-03-30 00:28:15 +0000
commitfe62d25331c3d4b25055f9a519ecd039f253f476 (patch)
treecdf194ae3208f9f9303d5e4c14469b589bfa9b1f /tests
parent9bb500a762043adce2fafe06ea3deddd7e8b5889 (diff)
parenta79e9c8ea6461b65cef7a8542af088b8f2945ea2 (diff)
Merge changes from topic "native_metrics" into pi-dev
* changes: WifiNative: Add interface down metrics WifiMetrics: Add new metrics for SoftAp on failure WifiMetrics: Add new metrics for supplicant/hostapd crashes
Diffstat (limited to 'tests')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java53
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiNativeInterfaceManagementTest.java40
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiNativeTest.java13
3 files changed, 93 insertions, 13 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java b/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java
index 128041836..2ce661cf1 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java
@@ -251,8 +251,16 @@ public class WifiMetricsTest {
private static final int NUM_SOFTAP_FAILED_NO_CHANNEL = 1;
private static final int NUM_HAL_CRASHES = 11;
private static final int NUM_WIFICOND_CRASHES = 12;
+ private static final int NUM_SUPPLICANT_CRASHES = 23;
+ private static final int NUM_HOSTAPD_CRASHES = 7;
private static final int NUM_WIFI_ON_FAILURE_DUE_TO_HAL = 13;
private static final int NUM_WIFI_ON_FAILURE_DUE_TO_WIFICOND = 14;
+ private static final int NUM_WIFI_ON_FAILURE_DUE_TO_SUPPLICANT = 20;
+ private static final int NUM_SOFTAP_ON_FAILURE_DUE_TO_HAL = 23;
+ private static final int NUM_SOFTAP_ON_FAILURE_DUE_TO_WIFICOND = 19;
+ private static final int NUM_SOFTAP_ON_FAILURE_DUE_TO_HOSTAPD = 31;
+ private static final int NUM_SOFTAP_INTERFACE_DOWN = 65;
+ private static final int NUM_CLIENT_INTERFACE_DOWN = 12;
private static final int NUM_PASSPOINT_PROVIDERS = 4;
private static final int NUM_PASSPOINT_PROVIDER_INSTALLATION = 5;
private static final int NUM_PASSPOINT_PROVIDER_INSTALL_SUCCESS = 4;
@@ -519,11 +527,35 @@ public class WifiMetricsTest {
for (int i = 0; i < NUM_WIFICOND_CRASHES; i++) {
mWifiMetrics.incrementNumWificondCrashes();
}
+ for (int i = 0; i < NUM_SUPPLICANT_CRASHES; i++) {
+ mWifiMetrics.incrementNumSupplicantCrashes();
+ }
+ for (int i = 0; i < NUM_HOSTAPD_CRASHES; i++) {
+ mWifiMetrics.incrementNumHostapdCrashes();
+ }
for (int i = 0; i < NUM_WIFI_ON_FAILURE_DUE_TO_HAL; i++) {
- mWifiMetrics.incrementNumWifiOnFailureDueToHal();
+ mWifiMetrics.incrementNumSetupClientInterfaceFailureDueToHal();
}
for (int i = 0; i < NUM_WIFI_ON_FAILURE_DUE_TO_WIFICOND; i++) {
- mWifiMetrics.incrementNumWifiOnFailureDueToWificond();
+ mWifiMetrics.incrementNumSetupClientInterfaceFailureDueToWificond();
+ }
+ for (int i = 0; i < NUM_WIFI_ON_FAILURE_DUE_TO_SUPPLICANT; i++) {
+ mWifiMetrics.incrementNumSetupClientInterfaceFailureDueToSupplicant();
+ }
+ for (int i = 0; i < NUM_SOFTAP_ON_FAILURE_DUE_TO_HAL; i++) {
+ mWifiMetrics.incrementNumSetupSoftApInterfaceFailureDueToHal();
+ }
+ for (int i = 0; i < NUM_SOFTAP_ON_FAILURE_DUE_TO_WIFICOND; i++) {
+ mWifiMetrics.incrementNumSetupSoftApInterfaceFailureDueToWificond();
+ }
+ for (int i = 0; i < NUM_SOFTAP_ON_FAILURE_DUE_TO_HOSTAPD; i++) {
+ mWifiMetrics.incrementNumSetupSoftApInterfaceFailureDueToHostapd();
+ }
+ for (int i = 0; i < NUM_SOFTAP_INTERFACE_DOWN; i++) {
+ mWifiMetrics.incrementNumSoftApInterfaceDown();
+ }
+ for (int i = 0; i < NUM_CLIENT_INTERFACE_DOWN; i++) {
+ mWifiMetrics.incrementNumClientInterfaceDown();
}
for (int i = 0; i < NUM_PASSPOINT_PROVIDER_INSTALLATION; i++) {
mWifiMetrics.incrementNumPasspointProviderInstallation();
@@ -793,9 +825,22 @@ public class WifiMetricsTest {
mDecodedProto.softApReturnCode[2].count);
assertEquals(NUM_HAL_CRASHES, mDecodedProto.numHalCrashes);
assertEquals(NUM_WIFICOND_CRASHES, mDecodedProto.numWificondCrashes);
- assertEquals(NUM_WIFI_ON_FAILURE_DUE_TO_HAL, mDecodedProto.numWifiOnFailureDueToHal);
+ assertEquals(NUM_SUPPLICANT_CRASHES, mDecodedProto.numSupplicantCrashes);
+ assertEquals(NUM_HOSTAPD_CRASHES, mDecodedProto.numHostapdCrashes);
+ assertEquals(NUM_WIFI_ON_FAILURE_DUE_TO_HAL,
+ mDecodedProto.numSetupClientInterfaceFailureDueToHal);
assertEquals(NUM_WIFI_ON_FAILURE_DUE_TO_WIFICOND,
- mDecodedProto.numWifiOnFailureDueToWificond);
+ mDecodedProto.numSetupClientInterfaceFailureDueToWificond);
+ assertEquals(NUM_WIFI_ON_FAILURE_DUE_TO_SUPPLICANT,
+ mDecodedProto.numSetupClientInterfaceFailureDueToSupplicant);
+ assertEquals(NUM_SOFTAP_ON_FAILURE_DUE_TO_HAL,
+ mDecodedProto.numSetupSoftApInterfaceFailureDueToHal);
+ assertEquals(NUM_SOFTAP_ON_FAILURE_DUE_TO_WIFICOND,
+ mDecodedProto.numSetupSoftApInterfaceFailureDueToWificond);
+ assertEquals(NUM_SOFTAP_ON_FAILURE_DUE_TO_HOSTAPD,
+ mDecodedProto.numSetupSoftApInterfaceFailureDueToHostapd);
+ assertEquals(NUM_CLIENT_INTERFACE_DOWN, mDecodedProto.numClientInterfaceDown);
+ assertEquals(NUM_SOFTAP_INTERFACE_DOWN, mDecodedProto.numSoftApInterfaceDown);
assertEquals(NUM_PASSPOINT_PROVIDERS, mDecodedProto.numPasspointProviders);
assertEquals(NUM_PASSPOINT_PROVIDER_INSTALLATION,
mDecodedProto.numPasspointProviderInstallation);
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNativeInterfaceManagementTest.java b/tests/wifitests/src/com/android/server/wifi/WifiNativeInterfaceManagementTest.java
index 16f494f79..4c86b3caa 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiNativeInterfaceManagementTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiNativeInterfaceManagementTest.java
@@ -502,6 +502,27 @@ public class WifiNativeInterfaceManagementTest {
*/
@Test
public void testSetupClientInterfaceAndTriggerInterfaceUpFollowedByDown() throws Exception {
+ executeAndValidateSetupClientInterface(
+ false, false, IFACE_NAME_0, mIfaceCallback0, mIfaceDestroyedListenerCaptor0,
+ mNetworkObserverCaptor0);
+
+ mNetworkObserverCaptor0.getValue().interfaceStatusChanged(IFACE_NAME_0, true);
+ mInOrder.verify(mIfaceCallback0).onUp(IFACE_NAME_0);
+
+ mNetworkObserverCaptor0.getValue().interfaceStatusChanged(IFACE_NAME_0, false);
+ mInOrder.verify(mIfaceCallback0).onDown(IFACE_NAME_0);
+ mInOrder.verify(mWifiMetrics).incrementNumClientInterfaceDown();
+
+ verifyNoMoreInteractions(mWifiVendorHal, mWificondControl, mSupplicantStaIfaceHal,
+ mHostapdHal, mNwManagementService, mIfaceCallback0, mIfaceCallback1, mWifiMetrics);
+ }
+
+ /**
+ * Verifies the setup of a softap interface and trigger an interface up event, followed by a
+ * down event.
+ */
+ @Test
+ public void testSetupSoftApInterfaceAndTriggerInterfaceUpFollowedByDown() throws Exception {
executeAndValidateSetupSoftApInterface(
false, false, IFACE_NAME_0, mIfaceCallback0, mIfaceDestroyedListenerCaptor0,
mNetworkObserverCaptor0);
@@ -511,6 +532,7 @@ public class WifiNativeInterfaceManagementTest {
mNetworkObserverCaptor0.getValue().interfaceStatusChanged(IFACE_NAME_0, false);
mInOrder.verify(mIfaceCallback0).onDown(IFACE_NAME_0);
+ mInOrder.verify(mWifiMetrics).incrementNumSoftApInterfaceDown();
verifyNoMoreInteractions(mWifiVendorHal, mWificondControl, mSupplicantStaIfaceHal,
mHostapdHal, mNwManagementService, mIfaceCallback0, mIfaceCallback1, mWifiMetrics);
@@ -706,7 +728,7 @@ public class WifiNativeInterfaceManagementTest {
mInOrder.verify(mWifiVendorHal).isVendorHalSupported();
mInOrder.verify(mWifiVendorHal).startVendorHal();
- mInOrder.verify(mWifiMetrics).incrementNumWifiOnFailureDueToHal();
+ mInOrder.verify(mWifiMetrics).incrementNumSetupClientInterfaceFailureDueToHal();
// To test if the failure is handled cleanly, invoke teardown and ensure that
// none of the mocks are used because the iface does not exist in the internal
@@ -728,7 +750,7 @@ public class WifiNativeInterfaceManagementTest {
mInOrder.verify(mWifiVendorHal).isVendorHalSupported();
mInOrder.verify(mWifiVendorHal).startVendorHal();
mInOrder.verify(mWificondControl).enableSupplicant();
- mInOrder.verify(mWifiMetrics).incrementNumWifiOnFailureDueToSupplicant();
+ mInOrder.verify(mWifiMetrics).incrementNumSetupClientInterfaceFailureDueToSupplicant();
// To test if the failure is handled cleanly, invoke teardown and ensure that
// none of the mocks are used because the iface does not exist in the internal
@@ -756,7 +778,7 @@ public class WifiNativeInterfaceManagementTest {
mInOrder.verify(mSupplicantStaIfaceHal).registerDeathHandler(any());
mInOrder.verify(mWifiVendorHal).isVendorHalSupported();
mInOrder.verify(mWifiVendorHal).createStaIface(eq(false), any());
- mInOrder.verify(mWifiMetrics).incrementNumWifiOnFailureDueToHal();
+ mInOrder.verify(mWifiMetrics).incrementNumSetupClientInterfaceFailureDueToHal();
// To test if the failure is handled cleanly, invoke teardown and ensure that
// none of the mocks are used because the iface does not exist in the internal
@@ -789,7 +811,7 @@ public class WifiNativeInterfaceManagementTest {
mInOrder.verify(mWificondControl).setupInterfaceForClientMode(any());
mInOrder.verify(mWifiVendorHal).isVendorHalSupported();
mInOrder.verify(mWifiVendorHal).removeStaIface(any());
- mInOrder.verify(mWifiMetrics).incrementNumWifiOnFailureDueToWificond();
+ mInOrder.verify(mWifiMetrics).incrementNumSetupClientInterfaceFailureDueToWificond();
// Trigger the HAL interface destroyed callback to verify the whole removal sequence.
mIfaceDestroyedListenerCaptor0.getValue().onDestroyed(IFACE_NAME_0);
@@ -827,7 +849,7 @@ public class WifiNativeInterfaceManagementTest {
mInOrder.verify(mSupplicantStaIfaceHal).setupIface(any());
mInOrder.verify(mWifiVendorHal).isVendorHalSupported();
mInOrder.verify(mWifiVendorHal).removeStaIface(any());
- mInOrder.verify(mWifiMetrics).incrementNumWifiOnFailureDueToSupplicant();
+ mInOrder.verify(mWifiMetrics).incrementNumSetupClientInterfaceFailureDueToSupplicant();
// Trigger the HAL interface destroyed callback to verify the whole removal sequence.
mIfaceDestroyedListenerCaptor0.getValue().onDestroyed(IFACE_NAME_0);
@@ -891,7 +913,7 @@ public class WifiNativeInterfaceManagementTest {
mInOrder.verify(mWifiVendorHal).isVendorHalSupported();
mInOrder.verify(mWifiVendorHal).startVendorHal();
- mInOrder.verify(mWifiMetrics).incrementNumWifiOnFailureDueToHal();
+ mInOrder.verify(mWifiMetrics).incrementNumSetupSoftApInterfaceFailureDueToHal();
// To test if the failure is handled cleanly, invoke teardown and ensure that
// none of the mocks are used because the iface does not exist in the internal
@@ -914,7 +936,7 @@ public class WifiNativeInterfaceManagementTest {
mInOrder.verify(mWifiVendorHal).startVendorHal();
mInOrder.verify(mWifiVendorHal).isVendorHalSupported();
mInOrder.verify(mWifiVendorHal).createApIface(any());
- mInOrder.verify(mWifiMetrics).incrementNumWifiOnFailureDueToHal();
+ mInOrder.verify(mWifiMetrics).incrementNumSetupSoftApInterfaceFailureDueToHal();
// To test if the failure is handled cleanly, invoke teardown and ensure that
// none of the mocks are used because the iface does not exist in the internal
@@ -929,7 +951,7 @@ public class WifiNativeInterfaceManagementTest {
* Verifies failure handling in setup of a softAp interface.
*/
@Test
- public void testSetupSoftApInterfaceFailureInWificondSetupInterfaceForClientMode()
+ public void testSetupSoftApInterfaceFailureInWificondSetupInterfaceForSoftapMode()
throws Exception {
when(mWificondControl.setupInterfaceForSoftApMode(any())).thenReturn(null);
assertNull(mWifiNative.setupInterfaceForSoftApMode(mIfaceCallback0));
@@ -941,7 +963,7 @@ public class WifiNativeInterfaceManagementTest {
mInOrder.verify(mWificondControl).setupInterfaceForSoftApMode(any());
mInOrder.verify(mWifiVendorHal).isVendorHalSupported();
mInOrder.verify(mWifiVendorHal).removeApIface(any());
- mInOrder.verify(mWifiMetrics).incrementNumWifiOnFailureDueToWificond();
+ mInOrder.verify(mWifiMetrics).incrementNumSetupSoftApInterfaceFailureDueToWificond();
// Trigger the HAL interface destroyed callback to verify the whole removal sequence.
mIfaceDestroyedListenerCaptor0.getValue().onDestroyed(IFACE_NAME_0);
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNativeTest.java b/tests/wifitests/src/com/android/server/wifi/WifiNativeTest.java
index bc383aee0..ee3b425ad 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiNativeTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiNativeTest.java
@@ -20,6 +20,7 @@ import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -572,4 +573,16 @@ public class WifiNativeTest {
mWifiNative.setMacAddress(WIFI_IFACE_NAME, TEST_MAC_ADDRESS);
verify(mWificondControl).setMacAddress(WIFI_IFACE_NAME, TEST_MAC_ADDRESS);
}
+
+ /**
+ * Test to check if the softap start failure metrics are incremented correctly.
+ */
+ @Test
+ public void testStartSoftApFailureIncrementsMetrics() throws Exception {
+ when(mWificondControl.startHostapd(any(), any())).thenReturn(false);
+ WifiNative.SoftApListener mockListener = mock(WifiNative.SoftApListener.class);
+ mWifiNative.startSoftAp(WIFI_IFACE_NAME, new WifiConfiguration(), mockListener);
+ verify(mWificondControl).startHostapd(WIFI_IFACE_NAME, mockListener);
+ verify(mWifiMetrics).incrementNumSetupSoftApInterfaceFailureDueToHostapd();
+ }
}