From 38fae310843b7431136f40bfa8cf7c6bec59450f Mon Sep 17 00:00:00 2001 From: Miklos Tirpak Date: Tue, 12 Jan 2021 15:14:02 +0100 Subject: vlib: increase the stats epoch only when necessary When the counter vectors are validated and they are already long enough to fit the given index in memory, there is no need to increase the stats segment epoch. In this case, the counter vectors do not change as a result of the validation. This optimization is necessary for the case when the configuration is changed at multiple thousands per second rate. The counter vectors grow at the beginning and their size stabilizes after a while. Without this improvement, it can still take several seconds for a stats reader to succeed. Type: improvement Signed-off-by: Miklos Tirpak Change-Id: I5a6c30255832716a1460018d0bd0f63031de102b --- src/vlib/test/test_counters.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/vlib/test/test_counters.py (limited to 'src/vlib/test') diff --git a/src/vlib/test/test_counters.py b/src/vlib/test/test_counters.py new file mode 100644 index 00000000000..5c63308fcb0 --- /dev/null +++ b/src/vlib/test/test_counters.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 + +from framework import VppTestCase + + +class TestCounters(VppTestCase): + """ Counters C Unit Tests """ + + @classmethod + def setUpClass(cls): + super(TestCounters, cls).setUpClass() + + @classmethod + def tearDownClass(cls): + super(TestCounters, cls).tearDownClass() + + def setUp(self): + super(TestCounters, self).setUp() + + def tearDown(self): + super(TestCounters, self).tearDown() + + def test_counter_simple_expand(self): + """ Simple Counter Expand """ + error = self.vapi.cli("test counter simple expand") + + if error: + self.logger.critical(error) + self.assertNotIn('failed', error) + + def test_counter_combined_expand(self): + """ Combined Counter Expand """ + error = self.vapi.cli("test counter combined expand") + + if error: + self.logger.critical(error) + self.assertNotIn('failed', error) -- cgit 1.2.3-korg