Issue #6419: Fix a test_kqueue failure on some BSD flavors.

This commit is contained in:
Charles-Francois Natali 2013-03-31 20:35:59 +02:00
parent 56bb8b9bdc
commit e4059462f2
1 changed files with 13 additions and 22 deletions

View File

@ -96,11 +96,6 @@ class TestKQueue(unittest.TestCase):
pass # FreeBSD doesn't raise an exception here pass # FreeBSD doesn't raise an exception here
server, addr = serverSocket.accept() server, addr = serverSocket.accept()
if sys.platform.startswith("darwin"):
flags = select.KQ_EV_ADD | select.KQ_EV_ENABLE
else:
flags = 0
kq = select.kqueue() kq = select.kqueue()
kq2 = select.kqueue.fromfd(kq.fileno()) kq2 = select.kqueue.fromfd(kq.fileno())
@ -122,11 +117,10 @@ class TestKQueue(unittest.TestCase):
kq2.control([ev], 0) kq2.control([ev], 0)
events = kq.control(None, 4, 1) events = kq.control(None, 4, 1)
events = [(e.ident, e.filter, e.flags) for e in events] events = set((e.ident, e.filter) for e in events)
events.sort() self.assertEqual(events, set([
self.assertEqual(events, [ (client.fileno(), select.KQ_FILTER_WRITE),
(client.fileno(), select.KQ_FILTER_WRITE, flags), (server.fileno(), select.KQ_FILTER_WRITE)]))
(server.fileno(), select.KQ_FILTER_WRITE, flags)])
client.send("Hello!") client.send("Hello!")
server.send("world!!!") server.send("world!!!")
@ -140,14 +134,12 @@ class TestKQueue(unittest.TestCase):
else: else:
self.fail('timeout waiting for event notifications') self.fail('timeout waiting for event notifications')
events = [(e.ident, e.filter, e.flags) for e in events] events = set((e.ident, e.filter) for e in events)
events.sort() self.assertEqual(events, set([
(client.fileno(), select.KQ_FILTER_WRITE),
self.assertEqual(events, [ (client.fileno(), select.KQ_FILTER_READ),
(client.fileno(), select.KQ_FILTER_WRITE, flags), (server.fileno(), select.KQ_FILTER_WRITE),
(client.fileno(), select.KQ_FILTER_READ, flags), (server.fileno(), select.KQ_FILTER_READ)]))
(server.fileno(), select.KQ_FILTER_WRITE, flags),
(server.fileno(), select.KQ_FILTER_READ, flags)])
# Remove completely client, and server read part # Remove completely client, and server read part
ev = select.kevent(client.fileno(), ev = select.kevent(client.fileno(),
@ -164,10 +156,9 @@ class TestKQueue(unittest.TestCase):
kq.control([ev], 0, 0) kq.control([ev], 0, 0)
events = kq.control([], 4, 0.99) events = kq.control([], 4, 0.99)
events = [(e.ident, e.filter, e.flags) for e in events] events = set((e.ident, e.filter) for e in events)
events.sort() self.assertEqual(events, set([
self.assertEqual(events, [ (server.fileno(), select.KQ_FILTER_WRITE)]))
(server.fileno(), select.KQ_FILTER_WRITE, flags)])
client.close() client.close()
server.close() server.close()