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:
R. David Murray 2009-05-31 19:44:27 +00:00
parent a35f4b9915
commit 1855c214d7
2 changed files with 33 additions and 0 deletions

View File

@ -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)

View File

@ -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()