From 32a2c670100b84fb049f55ad5a8a300c60a48aa5 Mon Sep 17 00:00:00 2001 From: Randy Pan Date: Wed, 31 May 2017 11:17:53 -0700 Subject: SavedNetworkEvaluator: ignore ephemeral networks Ephemeral networks should be evaluted by ScoredNetworkEvaluator. Otherwise, an ephemeral network might be chosen over a saved network. Plus, the SaveNetworkEvaluator's scoring algorithm is different from the ScoredNetworkEvalutor, so the result coming out from these two evalutors can be very different. Bug: 62197617 Test: frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: I3237b4ca50dd6964dd8678011e6a9940c0ca1d0b --- .../server/wifi/SavedNetworkEvaluatorTest.java | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'tests') diff --git a/tests/wifitests/src/com/android/server/wifi/SavedNetworkEvaluatorTest.java b/tests/wifitests/src/com/android/server/wifi/SavedNetworkEvaluatorTest.java index 78a3a3d0f..7f6360408 100644 --- a/tests/wifitests/src/com/android/server/wifi/SavedNetworkEvaluatorTest.java +++ b/tests/wifitests/src/com/android/server/wifi/SavedNetworkEvaluatorTest.java @@ -171,6 +171,33 @@ public class SavedNetworkEvaluatorTest { assertNull(candidate); } + /** + * Do not evaluate networks that {@link WifiConfiguration#isEphemeral}. + */ + @Test + public void ignoreEphemeralNetworks() { + String[] ssids = {"\"test1\"", "\"test2\""}; + String[] bssids = {"6c:f3:7f:ae:8c:f3", "6c:f3:7f:ae:8c:f4"}; + int[] freqs = {2470, 2437}; + String[] caps = {"[ESS]", "[ESS]"}; + int[] levels = {mThresholdQualifiedRssi2G + 8, mThresholdQualifiedRssi2G + 10}; + int[] securities = {SECURITY_NONE, SECURITY_NONE}; + + ScanDetailsAndWifiConfigs scanDetailsAndConfigs = + WifiNetworkSelectorTestUtil.setupScanDetailsAndConfigStore(ssids, bssids, + freqs, caps, levels, securities, mWifiConfigManager, mClock); + List scanDetails = scanDetailsAndConfigs.getScanDetails(); + WifiConfiguration[] savedConfigs = scanDetailsAndConfigs.getWifiConfigs(); + for (WifiConfiguration wifiConfiguration : savedConfigs) { + wifiConfiguration.ephemeral = true; + } + + WifiConfiguration candidate = mSavedNetworkEvaluator.evaluateNetworks(scanDetails, + null, null, true, false, null); + + assertNull(candidate); + } + /** * Set the candidate {@link ScanResult} for all {@link WifiConfiguration}s regardless of * whether they are secure saved, open saved, or {@link WifiConfiguration#useExternalScores}. -- cgit v1.2.3