mirror of https://github.com/python/cpython
Merged revisions 73077 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r73077 | r.david.murray | 2009-05-31 15:15:57 -0400 (Sun, 31 May 2009) | 4 lines Issue 3848: document the fact that epoll register raises an IOError if an fd is registered twice, and add some additional epoll tests. Patch by Christian Heimes. ........
This commit is contained in:
parent
a35f4b9915
commit
1855c214d7
|
@ -154,6 +154,11 @@ Edge and Level Trigger Polling (epoll) Objects
|
|||
|
||||
Register a fd descriptor with the epoll object.
|
||||
|
||||
.. note::
|
||||
|
||||
Registering a file descriptor that's already registered raises an
|
||||
IOError -- contrary to :ref:`poll-objects`'s register.
|
||||
|
||||
|
||||
.. method:: epoll.modify(fd, eventmask)
|
||||
|
||||
|
|
|
@ -95,6 +95,34 @@ class TestEPoll(unittest.TestCase):
|
|||
finally:
|
||||
ep.close()
|
||||
|
||||
# adding by object w/ fileno works, too.
|
||||
ep = select.epoll(2)
|
||||
try:
|
||||
ep.register(server, select.EPOLLIN | select.EPOLLOUT)
|
||||
ep.register(client, select.EPOLLIN | select.EPOLLOUT)
|
||||
finally:
|
||||
ep.close()
|
||||
|
||||
ep = select.epoll(2)
|
||||
try:
|
||||
# TypeError: argument must be an int, or have a fileno() method.
|
||||
self.assertRaises(TypeError, ep.register, object(),
|
||||
select.EPOLLIN | select.EPOLLOUT)
|
||||
self.assertRaises(TypeError, ep.register, None,
|
||||
select.EPOLLIN | select.EPOLLOUT)
|
||||
# ValueError: file descriptor cannot be a negative integer (-1)
|
||||
self.assertRaises(ValueError, ep.register, -1,
|
||||
select.EPOLLIN | select.EPOLLOUT)
|
||||
# IOError: [Errno 9] Bad file descriptor
|
||||
self.assertRaises(IOError, ep.register, 10000,
|
||||
select.EPOLLIN | select.EPOLLOUT)
|
||||
# registering twice also raises an exception
|
||||
ep.register(server, select.EPOLLIN | select.EPOLLOUT)
|
||||
self.assertRaises(IOError, ep.register, server,
|
||||
select.EPOLLIN | select.EPOLLOUT)
|
||||
finally:
|
||||
ep.close()
|
||||
|
||||
def test_fromfd(self):
|
||||
server, client = self._connected_pair()
|
||||
|
||||
|
|
Loading…
Reference in New Issue