[autotest] network_WiFi_PTK: handle floats for loss percentage
Ping loss percentages can be floats -- they already are for the Mac OS
implementation, and iputils is starting to use them too (in part to
prevent erroneous values when near 0 or 100%).
So don't print them with %d, and add a float parser in the Linux ping
parser.
Now instead of 43.3333 showing up as this:
Ping loss percentage: 3333.
We get:
Ping loss percentage: 43.3333.
BUG=none
TEST=`network_WiFi_PTK` with a bad Wifi firmware, logs correct
percentage
Change-Id: I233e3d5a0acfc7e64630c92677fe2e150a1d42e4
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1300597
Reviewed-by: Kirtika Ruchandani <kirtika@chromium.org>
diff --git a/client/common_lib/cros/network/ping_runner.py b/client/common_lib/cros/network/ping_runner.py
index f648e12..3aae17d 100644
--- a/client/common_lib/cros/network/ping_runner.py
+++ b/client/common_lib/cros/network/ping_runner.py
@@ -212,7 +212,8 @@
ping_output.splitlines()) or [''])[0]
sent = _regex_int_from_string('([0-9]+) packets transmitted', loss_line)
received = _regex_int_from_string('([0-9]+) received', loss_line)
- loss = _regex_int_from_string('([0-9]+)% packet loss', loss_line)
+ loss = _regex_float_from_string('([0-9]+(\.[0-9]+)?)% packet loss',
+ loss_line)
if None in (sent, received, loss):
raise error.TestFail('Failed to parse transmission statistics.')
diff --git a/server/site_tests/network_WiFi_PTK/network_WiFi_PTK.py b/server/site_tests/network_WiFi_PTK/network_WiFi_PTK.py
index 6a87f58..f063843 100644
--- a/server/site_tests/network_WiFi_PTK/network_WiFi_PTK.py
+++ b/server/site_tests/network_WiFi_PTK/network_WiFi_PTK.py
@@ -53,7 +53,7 @@
self.PING_COUNT * self.PING_INTERVAL,
self.REKEY_PERIOD)
ping_result = self.context.client.ping(ping_config=ping_config)
- logging.info('Ping loss percentage: %d.', ping_result.loss)
+ logging.info('Ping loss percentage: %r.', ping_result.loss)
self.output_perf_value(description='Network_wifi_PTK_PingLoss',
value=ping_result.loss, units='percent', higher_is_better=False)
if ping_result.loss > self.PING_LOSS_THRESHOLD: