summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMichael Plass <mplass@google.com>2018-07-18 23:58:20 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-07-18 23:58:20 +0000
commit6491bec4ea731c4dffac64219c9f95b80738fd19 (patch)
tree6385019e0a66155b76c0b3b4f71897ad4db8f2a4 /tests
parent9c021ee53830136159541628d710444f6159f240 (diff)
parent5cc414dd68f2b3ae18a3c56d9e9ac4f5d217f624 (diff)
Merge "Unit test WifiVendorHal getRoamingCapabilities"
Diffstat (limited to 'tests')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiVendorHalTest.java83
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