summaryrefslogtreecommitdiff
path: root/qpid/python/qpid/tests/messaging/endpoints.py
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/python/qpid/tests/messaging/endpoints.py')
-rw-r--r--qpid/python/qpid/tests/messaging/endpoints.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/qpid/python/qpid/tests/messaging/endpoints.py b/qpid/python/qpid/tests/messaging/endpoints.py
index 5d4fc1646b..b1f00b680c 100644
--- a/qpid/python/qpid/tests/messaging/endpoints.py
+++ b/qpid/python/qpid/tests/messaging/endpoints.py
@@ -20,7 +20,7 @@
# setup, usage, teardown, errors(sync), errors(async), stress, soak,
# boundary-conditions, config
-import time
+import errno, os, time
from qpid import compat
from qpid.messaging import *
from qpid.tests.messaging import Base
@@ -48,6 +48,29 @@ class SetupTests(Base):
# XXX: should verify that e includes appropriate diagnostic info
pass
+ def use_fds(self):
+ fds = []
+ try:
+ while True:
+ fds.append(os.open(getattr(os, "devnull", "/dev/null"), os.O_RDONLY))
+ except OSError, e:
+ if e.errno != errno.EMFILE:
+ raise e
+ else:
+ return fds
+
+ def testOpenCloseResourceLeaks(self):
+ fds = self.use_fds()
+ try:
+ for i in range(32):
+ if fds: os.close(fds.pop())
+ for i in xrange(64):
+ conn = Connection.open(self.broker.host, self.broker.port)
+ conn.close()
+ finally:
+ while fds:
+ os.close(fds.pop())
+
class ConnectionTests(Base):
def setup_connection(self):