]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
tests: P2P cross connection
authorJouni Malinen <j@w1.fi>
Tue, 9 Dec 2014 23:59:47 +0000 (01:59 +0200)
committerJouni Malinen <j@w1.fi>
Thu, 11 Dec 2014 13:18:11 +0000 (15:18 +0200)
Signed-off-by: Jouni Malinen <j@w1.fi>
tests/hwsim/test_p2p_concurrency.py
tests/hwsim/wpasupplicant.py

index c143484fabdbaa9f8c258112751e10b7363425d2..612b85ab24efcd5b94e34df31c14f29cfa5de9c0 100644 (file)
@@ -22,6 +22,7 @@ from test_p2p_persistent import invite
 def test_concurrent_autogo(dev, apdev):
     """Concurrent P2P autonomous GO"""
     logger.info("Connect to an infrastructure AP")
+    dev[0].request("P2P_SET cross_connect 0")
     hapd = hostapd.add_ap(apdev[0]['ifname'], { "ssid": "test-open" })
     dev[0].connect("test-open", key_mgmt="NONE", scan_freq="2412")
     hwsim_utils.test_connectivity(dev[0], hapd)
@@ -40,6 +41,43 @@ def test_concurrent_autogo(dev, apdev):
     logger.info("Confirm AP connection after P2P group removal")
     hwsim_utils.test_connectivity(dev[0], hapd)
 
+def test_concurrent_autogo_crossconnect(dev, apdev):
+    """Concurrent P2P autonomous GO"""
+    dev[0].request("P2P_SET cross_connect 1")
+    hapd = hostapd.add_ap(apdev[0]['ifname'], { "ssid": "test-open" })
+    dev[0].connect("test-open", key_mgmt="NONE", scan_freq="2412")
+
+    dev[0].request("SET p2p_no_group_iface 0")
+    dev[0].p2p_start_go(no_event_clear=True)
+    ev = dev[0].wait_global_event("P2P-CROSS-CONNECT-ENABLE", timeout=10)
+    if ev is None:
+        raise Exception("Timeout on cross connection enabled event")
+    if dev[0].group_ifname + " " + dev[0].ifname not in ev:
+        raise Exception("Unexpected interfaces: " + ev)
+    dev[0].dump_monitor()
+
+    dev[0].request("P2P_SET cross_connect 0")
+    ev = dev[0].wait_global_event("P2P-CROSS-CONNECT-DISABLE", timeout=10)
+    if ev is None:
+        raise Exception("Timeout on cross connection disabled event")
+    if dev[0].group_ifname + " " + dev[0].ifname not in ev:
+        raise Exception("Unexpected interfaces: " + ev)
+    dev[0].remove_group()
+
+    dev[0].request("P2P_SET cross_connect 1")
+    dev[0].p2p_start_go(no_event_clear=True)
+    ev = dev[0].wait_global_event("P2P-CROSS-CONNECT-ENABLE", timeout=10)
+    if ev is None:
+        raise Exception("Timeout on cross connection enabled event")
+    if dev[0].group_ifname + " " + dev[0].ifname not in ev:
+        raise Exception("Unexpected interfaces: " + ev)
+    dev[0].dump_monitor()
+    dev[0].remove_group()
+    ev = dev[0].wait_global_event("P2P-CROSS-CONNECT-DISABLE", timeout=10)
+    if ev is None:
+        raise Exception("Timeout on cross connection disabled event")
+    dev[0].request("P2P_SET cross_connect 0")
+
 def test_concurrent_p2pcli(dev, apdev):
     """Concurrent P2P client join"""
     logger.info("Connect to an infrastructure AP")
index a3f9d9d38231f614bc5d6bc33b9bb737d9cf36a6..9161fd99da0bfcf90921ccef78c0be468fa8ddf4 100644 (file)
@@ -660,7 +660,7 @@ class WpaSupplicant:
             raise Exception("Group could not be removed")
         self.group_ifname = None
 
-    def p2p_start_go(self, persistent=None, freq=None):
+    def p2p_start_go(self, persistent=None, freq=None, no_event_clear=False):
         self.dump_monitor()
         cmd = "P2P_GROUP_ADD"
         if persistent is None:
@@ -675,7 +675,8 @@ class WpaSupplicant:
             ev = self.wait_global_event(["P2P-GROUP-STARTED"], timeout=5)
             if ev is None:
                 raise Exception("GO start up timed out")
-            self.dump_monitor()
+            if not no_event_clear:
+                self.dump_monitor()
             return self.group_form_result(ev)
         raise Exception("P2P_GROUP_ADD failed")