5 from vpp_papi.vpp_stats import VPPStats
7 from framework import tag_fixme_vpp_workers
8 from framework import VppTestCase, VppTestRunner
11 @tag_fixme_vpp_workers
12 class StatsClientTestCase(VppTestCase):
13 """Test Stats Client"""
17 super(StatsClientTestCase, cls).setUpClass()
20 def tearDownClass(cls):
21 super(StatsClientTestCase, cls).tearDownClass()
23 def test_set_errors(self):
25 self.assertEqual(self.statistics.set_errors(), {})
27 self.statistics.get_counter('/err/ethernet-input/no error'), [0])
29 def test_client_fd_leak(self):
30 """Test file descriptor count - VPP-1486"""
34 initial_fds = p.num_fds()
37 stats = VPPStats(socketname=cls.get_stats_sock_path())
40 ending_fds = p.num_fds()
41 self.assertEqual(initial_fds, ending_fds,
42 "initial client side file descriptor count: %s "
44 "ending client side file descriptor count: %s" % (
45 initial_fds, ending_fds))
47 @unittest.skip("Manual only")
48 def test_mem_leak(self):
52 rv = self.vapi.papi.tap_create_v2(id=i, use_random_mac=1)
53 self.assertEqual(rv.retval, 0)
54 rv = self.vapi.papi.tap_delete_v2(sw_if_index=rv.sw_if_index)
55 self.assertEqual(rv.retval, 0)
57 before = self.statistics.get_counter('/mem/statseg/used')
59 self.vapi.cli("memory-trace on stats-segment")
62 print(self.vapi.cli("show memory stats-segment verbose"))
63 print('AFTER', before,
64 self.statistics.get_counter('/mem/statseg/used'))
67 if __name__ == '__main__':
68 unittest.main(testRunner=VppTestRunner)