tests: Avoid race condition in scan_external_trigger

Wait for the externally triggered scan to actually start before issuing
the own scan command to avoid a race condition with UML time-travel.

Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2023-12-10 16:26:21 +02:00
parent 45817ad1a3
commit 4c4ba77e65

View file

@ -20,6 +20,13 @@ from tshark import run_tshark
from test_ap_csa import switch_channel, wait_channel_switch
def check_scan(dev, params, other_started=False, test_busy=False):
if other_started:
ev = dev.wait_event(["CTRL-EVENT-SCAN-STARTED"])
if ev is None:
raise Exception("Other scan did not start")
if "id=" in ev:
raise Exception("Scan id unexpectedly included in start event")
if not other_started:
dev.dump_monitor()
id = dev.request("SCAN " + params)
@ -32,12 +39,6 @@ def check_scan(dev, params, other_started=False, test_busy=False):
raise Exception("SCAN command while already scanning not rejected")
if other_started:
ev = dev.wait_event(["CTRL-EVENT-SCAN-STARTED"])
if ev is None:
raise Exception("Other scan did not start")
if "id=" + str(id) in ev:
raise Exception("Own scan id unexpectedly included in start event")
ev = dev.wait_event(["CTRL-EVENT-SCAN-RESULTS"])
if ev is None:
raise Exception("Other scan did not complete")