summaryrefslogtreecommitdiffstats
path: root/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
diff options
context:
space:
mode:
authorRandy Pan <zpan@google.com>2017-02-24 15:08:35 -0800
committerRandy Pan <zpan@google.com>2017-03-21 16:11:22 -0700
commit167b90b5e002698378728a54a417a08c317d29dc (patch)
tree3a2fbe45da70fae0e0e3f8d16de0e3d4057473b3 /tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
parent168fba718720b54cf0a88cfad7f96948925fb1e3 (diff)
downloadandroid_frameworks_opt_net_wifi-167b90b5e002698378728a54a417a08c317d29dc.tar.gz
android_frameworks_opt_net_wifi-167b90b5e002698378728a54a417a08c317d29dc.tar.bz2
android_frameworks_opt_net_wifi-167b90b5e002698378728a54a417a08c317d29dc.zip
Move BSSID blacklist to WifiConnectivityManager
Now the BSSID blacklist is managed by WifiConnectivityManager and passed to WifiNetworkSelector for scan results filtration. Bug: 35642214 Test: runtests.sh and manual tests Change-Id: I7afb5e66be471f3582075adb687a7d85ba49a80b
Diffstat (limited to 'tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java89
1 files changed, 33 insertions, 56 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
index 4a38f402f..73469a386 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
@@ -41,6 +41,7 @@ import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import java.util.HashSet;
import java.util.List;
/**
@@ -176,8 +177,9 @@ public class WifiNetworkSelectorTest {
WifiNetworkSelectorTestUtil.setupScanDetailsAndConfigStore(ssids, bssids,
freqs, caps, levels, securities, mWifiConfigManager, mClock);
List<ScanDetail> scanDetails = scanDetailsAndConfigs.getScanDetails();
+ HashSet<String> blacklist = new HashSet<String>();
WifiConfiguration candidate = mWifiNetworkSelector.selectNetwork(scanDetails,
- mWifiInfo, false, true, false);
+ blacklist, mWifiInfo, false, true, false);
assertEquals("Expect null configuration", null, candidate);
}
@@ -204,8 +206,9 @@ public class WifiNetworkSelectorTest {
WifiNetworkSelectorTestUtil.setupScanDetailsAndConfigStore(ssids, bssids,
freqs, caps, levels, securities, mWifiConfigManager, mClock);
List<ScanDetail> scanDetails = scanDetailsAndConfigs.getScanDetails();
+ HashSet<String> blacklist = new HashSet<String>();
WifiConfiguration candidate = mWifiNetworkSelector.selectNetwork(scanDetails,
- mWifiInfo, false, true, false);
+ blacklist, mWifiInfo, false, true, false);
assertEquals("Expect null configuration", null, candidate);
}
@@ -233,15 +236,16 @@ public class WifiNetworkSelectorTest {
WifiNetworkSelectorTestUtil.setupScanDetailsAndConfigStore(ssids, bssids,
freqs, caps, levels, securities, mWifiConfigManager, mClock);
List<ScanDetail> scanDetails = scanDetailsAndConfigs.getScanDetails();
+ HashSet<String> blacklist = new HashSet<String>();
WifiConfiguration candidate = mWifiNetworkSelector.selectNetwork(scanDetails,
- mWifiInfo, false, true, false);
+ blacklist, mWifiInfo, false, true, false);
when(mClock.getElapsedSinceBootMillis()).thenReturn(SystemClock.elapsedRealtime()
+ WifiNetworkSelector.MINIMUM_NETWORK_SELECTION_INTERVAL_MS - 2000);
// Do another network selection with WSM in CONNECTED state.
candidate = mWifiNetworkSelector.selectNetwork(scanDetails,
- mWifiInfo, true, false, false);
+ blacklist, mWifiInfo, true, false, false);
assertEquals("Expect null configuration", null, candidate);
}
@@ -271,8 +275,9 @@ public class WifiNetworkSelectorTest {
freqs, caps, levels, securities, mWifiConfigManager, mClock);
List<ScanDetail> scanDetails = scanDetailsAndConfigs.getScanDetails();
WifiConfiguration[] savedConfigs = scanDetailsAndConfigs.getWifiConfigs();
+ HashSet<String> blacklist = new HashSet<String>();
WifiConfiguration candidate = mWifiNetworkSelector.selectNetwork(scanDetails,
- mWifiInfo, false, true, false);
+ blacklist, mWifiInfo, false, true, false);
WifiConfigurationTestUtil.assertConfigurationEqual(savedConfigs[0], candidate);
when(mClock.getElapsedSinceBootMillis()).thenReturn(SystemClock.elapsedRealtime()
@@ -280,7 +285,7 @@ public class WifiNetworkSelectorTest {
// Do another network selection with WSM in DISCONNECTED state.
candidate = mWifiNetworkSelector.selectNetwork(scanDetails,
- mWifiInfo, false, true, false);
+ blacklist, mWifiInfo, false, true, false);
ScanResult chosenScanResult = scanDetails.get(0).getScanResult();
WifiConfigurationTestUtil.assertConfigurationEqual(savedConfigs[0], candidate);
@@ -310,9 +315,10 @@ public class WifiNetworkSelectorTest {
WifiNetworkSelectorTestUtil.setupScanDetailsAndConfigStore(ssids, bssids,
freqs, caps, levels, securities, mWifiConfigManager, mClock);
List<ScanDetail> scanDetails = scanDetailsAndConfigs.getScanDetails();
+ HashSet<String> blacklist = new HashSet<String>();
// connect to test1
- mWifiNetworkSelector.selectNetwork(scanDetails, mWifiInfo, false, true, false);
+ mWifiNetworkSelector.selectNetwork(scanDetails, blacklist, mWifiInfo, false, true, false);
when(mWifiInfo.getNetworkId()).thenReturn(0);
when(mWifiInfo.getBSSID()).thenReturn(bssids[0]);
when(mWifiInfo.is24GHz()).thenReturn(false);
@@ -327,7 +333,7 @@ public class WifiNetworkSelectorTest {
scanDetails = scanDetailsAndConfigs.getScanDetails();
WifiConfiguration candidate = mWifiNetworkSelector.selectNetwork(scanDetails,
- mWifiInfo, true, false, false);
+ blacklist, mWifiInfo, true, false, false);
assertEquals("Expect null configuration", null, candidate);
}
@@ -354,10 +360,11 @@ public class WifiNetworkSelectorTest {
WifiNetworkSelectorTestUtil.setupScanDetailsAndConfigStore(ssids, bssids,
freqs, caps, levels, securities, mWifiConfigManager, mClock);
List<ScanDetail> scanDetails = scanDetailsAndConfigs.getScanDetails();
+ HashSet<String> blacklist = new HashSet<String>();
WifiConfiguration[] savedConfigs = scanDetailsAndConfigs.getWifiConfigs();
// connect to test1
- mWifiNetworkSelector.selectNetwork(scanDetails, mWifiInfo, false, true, false);
+ mWifiNetworkSelector.selectNetwork(scanDetails, blacklist, mWifiInfo, false, true, false);
when(mWifiInfo.getNetworkId()).thenReturn(0);
when(mWifiInfo.getBSSID()).thenReturn(bssids[0]);
when(mWifiInfo.is24GHz()).thenReturn(true);
@@ -367,7 +374,7 @@ public class WifiNetworkSelectorTest {
// Do another network selection.
WifiConfiguration candidate = mWifiNetworkSelector.selectNetwork(scanDetails,
- mWifiInfo, true, false, false);
+ blacklist, mWifiInfo, true, false, false);
ScanResult chosenScanResult = scanDetails.get(0).getScanResult();
WifiConfigurationTestUtil.assertConfigurationEqual(savedConfigs[0], candidate);
@@ -399,10 +406,11 @@ public class WifiNetworkSelectorTest {
WifiNetworkSelectorTestUtil.setupScanDetailsAndConfigStore(ssids, bssids,
freqs, caps, levels, securities, mWifiConfigManager, mClock);
List<ScanDetail> scanDetails = scanDetailsAndConfigs.getScanDetails();
+ HashSet<String> blacklist = new HashSet<String>();
WifiConfiguration[] savedConfigs = scanDetailsAndConfigs.getWifiConfigs();
// connect to test1
- mWifiNetworkSelector.selectNetwork(scanDetails, mWifiInfo, false, true, false);
+ mWifiNetworkSelector.selectNetwork(scanDetails, blacklist, mWifiInfo, false, true, false);
when(mWifiInfo.getNetworkId()).thenReturn(0);
when(mWifiInfo.getBSSID()).thenReturn(bssids[0]);
when(mWifiInfo.is24GHz()).thenReturn(false);
@@ -413,7 +421,7 @@ public class WifiNetworkSelectorTest {
// Do another network selection.
WifiConfiguration candidate = mWifiNetworkSelector.selectNetwork(scanDetails,
- mWifiInfo, true, false, false);
+ blacklist, mWifiInfo, true, false, false);
ScanResult chosenScanResult = scanDetails.get(0).getScanResult();
WifiConfigurationTestUtil.assertConfigurationEqual(savedConfigs[0], candidate);
@@ -444,10 +452,11 @@ public class WifiNetworkSelectorTest {
WifiNetworkSelectorTestUtil.setupScanDetailsAndConfigStore(ssids, bssids,
freqs, caps, levels, securities, mWifiConfigManager, mClock);
List<ScanDetail> scanDetails = scanDetailsAndConfigs.getScanDetails();
+ HashSet<String> blacklist = new HashSet<String>();
WifiConfiguration[] savedConfigs = scanDetailsAndConfigs.getWifiConfigs();
// connect to test1
- mWifiNetworkSelector.selectNetwork(scanDetails, mWifiInfo, false, true, false);
+ mWifiNetworkSelector.selectNetwork(scanDetails, blacklist, mWifiInfo, false, true, false);
when(mWifiInfo.getNetworkId()).thenReturn(0);
when(mWifiInfo.getBSSID()).thenReturn(bssids[0]);
when(mWifiInfo.is24GHz()).thenReturn(false);
@@ -459,7 +468,7 @@ public class WifiNetworkSelectorTest {
// Do another network selection.
WifiConfiguration candidate = mWifiNetworkSelector.selectNetwork(scanDetails,
- mWifiInfo, true, false, false);
+ blacklist, mWifiInfo, true, false, false);
ScanResult chosenScanResult = scanDetails.get(0).getScanResult();
WifiConfigurationTestUtil.assertConfigurationEqual(savedConfigs[0], candidate);
@@ -488,15 +497,11 @@ public class WifiNetworkSelectorTest {
WifiNetworkSelectorTestUtil.setupScanDetailsAndConfigStore(ssids, bssids,
freqs, caps, levels, securities, mWifiConfigManager, mClock);
List<ScanDetail> scanDetails = scanDetailsAndConfigs.getScanDetails();
-
- // Disable this network for BSSID_BLACKLIST_THRESHOLD times so it gets
- // blacklisted by WNS.
- for (int i = 0; i < WifiNetworkSelector.BSSID_BLACKLIST_THRESHOLD; i++) {
- mWifiNetworkSelector.enableBssidForNetworkSelection(bssids[0], false, 1);
- }
+ HashSet<String> blacklist = new HashSet<String>();
+ blacklist.add(bssids[0]);
WifiConfiguration candidate = mWifiNetworkSelector.selectNetwork(scanDetails,
- mWifiInfo, false, true, false);
+ blacklist, mWifiInfo, false, true, false);
assertEquals("Expect null configuration", null, candidate);
}
@@ -524,8 +529,9 @@ public class WifiNetworkSelectorTest {
WifiNetworkSelectorTestUtil.setupScanDetailsAndConfigStore(ssids, bssids,
freqs, caps, levels, securities, mWifiConfigManager, mClock);
List<ScanDetail> scanDetails = scanDetailsAndConfigs.getScanDetails();
+ HashSet<String> blacklist = new HashSet<String>();
WifiConfiguration candidate = mWifiNetworkSelector.selectNetwork(scanDetails,
- mWifiInfo, false, true, false);
+ blacklist, mWifiInfo, false, true, false);
when(mWifiInfo.getNetworkId()).thenReturn(0);
when(mWifiInfo.getBSSID()).thenReturn(bssids[0]);
@@ -543,7 +549,8 @@ public class WifiNetworkSelectorTest {
int[] levelsNew = {mThresholdMinimumRssi2G + 40};
scanDetails = WifiNetworkSelectorTestUtil.buildScanDetails(ssidsNew, bssidsNew,
freqsNew, capsNew, levelsNew, mClock);
- candidate = mWifiNetworkSelector.selectNetwork(scanDetails, mWifiInfo, true, false, false);
+ candidate = mWifiNetworkSelector.selectNetwork(scanDetails, blacklist, mWifiInfo,
+ true, false, false);
// The second network selection is skipped since current connected network is
// missing from the scan results.
@@ -618,6 +625,7 @@ public class WifiNetworkSelectorTest {
WifiNetworkSelectorTestUtil.setupScanDetailsAndConfigStore(ssids, bssids,
freqs, caps, levels, securities, mWifiConfigManager, mClock);
List<ScanDetail> scanDetails = scanDetailsAndConfigs.getScanDetails();
+ HashSet<String> blacklist = new HashSet<String>();
// DummyEvaluator always selects the first network in the list.
WifiConfiguration networkSelectorChoice = scanDetailsAndConfigs.getWifiConfigs()[0];
@@ -630,7 +638,7 @@ public class WifiNetworkSelectorTest {
// With no user choice set, networkSelectorChoice should be chosen.
WifiConfiguration candidate = mWifiNetworkSelector.selectNetwork(scanDetails,
- mWifiInfo, false, true, false);
+ blacklist, mWifiInfo, false, true, false);
WifiConfigurationTestUtil.assertConfigurationEqual(networkSelectorChoice, candidate);
@@ -641,39 +649,8 @@ public class WifiNetworkSelectorTest {
// After user connect choice is set, userChoice should override networkSelectorChoice.
candidate = mWifiNetworkSelector.selectNetwork(scanDetails,
- mWifiInfo, false, true, false);
+ blacklist, mWifiInfo, false, true, false);
WifiConfigurationTestUtil.assertConfigurationEqual(userChoice, candidate);
}
-
- /**
- * Wifi network selector blacklists a BSSID immediately if it's unable to handle
- * new stations.
- *
- * Expected behavior: no network recommended by Network Selector
- */
- @Test
- public void blacklistNetworkImmediatelyIfApHasNoCapacityForNewStation() {
- String[] ssids = {"\"test1\""};
- String[] bssids = {"6c:f3:7f:ae:99:f3"};
- int[] freqs = {2437};
- String[] caps = {"[WPA2-EAP-CCMP][ESS]"};
- int[] levels = {mThresholdMinimumRssi2G + 20};
- int[] securities = {SECURITY_PSK};
-
- // Disable test1 with reason code indicating it is unable to handle new stations.
- mWifiNetworkSelector.enableBssidForNetworkSelection(bssids[0], false,
- WifiNetworkSelector.REASON_CODE_AP_UNABLE_TO_HANDLE_NEW_STA);
-
- // Make a network selection with test1 in the scan results.
- ScanDetailsAndWifiConfigs scanDetailsAndConfigs =
- WifiNetworkSelectorTestUtil.setupScanDetailsAndConfigStore(ssids, bssids,
- freqs, caps, levels, securities, mWifiConfigManager, mClock);
- List<ScanDetail> scanDetails = scanDetailsAndConfigs.getScanDetails();
- WifiConfiguration candidate = mWifiNetworkSelector.selectNetwork(scanDetails,
- mWifiInfo, false, true, false);
-
- // No network recommended by WNS as test1 is blacklisted.
- assertEquals("Expect null configuration", null, candidate);
- }
}