summaryrefslogtreecommitdiffstats
path: root/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTestUtil.java
diff options
context:
space:
mode:
authorMichael Plass <mplass@google.com>2019-02-15 17:42:42 -0800
committerMichael Plass <mplass@google.com>2019-02-20 12:03:57 -0800
commit855dfe2183f743781f12c9dc87e2f3ef958b91f3 (patch)
tree57a1364b4d11a5f4c5f631fa0147cae747a45b7d /tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTestUtil.java
parentc4edf29909e8e3fec889b4db9d4d253c5ca715c6 (diff)
downloadandroid_frameworks_opt_net_wifi-855dfe2183f743781f12c9dc87e2f3ef958b91f3.tar.gz
android_frameworks_opt_net_wifi-855dfe2183f743781f12c9dc87e2f3ef958b91f3.tar.bz2
android_frameworks_opt_net_wifi-855dfe2183f743781f12c9dc87e2f3ef958b91f3.zip
Fix bugs in WifiNetworkSelector unit tests
The generated scan results and configurations used in these tests were not consistent with each other, causing trouble in WifiCandidates. Also fix the individual evaluator tests to be compatible with this. Bug: 112196799 Bug: 124023173 Test: Added consistency checks Test: atest FrameworksWifiTests Test: frameworks/opt/net/wifi/tests/wifitests/coverage.sh /tmp/cov Change-Id: I1f49006567bad56a1cb81e2399a1edf5d8fba2fe
Diffstat (limited to 'tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTestUtil.java')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTestUtil.java30
1 files changed, 23 insertions, 7 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTestUtil.java b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTestUtil.java
index 6bf5c04c2..4f795ad03 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTestUtil.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTestUtil.java
@@ -33,8 +33,7 @@ import android.net.wifi.WifiNetworkScoreCache;
import android.net.wifi.WifiSsid;
import android.text.TextUtils;
-import androidx.test.filters.SmallTest;
-
+import com.android.server.wifi.util.NativeUtil;
import com.android.server.wifi.util.ScanResultUtil;
import java.util.ArrayList;
@@ -45,7 +44,6 @@ import java.util.Map;
/**
* Helper for WifiNetworkSelector unit tests.
*/
-@SmallTest
public class WifiNetworkSelectorTestUtil {
/**
@@ -88,12 +86,26 @@ public class WifiNetworkSelectorTestUtil {
WifiConfigManager wifiConfigManager, Clock clock) {
List<ScanDetail> scanDetails = buildScanDetails(ssids, bssids, freqs, caps, levels, clock);
WifiConfiguration[] savedConfigs = generateWifiConfigurations(ssids, securities);
+ checkConsistencyOfScanDetailsAndWifiConfigs(scanDetails, savedConfigs);
prepareConfigStore(wifiConfigManager, savedConfigs);
scanResultLinkConfiguration(wifiConfigManager, savedConfigs, scanDetails);
return new ScanDetailsAndWifiConfigs(scanDetails, savedConfigs);
}
+ private static void checkConsistencyOfScanDetailsAndWifiConfigs(
+ List<ScanDetail> scanDetails,
+ WifiConfiguration[] savedConfigs) {
+ assertEquals(scanDetails.size(), savedConfigs.length);
+ for (int i = 0; i < savedConfigs.length; i++) {
+ ScanResult scanResult = scanDetails.get(i).getScanResult();
+ WifiConfiguration config = savedConfigs[i];
+ assertEquals("Problem in entry " + i,
+ ScanResultMatchInfo.fromScanResult(scanResult),
+ ScanResultMatchInfo.fromWifiConfiguration(config));
+ }
+ }
+
/**
* Verify whether the WifiConfiguration chosen by WifiNetworkSelector matches
* with the chosen scan result.
@@ -125,7 +137,8 @@ public class WifiNetworkSelectorTestUtil {
long timeStamp = clock.getElapsedSinceBootMillis();
for (int index = 0; index < ssids.length; index++) {
- ScanDetail scanDetail = new ScanDetail(WifiSsid.createFromAsciiEncoded(ssids[index]),
+ byte[] ssid = NativeUtil.byteArrayFromArrayList(NativeUtil.decodeSsid(ssids[index]));
+ ScanDetail scanDetail = new ScanDetail(WifiSsid.createFromByteArray(ssid),
bssids[index], caps[index], levels[index], freqs[index], timeStamp, 0);
scanDetailList.add(scanDetail);
}
@@ -143,9 +156,8 @@ public class WifiNetworkSelectorTestUtil {
*/
public static WifiConfiguration[] generateWifiConfigurations(String[] ssids,
int[] securities) {
- if (ssids == null || securities == null || ssids.length != securities.length
- || ssids.length == 0) {
- return null;
+ if (ssids == null || securities == null || ssids.length != securities.length) {
+ throw new IllegalArgumentException();
}
Map<String, Integer> netIdMap = new HashMap<>();
@@ -165,6 +177,10 @@ public class WifiNetworkSelectorTestUtil {
configs[index] = generateWifiConfig(id.intValue(), 0, ssids[index], false, true, null,
null, securities[index]);
+ configs[index].preSharedKey = "\"PA55W0RD\""; // needed to validate with PSK
+ if (!WifiConfigurationUtil.validate(configs[index], true)) {
+ throw new IllegalArgumentException("Invalid generated config: " + configs[index]);
+ }
}
return configs;