stats: add a retry mechanism in a symlink test
When creating a new node, a corresponding node symlink is created when
the nodes counters update. To be sure we are able to access this
symlink, a retry mechanism was added.
Type: fix
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)
+ 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)
