diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2019-05-12 02:43:06 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-05-12 02:43:06 +0000 |
commit | 050acb5eec918f3f0a47f0955815398c15f10ca8 (patch) | |
tree | 94527f56b1e031ee2a076a03a3cb5ac3e6caedba /tests/wifitests/src/com | |
parent | 8b5cc8afd5b23d70681f0880a7136f0a0646cdb0 (diff) | |
parent | 194152febb8c5b726a051469f7368f271dceaaee (diff) | |
download | android_frameworks_opt_net_wifi-050acb5eec918f3f0a47f0955815398c15f10ca8.tar.gz android_frameworks_opt_net_wifi-050acb5eec918f3f0a47f0955815398c15f10ca8.tar.bz2 android_frameworks_opt_net_wifi-050acb5eec918f3f0a47f0955815398c15f10ca8.zip |
Merge "[WPA3] Fix connectivity issues with PSK-SAE Transtion mode" into qt-dev
Diffstat (limited to 'tests/wifitests/src/com')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/ScanResultMatchInfoTest.java | 132 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java | 28 |
2 files changed, 160 insertions, 0 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/ScanResultMatchInfoTest.java b/tests/wifitests/src/com/android/server/wifi/ScanResultMatchInfoTest.java index e165f77fe..2712ce077 100644 --- a/tests/wifitests/src/com/android/server/wifi/ScanResultMatchInfoTest.java +++ b/tests/wifitests/src/com/android/server/wifi/ScanResultMatchInfoTest.java @@ -86,6 +86,129 @@ public class ScanResultMatchInfoTest { } /** + * Tests equality properties, reflexive, symmetric, transitive, consistent for transition mode + * network. + */ + @Test + public void testEqualityRulesForTransitionMode() { + WifiConfiguration wifiConfiguration = + WifiConfigurationTestUtil.createPskNetwork("\"Transition is Hard\""); + ScanDetail scanDetail = createScanDetailForWpa2Wpa3TransitionModeNetwork(wifiConfiguration, + "AA:BB:CC:DD:CC:BB"); + + ScanResultMatchInfo key1 = ScanResultMatchInfo.fromWifiConfiguration(wifiConfiguration); + ScanResultMatchInfo key2 = ScanResultMatchInfo.fromScanResult(scanDetail.getScanResult()); + ScanResultMatchInfo key3 = ScanResultMatchInfo.fromWifiConfiguration(wifiConfiguration); + + // Test a.equals(a) + assertTrue(key1.equals(key1)); + + // Test if a.equals(b) then b.equals(a) + assertTrue(key1.equals(key2)); + assertTrue(key2.equals(key1)); + + // Test transitivity + assertTrue(key1.equals(key2)); + assertTrue(key2.equals(key3)); + assertTrue(key1.equals(key3)); + + // Test consistency + assertTrue(key1.equals(key2)); + assertTrue(key1.equals(key2)); + assertTrue(key1.equals(key2)); + assertTrue(key1.equals(key2)); + } + + /** + * Tests equality properties, reflexive, symmetric, transitive, consistent for PSK network. + */ + @Test + public void testEqualityRulesForPsk() { + WifiConfiguration wifiConfiguration = + WifiConfigurationTestUtil.createPskNetwork("\"Psk Tsk\""); + ScanDetail scanDetail = createScanDetailForNetwork(wifiConfiguration, + "AA:BB:CC:DD:CC:BB"); + + ScanResultMatchInfo key1 = ScanResultMatchInfo.fromWifiConfiguration(wifiConfiguration); + ScanResultMatchInfo key2 = ScanResultMatchInfo.fromScanResult(scanDetail.getScanResult()); + ScanResultMatchInfo key3 = ScanResultMatchInfo.fromWifiConfiguration(wifiConfiguration); + + // Test a.equals(a) + assertTrue(key1.equals(key1)); + + // Test if a.equals(b) then b.equals(a) + assertTrue(key1.equals(key2)); + assertTrue(key2.equals(key1)); + + // Test transitivity + assertTrue(key1.equals(key2)); + assertTrue(key2.equals(key3)); + assertTrue(key1.equals(key3)); + + // Test consistency + assertTrue(key1.equals(key2)); + assertTrue(key1.equals(key2)); + assertTrue(key1.equals(key2)); + assertTrue(key1.equals(key2)); + } + + + /** + * Tests equality properties, reflexive, symmetric, transitive, consistent for SAE network. + */ + @Test + public void testEqualityRulesForSae() { + WifiConfiguration wifiConfiguration = + WifiConfigurationTestUtil.createSaeNetwork(); + ScanDetail scanDetail = createScanDetailForNetwork(wifiConfiguration, + "AC:AB:AD:AE:AF:FC"); + + ScanResultMatchInfo key1 = ScanResultMatchInfo.fromWifiConfiguration(wifiConfiguration); + ScanResultMatchInfo key2 = ScanResultMatchInfo.fromScanResult(scanDetail.getScanResult()); + ScanResultMatchInfo key3 = ScanResultMatchInfo.fromWifiConfiguration(wifiConfiguration); + + // Test a.equals(a) + assertTrue(key1.equals(key1)); + + // Test if a.equals(b) then b.equals(a) + assertTrue(key1.equals(key2)); + assertTrue(key2.equals(key1)); + + // Test transitivity + assertTrue(key1.equals(key2)); + assertTrue(key2.equals(key3)); + assertTrue(key1.equals(key3)); + + // Test consistency + assertTrue(key1.equals(key2)); + assertTrue(key1.equals(key2)); + assertTrue(key1.equals(key2)); + assertTrue(key1.equals(key2)); + } + + /** + * Tests that hashes of various configurations are equal + */ + @Test + public void testHashForTransitionMode() { + WifiConfiguration wifiConfigurationPsk = + WifiConfigurationTestUtil.createPskNetwork("\"Transition is Hard\""); + WifiConfiguration wifiConfigurationSae = + WifiConfigurationTestUtil.createSaeNetwork("\"Transition is Hard\""); + ScanDetail scanDetail = createScanDetailForWpa2Wpa3TransitionModeNetwork( + wifiConfigurationPsk, "AA:BB:CC:DD:CC:BB"); + + ScanResultMatchInfo key1 = ScanResultMatchInfo.fromWifiConfiguration(wifiConfigurationPsk); + ScanResultMatchInfo key2 = ScanResultMatchInfo.fromScanResult(scanDetail.getScanResult()); + ScanResultMatchInfo key3 = ScanResultMatchInfo.fromWifiConfiguration(wifiConfigurationSae); + + // Assert that all hashes are equal + assertEquals(key1.hashCode(), key2.hashCode()); + assertEquals(key1.hashCode(), key3.hashCode()); + assertEquals(key2.hashCode(), key3.hashCode()); + } + + /** * Creates a scan detail corresponding to the provided network and given BSSID */ private ScanDetail createScanDetailForNetwork( @@ -93,4 +216,13 @@ public class ScanResultMatchInfoTest { return WifiConfigurationTestUtil.createScanDetailForNetwork(configuration, bssid, -40, 2402, 0, 0); } + + /** + * Creates a scan detail corresponding to the provided network and given BSSID + */ + private ScanDetail createScanDetailForWpa2Wpa3TransitionModeNetwork( + WifiConfiguration configuration, String bssid) { + return WifiConfigurationTestUtil.createScanDetailForWpa2Wpa3TransitionModeNetwork( + configuration, bssid, -40, 2402, 0, 0); + } } diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java b/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java index c114aa10d..056df7c37 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java @@ -300,6 +300,12 @@ public class WifiConfigurationTestUtil { return configuration; } + public static WifiConfiguration createSaeNetwork(String ssid) { + WifiConfiguration configuration = + generateWifiConfig(TEST_NETWORK_ID, TEST_UID, ssid, true, true, null, + null, SECURITY_SAE); + return configuration; + } public static WifiConfiguration createPskHiddenNetwork() { WifiConfiguration configuration = createPskNetwork(); @@ -500,6 +506,15 @@ public class WifiConfigurationTestUtil { } /** + * Gets scan result capabilities for a WPA2/WPA3-Transition mode network configuration + */ + private static String + getScanResultCapsForWpa2Wpa3TransitionNetwork(WifiConfiguration configuration) { + String caps = "[RSN-PSK+SAE-CCMP]"; + return caps; + } + + /** * Creates a scan detail corresponding to the provided network and given BSSID, etc. */ public static ScanDetail createScanDetailForNetwork( @@ -511,6 +526,19 @@ public class WifiConfigurationTestUtil { } /** + * Creates a scan detail corresponding to the provided network and given BSSID, but sets + * the capabilities to WPA2/WPA3-Transition mode network. + */ + public static ScanDetail createScanDetailForWpa2Wpa3TransitionModeNetwork( + WifiConfiguration configuration, String bssid, int level, int frequency, + long tsf, long seen) { + String caps = getScanResultCapsForWpa2Wpa3TransitionNetwork(configuration); + WifiSsid ssid = WifiSsid.createFromAsciiEncoded(configuration.getPrintableSsid()); + return new ScanDetail(ssid, bssid, caps, level, frequency, tsf, seen); + } + + + /** * Asserts that the 2 WifiConfigurations are equal in the elements saved for both backup/restore * and config store. */ |