[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: