diff options
author | Michael Plass <mplass@google.com> | 2018-07-18 23:58:20 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-07-18 23:58:20 +0000 |
commit | 6491bec4ea731c4dffac64219c9f95b80738fd19 (patch) | |
tree | 6385019e0a66155b76c0b3b4f71897ad4db8f2a4 /tests | |
parent | 9c021ee53830136159541628d710444f6159f240 (diff) | |
parent | 5cc414dd68f2b3ae18a3c56d9e9ac4f5d217f624 (diff) |
Merge "Unit test WifiVendorHal getRoamingCapabilities"
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiVendorHalTest.java | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiVendorHalTest.java b/tests/wifitests/src/com/android/server/wifi/WifiVendorHalTest.java index fc030b83c..113f339f6 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiVendorHalTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiVendorHalTest.java @@ -62,6 +62,7 @@ import android.hardware.wifi.V1_0.StaBackgroundScanParameters; import android.hardware.wifi.V1_0.StaLinkLayerIfacePacketStats; import android.hardware.wifi.V1_0.StaLinkLayerRadioStats; import android.hardware.wifi.V1_0.StaLinkLayerStats; +import android.hardware.wifi.V1_0.StaRoamingCapabilities; import android.hardware.wifi.V1_0.StaScanData; import android.hardware.wifi.V1_0.StaScanDataFlagMask; import android.hardware.wifi.V1_0.StaScanResult; @@ -1642,6 +1643,88 @@ public class WifiVendorHalTest { } /** + * Helper class for mocking getRoamingCapabilities callback + */ + private class GetRoamingCapabilitiesAnswer extends AnswerWithArguments { + private final WifiStatus mStatus; + private final StaRoamingCapabilities mCaps; + + GetRoamingCapabilitiesAnswer(WifiStatus status, StaRoamingCapabilities caps) { + mStatus = status; + mCaps = caps; + } + + public void answer(IWifiStaIface.getRoamingCapabilitiesCallback cb) { + cb.onValues(mStatus, mCaps); + } + } + + /** + * Tests retrieval of firmware roaming capabilities + */ + @Test + public void testFirmwareRoamingCapabilityRetrieval() throws Exception { + WifiNative.RoamingCapabilities roamingCapabilities = new WifiNative.RoamingCapabilities(); + assertTrue(mWifiVendorHal.startVendorHalSta()); + for (int i = 0; i < 4; i++) { + int blacklistSize = i + 10; + int whitelistSize = i * 3; + StaRoamingCapabilities caps = new StaRoamingCapabilities(); + caps.maxBlacklistSize = blacklistSize; + caps.maxWhitelistSize = whitelistSize; + doAnswer(new GetRoamingCapabilitiesAnswer(mWifiStatusSuccess, caps)) + .when(mIWifiStaIface).getRoamingCapabilities( + any(IWifiStaIface.getRoamingCapabilitiesCallback.class)); + assertTrue(mWifiVendorHal.getRoamingCapabilities(TEST_IFACE_NAME, roamingCapabilities)); + assertEquals(blacklistSize, roamingCapabilities.maxBlacklistSize); + assertEquals(whitelistSize, roamingCapabilities.maxWhitelistSize); + } + } + + /** + * Tests unsuccessful retrieval of firmware roaming capabilities + */ + @Test + public void testUnsuccessfulFirmwareRoamingCapabilityRetrieval() throws Exception { + assertTrue(mWifiVendorHal.startVendorHalSta()); + int blacklistSize = 42; + int whitelistSize = 17; + WifiNative.RoamingCapabilities roamingCapabilities = new WifiNative.RoamingCapabilities(); + roamingCapabilities.maxBlacklistSize = blacklistSize; + roamingCapabilities.maxWhitelistSize = whitelistSize; + StaRoamingCapabilities caps = new StaRoamingCapabilities(); + caps.maxBlacklistSize = blacklistSize + 1; // different value here + caps.maxWhitelistSize = whitelistSize + 1; + + // hal returns a failure status + doAnswer(new GetRoamingCapabilitiesAnswer(mWifiStatusFailure, null)) + .when(mIWifiStaIface).getRoamingCapabilities( + any(IWifiStaIface.getRoamingCapabilitiesCallback.class)); + assertFalse(mWifiVendorHal.getRoamingCapabilities(TEST_IFACE_NAME, roamingCapabilities)); + // in failure cases, result container should not be changed + assertEquals(blacklistSize, roamingCapabilities.maxBlacklistSize); + assertEquals(whitelistSize, roamingCapabilities.maxWhitelistSize); + + // hal returns failure status, but supplies caps anyway + doAnswer(new GetRoamingCapabilitiesAnswer(mWifiStatusFailure, caps)) + .when(mIWifiStaIface).getRoamingCapabilities( + any(IWifiStaIface.getRoamingCapabilitiesCallback.class)); + assertFalse(mWifiVendorHal.getRoamingCapabilities(TEST_IFACE_NAME, roamingCapabilities)); + // in failure cases, result container should not be changed + assertEquals(blacklistSize, roamingCapabilities.maxBlacklistSize); + assertEquals(whitelistSize, roamingCapabilities.maxWhitelistSize); + + // lost connection + doThrow(new RemoteException()) + .when(mIWifiStaIface).getRoamingCapabilities( + any(IWifiStaIface.getRoamingCapabilitiesCallback.class)); + assertFalse(mWifiVendorHal.getRoamingCapabilities(TEST_IFACE_NAME, roamingCapabilities)); + // in failure cases, result container should not be changed + assertEquals(blacklistSize, roamingCapabilities.maxBlacklistSize); + assertEquals(whitelistSize, roamingCapabilities.maxWhitelistSize); + } + + /** * Tests the retrieval of wlan wake reason stats. */ @Test |