You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2017/10/16 12:34:19 UTC
qpid-proton git commit: NO-JIRA: Fix tests/fdlimit.py to work on
python 2.6
Repository: qpid-proton
Updated Branches:
refs/heads/master e238bb6c6 -> a518b1ce9
NO-JIRA: Fix tests/fdlimit.py to work on python 2.6
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/a518b1ce
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/a518b1ce
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/a518b1ce
Branch: refs/heads/master
Commit: a518b1ce98ca90ed9ce7541dde789004697338a3
Parents: e238bb6
Author: Alan Conway <ac...@redhat.com>
Authored: Mon Oct 16 13:33:48 2017 +0100
Committer: Alan Conway <ac...@redhat.com>
Committed: Mon Oct 16 13:33:48 2017 +0100
----------------------------------------------------------------------
proton-c/src/tests/fdlimit.py | 69 ++++++++++++++++++--------------------
1 file changed, 32 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a518b1ce/proton-c/src/tests/fdlimit.py
----------------------------------------------------------------------
diff --git a/proton-c/src/tests/fdlimit.py b/proton-c/src/tests/fdlimit.py
index 4f4a342..beb00a8 100644
--- a/proton-c/src/tests/fdlimit.py
+++ b/proton-c/src/tests/fdlimit.py
@@ -41,48 +41,43 @@ class LimitedBroker(object):
# Check if we can run prlimit to control resources
try:
Proc(["prlimit"]).wait_exit()
- has_prlimit = True
-except:
- has_prlimit = False
-class FdLimitTest(ProcTestCase):
+ class FdLimitTest(ProcTestCase):
+
+ def proc(self, *args, **kwargs):
+ """Skip valgrind for all processes started by this test"""
+ return super(FdLimitTest, self).proc(*args, valgrind=False, **kwargs)
- def setUp(self):
- global has_prlimit
- if not has_prlimit:
- self.skipTest("prlimit not available")
- super(FdLimitTest, self).setUp()
+ def test_fd_limit_broker(self):
+ """Check behaviour when running out of file descriptors on accept"""
+ # Not too many FDs but not too few either, some are used for system purposes.
+ fdlimit = 256
+ with LimitedBroker(self, fdlimit) as b:
+ receivers = []
+ # Start enough receivers to use all FDs, make sure the broker logs an error
+ for i in xrange(fdlimit+1):
+ receivers.append(self.proc(["receive", "", b.port, str(i)]))
- def proc(self, *args, **kwargs):
- """Skip valgrind for all processes started by this test"""
- return super(FdLimitTest, self).proc(*args, valgrind=False, **kwargs)
+ # Note: libuv silently swallows EMFILE/ENFILE errors so there is no error reporting.
+ # The epoll proactor will close the users connection with the EMFILE/ENFILE error
+ if "TRANSPORT_CLOSED" in b.proc.out:
+ self.assertIn("open files", b.proc.out)
- def test_fd_limit_broker(self):
- """Check behaviour when running out of file descriptors on accept"""
- # Not too many FDs but not too few either, some are used for system purposes.
- fdlimit = 256
- with LimitedBroker(self, fdlimit) as b:
- receivers = []
- # Start enough receivers to use all FDs, make sure the broker logs an error
- for i in xrange(fdlimit+1):
- receivers.append(self.proc(["receive", "", b.port, str(i)]))
+ # All FDs are now in use, send attempt should fail or hang
+ self.assertIn(self.proc(["send", "", b.port, "x"]).poll(), [1, None])
- # Note: libuv silently swallows EMFILE/ENFILE errors so there is no error reporting.
- # The epoll proactor will close the users connection with the EMFILE/ENFILE error
- if "TRANSPORT_CLOSED" in b.proc.out:
- self.assertIn("open files", b.proc.out)
+ # Kill receivers to free up FDs
+ for r in receivers:
+ r.kill()
+ for r in receivers:
+ r.wait_exit(expect=None)
+ # send/receive should succeed now
+ self.assertIn("10 messages sent", self.proc(["send", "", b.port]).wait_exit())
+ self.assertIn("10 messages received", self.proc(["receive", "", b.port]).wait_exit())
- # All FDs are now in use, send attempt should fail or hang
- self.assertIn(self.proc(["send", "", b.port, "x"]).poll(), [1, None])
+ if __name__ == "__main__":
+ main()
- # Kill receivers to free up FDs
- for r in receivers:
- r.kill()
- for r in receivers:
- r.wait_exit(expect=None)
- # send/receive should succeed now
- self.assertIn("10 messages sent", self.proc(["send", "", b.port]).wait_exit())
- self.assertIn("10 messages received", self.proc(["receive", "", b.port]).wait_exit())
+except:
+ print "Skipping test: prlimit not available"
-if __name__ == "__main__":
- main()
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org