MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_queue_event

Method test_queue_event

Lib/test/test_kqueue.py:113–192  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

111
112
113 def test_queue_event(self):
114 serverSocket = socket.create_server(('127.0.0.1', 0))
115 client = socket.socket()
116 client.setblocking(False)
117 try:
118 client.connect(('127.0.0.1', serverSocket.getsockname()[1]))
119 except OSError as e:
120 self.assertEqual(e.args[0], errno.EINPROGRESS)
121 else:
122 #raise AssertionError("Connect should have raised EINPROGRESS")
123 pass # FreeBSD doesn't raise an exception here
124 server, addr = serverSocket.accept()
125
126 kq = select.kqueue()
127 kq2 = select.kqueue.fromfd(kq.fileno())
128
129 ev = select.kevent(server.fileno(),
130 select.KQ_FILTER_WRITE,
131 select.KQ_EV_ADD | select.KQ_EV_ENABLE)
132 kq.control([ev], 0)
133 ev = select.kevent(server.fileno(),
134 select.KQ_FILTER_READ,
135 select.KQ_EV_ADD | select.KQ_EV_ENABLE)
136 kq.control([ev], 0)
137 ev = select.kevent(client.fileno(),
138 select.KQ_FILTER_WRITE,
139 select.KQ_EV_ADD | select.KQ_EV_ENABLE)
140 kq2.control([ev], 0)
141 ev = select.kevent(client.fileno(),
142 select.KQ_FILTER_READ,
143 select.KQ_EV_ADD | select.KQ_EV_ENABLE)
144 kq2.control([ev], 0)
145
146 events = kq.control(None, 4, 1)
147 events = set((e.ident, e.filter) for e in events)
148 self.assertEqual(events, set([
149 (client.fileno(), select.KQ_FILTER_WRITE),
150 (server.fileno(), select.KQ_FILTER_WRITE)]))
151
152 client.send(b"Hello!")
153 server.send(b"world!!!")
154
155 # We may need to call it several times
156 for i in range(10):
157 events = kq.control(None, 4, 1)
158 if len(events) == 4:
159 break
160 time.sleep(1.0)
161 else:
162 self.fail('timeout waiting for event notifications')
163
164 events = set((e.ident, e.filter) for e in events)
165 self.assertEqual(events, set([
166 (client.fileno(), select.KQ_FILTER_WRITE),
167 (client.fileno(), select.KQ_FILTER_READ),
168 (server.fileno(), select.KQ_FILTER_WRITE),
169 (server.fileno(), select.KQ_FILTER_READ)]))
170

Callers

nothing calls this directly

Calls 15

setFunction · 0.85
lenFunction · 0.85
socketMethod · 0.80
fromfdMethod · 0.80
create_serverMethod · 0.45
setblockingMethod · 0.45
connectMethod · 0.45
getsocknameMethod · 0.45
assertEqualMethod · 0.45
acceptMethod · 0.45
filenoMethod · 0.45
sendMethod · 0.45

Tested by

no test coverage detected