diff options
author | Paul Vinciguerra <pvinci@vinciconsulting.com> | 2019-03-11 05:04:12 -0700 |
---|---|---|
committer | Neale Ranns <nranns@cisco.com> | 2019-03-12 05:26:04 +0000 |
commit | 5995482d310c97616beea2d5002943745b453515 (patch) | |
tree | 017bbb7d72820ba707e3d4345f72e5dbf16a1535 | |
parent | 38fb88973f26ddc826ae0ca2c82d73ee4dac7ae1 (diff) |
VPP-1486: Unittest for stat segment file descriptor leak.
Verifies: https://gerrit.fd.io/r/#/c/18167/
Before patch:
==============================================================================
Test Stats Client
==============================================================================
Test file descriptor count - VPP-1486 FAIL [ temp dir used by test case: /tmp/vpp-unittest-StatsClientTestCase-EAp0e7 ]
==============================================================================
FAIL: Test file descriptor count - VPP-1486
------------------------------------------------------------------------------
Traceback (most recent call last):
File "/vpp/test/test_stats_client.py", line 39, in test_client_fd_leak
initial_fds, ending_fds))
AssertionError: initial client side file descriptor count: 20 is not equal to ending client side file descriptor count: 120
04:55:38,038 Symlink to failed testcase directory: /tmp/vpp-failed-unittests/vpp-unittest-StatsClientTestCase-EAp0e7-FAILED -> vpp-unittest-StatsClientTestCase-EAp0e7
==============================================================================
TEST RESULTS:
Scheduled tests: 1
Executed tests: 1
Passed tests: 0
Failures: 1
FAILURES AND ERRORS IN TESTS:
Testcase name: Test Stats Client
FAILURE: Test file descriptor count - VPP-1486 [test_stats_client.StatsClientTestCase.test_client_fd_leak]
=============================================================================
After patch:
==============================================================================
Test Stats Client
==============================================================================
Test file descriptor count - VPP-1486 OK
==============================================================================
TEST RESULTS:
Scheduled tests: 1
Executed tests: 1
Passed tests: 1
==============================================================================
Test run was successful
Change-Id: I055e473ecf0566ebfbfbadd58ec6eaf11fc77d68
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
-rw-r--r-- | test/test_stats_client.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/test_stats_client.py b/test/test_stats_client.py new file mode 100644 index 00000000000..87c9efd4f1c --- /dev/null +++ b/test/test_stats_client.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python2.7 + +import unittest + +import psutil +from vpp_papi.vpp_stats import VPPStats + +from framework import VppTestCase, VppTestRunner + + +class StatsClientTestCase(VppTestCase): + """Test Stats Client""" + + @classmethod + def setUpClass(cls): + super(StatsClientTestCase, cls).setUpClass() + + @classmethod + def tearDownClass(cls): + super(StatsClientTestCase, cls).tearDownClass() + + def test_client_fd_leak(self): + """Test file descriptor count - VPP-1486""" + + cls = self.__class__ + p = psutil.Process() + initial_fds = p.num_fds() + + for _ in range(100): + stats = VPPStats(socketname=cls.stats_sock) + stats.disconnect() + + ending_fds = p.num_fds() + self.assertEqual(initial_fds, ending_fds, + "initial client side file descriptor count: %s " + "is not equal to " + "ending client side file descriptor count: %s" % ( + initial_fds, ending_fds)) + +if __name__ == '__main__': + unittest.main(testRunner=VppTestRunner) |