tests: Wait for scan to complete on all interfaces in reset()
When WpaSupplicant executes reset() it waits until all the ongoing scans are completed. However, it checks the status of the wlanX interface only. If a dedicated P2P device interface is used, scan may be still running on the P2P Device interface, e.g., due to P2P_FIND. This might affect subsequent tests. Fix this by waiting until the scan is done both on wlanX and P2P Device interfaces. Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com> Reviewed-by: Ilan Peer <ilan.peer@intel.com>
This commit is contained in:
parent
ba53a8a009
commit
53606b105c
1 changed files with 12 additions and 6 deletions
|
@ -138,8 +138,11 @@ class WpaSupplicant:
|
|||
|
||||
iter = 0
|
||||
while iter < 60:
|
||||
state = self.get_driver_status_field("scan_state")
|
||||
if "SCAN_STARTED" in state or "SCAN_REQUESTED" in state:
|
||||
state1 = self.get_driver_status_field("scan_state")
|
||||
p2pdev = "p2p-dev-" + self.ifname
|
||||
state2 = self.get_driver_status_field("scan_state", ifname=p2pdev)
|
||||
states = str(state1) + " " + str(state2)
|
||||
if "SCAN_STARTED" in states or "SCAN_REQUESTED" in states:
|
||||
logger.info(self.ifname + ": Waiting for scan operation to complete before continuing")
|
||||
time.sleep(1)
|
||||
else:
|
||||
|
@ -354,8 +357,11 @@ class WpaSupplicant:
|
|||
return vals[field]
|
||||
return None
|
||||
|
||||
def get_driver_status(self):
|
||||
res = self.request("STATUS-DRIVER")
|
||||
def get_driver_status(self, ifname=None):
|
||||
if ifname is None:
|
||||
res = self.request("STATUS-DRIVER")
|
||||
else:
|
||||
res = self.global_request("IFNAME=%s STATUS-DRIVER" % ifname)
|
||||
lines = res.splitlines()
|
||||
vals = dict()
|
||||
for l in lines:
|
||||
|
@ -367,8 +373,8 @@ class WpaSupplicant:
|
|||
vals[name] = value
|
||||
return vals
|
||||
|
||||
def get_driver_status_field(self, field):
|
||||
vals = self.get_driver_status()
|
||||
def get_driver_status_field(self, field, ifname=None):
|
||||
vals = self.get_driver_status(ifname)
|
||||
if field in vals:
|
||||
return vals[field]
|
||||
return None
|
||||
|
|
Loading…
Reference in a new issue