diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2018-03-30 00:28:15 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-03-30 00:28:15 +0000 |
commit | fe62d25331c3d4b25055f9a519ecd039f253f476 (patch) | |
tree | cdf194ae3208f9f9303d5e4c14469b589bfa9b1f /tests | |
parent | 9bb500a762043adce2fafe06ea3deddd7e8b5889 (diff) | |
parent | a79e9c8ea6461b65cef7a8542af088b8f2945ea2 (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')
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(); + } } |