tests: Clear data from ongoing scan on reset()
authorJouni Malinen <jouni@qca.qualcomm.com>
Mon, 13 Jan 2014 18:26:22 +0000 (20:26 +0200)
committerJouni Malinen <j@w1.fi>
Mon, 13 Jan 2014 18:26:22 +0000 (20:26 +0200)
It was possible for the previous test case to leave unexpected BSS or
P2P peer table entries if a scan was in progress when the FLUSH command
was used. This could result in test failures, e.g., when running
discovery_dev_type_go followed by discovery_group_client where a P2P
peer was discovered on another channel at the end of the former test
case from a scan that was running durign the FLUSH operation that was
supposed to remove all P2P peers. This could result in
discovery_group_client failing due to dev[2] trying to send the
discoverability frame on incorrect channel (the one learned in the
previous test case) since discover_peer() skipped a new device
discovery. Fix this by running FLUSH operation again if a pending scan
operation is detected during the first FLUSH operation.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

tests/hwsim/wpasupplicant.py

index 5a9a70f..f35d407 100644 (file)
@@ -120,6 +120,10 @@ class WpaSupplicant:
             except subprocess.CalledProcessError, e:
                 logger.info("ifconfig failed: " + str(e.returncode))
                 logger.info(e.output)
+        if iter > 0:
+            # The ongoing scan could have discovered BSSes or P2P peers
+            logger.info("Run FLUSH again since scan was in progress")
+            self.request("FLUSH")
 
         if not self.ping():
             logger.info("No PING response from " + self.ifname + " after reset")