tests: P2P autonomous GO and many clients (P2P IE fragmentation)
Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
d0cd00de6f
commit
eb9c155498
1 changed files with 58 additions and 1 deletions
|
@ -1,5 +1,5 @@
|
|||
# P2P autonomous GO test cases
|
||||
# Copyright (c) 2013-2014, Jouni Malinen <j@w1.fi>
|
||||
# Copyright (c) 2013-2015, Jouni Malinen <j@w1.fi>
|
||||
#
|
||||
# This software may be distributed under the terms of the BSD license.
|
||||
# See README for more details.
|
||||
|
@ -644,3 +644,60 @@ def test_autogo_many(dev):
|
|||
dev[0].request("P2P_GROUP_REMOVE " + i)
|
||||
dev[0].dump_monitor()
|
||||
dev[0].request("P2P_GROUP_REMOVE *")
|
||||
|
||||
def test_autogo_many_clients(dev):
|
||||
"""P2P autonomous GO and many clients (P2P IE fragmentation)"""
|
||||
try:
|
||||
_test_autogo_many_clients(dev)
|
||||
finally:
|
||||
dev[0].request("SET device_name Device A")
|
||||
dev[1].request("SET device_name Device B")
|
||||
dev[2].request("SET device_name Device C")
|
||||
|
||||
def _test_autogo_many_clients(dev):
|
||||
# These long device names will push the P2P IE contents beyond the limit
|
||||
# that requires fragmentation.
|
||||
name0 = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
|
||||
name1 = "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
|
||||
name2 = "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"
|
||||
name3 = "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
|
||||
dev[0].request("SET device_name " + name0)
|
||||
dev[1].request("SET device_name " + name1)
|
||||
dev[2].request("SET device_name " + name2)
|
||||
|
||||
addr0 = dev[0].p2p_dev_addr()
|
||||
res = autogo(dev[0], freq=2412)
|
||||
bssid = dev[0].p2p_interface_addr()
|
||||
|
||||
connect_cli(dev[0], dev[1], social=True, freq=2412)
|
||||
dev[0].dump_monitor()
|
||||
connect_cli(dev[0], dev[2], social=True, freq=2412)
|
||||
dev[0].dump_monitor()
|
||||
|
||||
wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5')
|
||||
wpas.interface_add("wlan5")
|
||||
wpas.request("SET device_name " + name3)
|
||||
wpas.request("SET sec_device_type 1-11111111-1")
|
||||
wpas.request("SET sec_device_type 2-22222222-2")
|
||||
wpas.request("SET sec_device_type 3-33333333-3")
|
||||
wpas.request("SET sec_device_type 4-44444444-4")
|
||||
wpas.request("SET sec_device_type 5-55555555-5")
|
||||
connect_cli(dev[0], wpas, social=True, freq=2412)
|
||||
dev[0].dump_monitor()
|
||||
|
||||
dev[1].dump_monitor()
|
||||
dev[1].p2p_find(freq=2412)
|
||||
ev1 = dev[1].wait_global_event(["P2P-DEVICE-FOUND"], timeout=10)
|
||||
if ev1 is None:
|
||||
raise Exception("Could not find peer (1)")
|
||||
ev2 = dev[1].wait_global_event(["P2P-DEVICE-FOUND"], timeout=10)
|
||||
if ev2 is None:
|
||||
raise Exception("Could not find peer (2)")
|
||||
ev3 = dev[1].wait_global_event(["P2P-DEVICE-FOUND"], timeout=10)
|
||||
if ev3 is None:
|
||||
raise Exception("Could not find peer (3)")
|
||||
dev[1].p2p_stop_find()
|
||||
|
||||
for i in [ name0, name2, name3 ]:
|
||||
if i not in ev1 and i not in ev2 and i not in ev3:
|
||||
raise Exception('name "%s" not found' % i)
|
||||
|
|
Loading…
Reference in a new issue