stats: add a retry mechanism in a symlink test
[vpp.git] / test / test_stats_client.py
index 7e17e2a..e5b6aa7 100644 (file)
@@ -2,6 +2,8 @@
 
 import unittest
 import psutil
+import sys
+import six
 from vpp_papi.vpp_stats import VPPStats
 
 from framework import tag_fixme_vpp_workers
@@ -108,7 +110,19 @@ class StatsClientTestCase(VppTestCase):
         # We wait for nodes symlinks to update (interfaces created/deleted).
         # ... and packets to be sent
         self.sleep(0.1)
-        vectors = self.statistics.get_counter('/nodes/pg1-tx/vectors')
+        for _ in range(5):
+            try:
+                vectors = self.statistics.get_counter('/nodes/pg1-tx/vectors')
+                if vectors[0] == 0:
+                    raise ValueError("Nodes counters are not up to date")
+                break
+            except:
+                t, v, tb = sys.exc_info()
+
+                self.sleep(0.1)
+                continue
+        else:
+            six.reraise(t, v, tb)
 
         self.assertEqual(tx[0]['bytes'] - tx_before_sending[0]['bytes'],
                          bytes_to_send)