tests: Make wpas_mesh_max_peering more robust
The previous version was enabling all three stations at the same time and left dev[1] and dev[2] competing on getting connected with dev[0] that allowed only one pairing. This was not exactly robust and the pass criteria depended on an extra event from either dev[1] or dev[2]. Fix that by first connecting dev[0] and dev[1] and only after that, start dev[2]. This allows proper validation of both the peering limit on dev[0] and no extra event on dev[2]. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
29bac7cb89
commit
ce8ca2f9a0
1 changed files with 11 additions and 3 deletions
|
@ -459,14 +459,18 @@ def test_wpas_mesh_max_peering(dev, apdev):
|
||||||
return "skip"
|
return "skip"
|
||||||
try:
|
try:
|
||||||
dev[0].request("SET max_peer_links 1")
|
dev[0].request("SET max_peer_links 1")
|
||||||
for i in range(3):
|
|
||||||
add_open_mesh_network(dev[i])
|
|
||||||
|
|
||||||
for i in range(3):
|
# first, connect dev[0] and dev[1]
|
||||||
|
add_open_mesh_network(dev[0])
|
||||||
|
add_open_mesh_network(dev[1])
|
||||||
|
for i in range(2):
|
||||||
ev = dev[i].wait_event(["MESH-PEER-CONNECTED"])
|
ev = dev[i].wait_event(["MESH-PEER-CONNECTED"])
|
||||||
if ev is None:
|
if ev is None:
|
||||||
raise Exception("dev%d did not connect with any peer" % i)
|
raise Exception("dev%d did not connect with any peer" % i)
|
||||||
|
|
||||||
|
# add dev[2] which will try to connect with both dev[0] and dev[1],
|
||||||
|
# but can complete connection only with dev[1]
|
||||||
|
add_open_mesh_network(dev[2])
|
||||||
for i in range(1, 3):
|
for i in range(1, 3):
|
||||||
ev = dev[i].wait_event(["MESH-PEER-CONNECTED"])
|
ev = dev[i].wait_event(["MESH-PEER-CONNECTED"])
|
||||||
if ev is None:
|
if ev is None:
|
||||||
|
@ -476,6 +480,10 @@ def test_wpas_mesh_max_peering(dev, apdev):
|
||||||
if ev is not None:
|
if ev is not None:
|
||||||
raise Exception("dev0 connection beyond max peering limit")
|
raise Exception("dev0 connection beyond max peering limit")
|
||||||
|
|
||||||
|
ev = dev[2].wait_event(["MESH-PEER-CONNECTED"], timeout=0.1)
|
||||||
|
if ev is not None:
|
||||||
|
raise Exception("dev2 reported unexpected peering: " + ev)
|
||||||
|
|
||||||
for i in range(3):
|
for i in range(3):
|
||||||
dev[i].mesh_group_remove()
|
dev[i].mesh_group_remove()
|
||||||
check_mesh_group_removed(dev[i])
|
check_mesh_group_removed(dev[i])
|
||||||
|
|
Loading…
Reference in a new issue