[Tests]Quick fix for iperf flakiness.
If iperf server is busy just run ping.
Bug: 93271682
Test: Local
Change-Id: I34db582162bead48664ce8e6445f401e7a91b6f0
diff --git a/acts/tests/google/wifi/WifiStressTest.py b/acts/tests/google/wifi/WifiStressTest.py
index 9b7dbd3..063f557 100755
--- a/acts/tests/google/wifi/WifiStressTest.py
+++ b/acts/tests/google/wifi/WifiStressTest.py
@@ -32,7 +32,7 @@
WAIT_BEFORE_CONNECTION = 30
TIMEOUT = 1
-
+PING_ADDR = 'www.google.com'
class WifiStressTest(WifiBaseTest):
"""WiFi Stress test class.
@@ -121,6 +121,18 @@
ssid)
wutils.wifi_connect_by_id(self.dut, net_id)
+ def run_ping(self, sec):
+ """Run ping for given number of seconds.
+
+ Args:
+ sec: Time in seconds to run teh ping traffic.
+
+ """
+ self.log.info("Running ping for %d seconds" % sec)
+ result = self.dut.adb.shell("ping -w %d %s" %(sec, PING_ADDR))
+ self.log.debug("Ping Result = %s" % result)
+ if "100% packet loss" in result:
+ raise signals.TestFailure("100% packet loss during ping")
"""Tests"""
@@ -159,8 +171,7 @@
result, data = self.dut.run_iperf_client(self.iperf_server_address, args)
if not result:
self.log.debug("Error occurred in iPerf traffic.")
- raise signals.TestFailure("Error occurred in iPerf traffic. Current"
- " WiFi state = %d" % self.dut.droid.wifiCheckState())
+ self.run_ping(10)
wutils.wifi_forget_network(self.dut,self.wpa_5g[WifiEnums.SSID_KEY])
time.sleep(WAIT_BEFORE_CONNECTION)
@@ -182,11 +193,9 @@
self.log.info("Running iperf client {}".format(args))
result, data = self.dut.run_iperf_client(self.iperf_server_address,
args, timeout=sec+1)
- self.dut.droid.wifiDisconnect()
if not result:
self.log.debug("Error occurred in iPerf traffic.")
- raise signals.TestFailure("Error occurred in iPerf traffic. Current"
- " WiFi state = %d" % self.dut.droid.wifiCheckState())
+ self.run_ping(sec)
@test_tracker_info(uuid="d367c83e-5b00-4028-9ed8-f7b875997d13")
def test_stress_wifi_failover(self):