Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 90f7c8e

Browse files
committed
update test, to help reproduce bug in travis
It seems that Travis has something special that makes some test crash pretty bad. Its really hard if not impossible to reproduce, for now I extended the heartbeat frequency of the tests to 2 seconds (to be longer than the maximum wait on the (py)ZMQ bug of missing events). I also used a gevent.Pool to forward exceptions.
1 parent cf3741c commit 90f7c8e

File tree

2 files changed

+56
-55
lines changed

2 files changed

+56
-55
lines changed

tests/test_buffered_channel.py

Lines changed: 40 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,13 @@ def test_close_server_bufchan():
4242
client = zerorpc.ChannelMultiplexer(client_events, ignore_broadcast=True)
4343

4444
client_channel = client.channel()
45-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
45+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
4646
client_bufchan = zerorpc.BufferedChannel(client_hbchan)
4747
client_bufchan.emit('openthat', None)
4848

4949
event = server.recv()
5050
server_channel = server.channel(event)
51-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
51+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
5252
server_bufchan = zerorpc.BufferedChannel(server_hbchan)
5353
server_bufchan.recv()
5454

@@ -74,13 +74,13 @@ def test_close_client_bufchan():
7474
client = zerorpc.ChannelMultiplexer(client_events, ignore_broadcast=True)
7575

7676
client_channel = client.channel()
77-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
77+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
7878
client_bufchan = zerorpc.BufferedChannel(client_hbchan)
7979
client_bufchan.emit('openthat', None)
8080

8181
event = server.recv()
8282
server_channel = server.channel(event)
83-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
83+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
8484
server_bufchan = zerorpc.BufferedChannel(server_hbchan)
8585
server_bufchan.recv()
8686

@@ -106,12 +106,12 @@ def test_heartbeat_can_open_channel_server_close():
106106
client = zerorpc.ChannelMultiplexer(client_events, ignore_broadcast=True)
107107

108108
client_channel = client.channel()
109-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
109+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
110110
client_bufchan = zerorpc.BufferedChannel(client_hbchan)
111111

112112
event = server.recv()
113113
server_channel = server.channel(event)
114-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
114+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
115115
server_bufchan = zerorpc.BufferedChannel(server_hbchan)
116116

117117
gevent.sleep(3)
@@ -136,12 +136,12 @@ def test_heartbeat_can_open_channel_client_close():
136136
client = zerorpc.ChannelMultiplexer(client_events, ignore_broadcast=True)
137137

138138
client_channel = client.channel()
139-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
139+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
140140
client_bufchan = zerorpc.BufferedChannel(client_hbchan)
141141

142142
event = server.recv()
143143
server_channel = server.channel(event)
144-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
144+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
145145
server_bufchan = zerorpc.BufferedChannel(server_hbchan)
146146

147147
gevent.sleep(3)
@@ -166,12 +166,12 @@ def test_do_some_req_rep():
166166
client = zerorpc.ChannelMultiplexer(client_events, ignore_broadcast=True)
167167

168168
client_channel = client.channel()
169-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
169+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
170170
client_bufchan = zerorpc.BufferedChannel(client_hbchan)
171171

172172
event = server.recv()
173173
server_channel = server.channel(event)
174-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
174+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
175175
server_bufchan = zerorpc.BufferedChannel(server_hbchan)
176176

177177
def client_do():
@@ -182,7 +182,8 @@ def client_do():
182182
assert event.args == (x + x * x,)
183183
client_bufchan.close()
184184

185-
client_task = gevent.spawn(client_do)
185+
coro_pool = gevent.pool.Pool()
186+
coro_pool.spawn(client_do)
186187

187188
def server_do():
188189
for x in xrange(20):
@@ -191,10 +192,9 @@ def server_do():
191192
server_bufchan.emit('OK', (sum(event.args),))
192193
server_bufchan.close()
193194

194-
server_task = gevent.spawn(server_do)
195+
coro_pool.spawn(server_do)
195196

196-
server_task.get()
197-
client_task.get()
197+
coro_pool.join()
198198
client.close()
199199
server.close()
200200

@@ -212,7 +212,7 @@ def test_do_some_req_rep_lost_server():
212212
def client_do():
213213
print 'running'
214214
client_channel = client.channel()
215-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
215+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
216216
client_bufchan = zerorpc.BufferedChannel(client_hbchan)
217217
for x in xrange(10):
218218
client_bufchan.emit('add', (x, x * x))
@@ -224,23 +224,23 @@ def client_do():
224224
event = client_bufchan.recv()
225225
client_bufchan.close()
226226

227-
client_task = gevent.spawn(client_do)
227+
coro_pool = gevent.pool.Pool()
228+
coro_pool.spawn(client_do)
228229

229230
def server_do():
230231
event = server.recv()
231232
server_channel = server.channel(event)
232-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
233+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
233234
server_bufchan = zerorpc.BufferedChannel(server_hbchan)
234235
for x in xrange(10):
235236
event = server_bufchan.recv()
236237
assert event.name == 'add'
237238
server_bufchan.emit('OK', (sum(event.args),))
238239
server_bufchan.close()
239240

240-
server_task = gevent.spawn(server_do)
241+
coro_pool.spawn(server_do)
241242

242-
server_task.get()
243-
client_task.get()
243+
coro_pool.join()
244244
client.close()
245245
server.close()
246246

@@ -257,7 +257,7 @@ def test_do_some_req_rep_lost_client():
257257

258258
def client_do():
259259
client_channel = client.channel()
260-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
260+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
261261
client_bufchan = zerorpc.BufferedChannel(client_hbchan)
262262

263263
for x in xrange(10):
@@ -267,12 +267,13 @@ def client_do():
267267
assert event.args == (x + x * x,)
268268
client_bufchan.close()
269269

270-
client_task = gevent.spawn(client_do)
270+
coro_pool = gevent.pool.Pool()
271+
coro_pool.spawn(client_do)
271272

272273
def server_do():
273274
event = server.recv()
274275
server_channel = server.channel(event)
275-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
276+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
276277
server_bufchan = zerorpc.BufferedChannel(server_hbchan)
277278

278279
for x in xrange(10):
@@ -284,10 +285,9 @@ def server_do():
284285
event = server_bufchan.recv()
285286
server_bufchan.close()
286287

287-
server_task = gevent.spawn(server_do)
288+
coro_pool.spawn(server_do)
288289

289-
server_task.get()
290-
client_task.get()
290+
coro_pool.join()
291291
client.close()
292292
server.close()
293293

@@ -304,7 +304,7 @@ def test_do_some_req_rep_client_timeout():
304304

305305
def client_do():
306306
client_channel = client.channel()
307-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
307+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
308308
client_bufchan = zerorpc.BufferedChannel(client_hbchan)
309309

310310
with assert_raises(zerorpc.TimeoutExpired):
@@ -315,12 +315,13 @@ def client_do():
315315
assert event.args == (x,)
316316
client_bufchan.close()
317317

318-
client_task = gevent.spawn(client_do)
318+
coro_pool = gevent.pool.Pool()
319+
coro_pool.spawn(client_do)
319320

320321
def server_do():
321322
event = server.recv()
322323
server_channel = server.channel(event)
323-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
324+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
324325
server_bufchan = zerorpc.BufferedChannel(server_hbchan)
325326

326327
with assert_raises(zerorpc.LostRemote):
@@ -331,10 +332,10 @@ def server_do():
331332
server_bufchan.emit('OK', event.args)
332333
server_bufchan.close()
333334

334-
server_task = gevent.spawn(server_do)
335335

336-
server_task.get()
337-
client_task.get()
336+
coro_pool.spawn(server_do)
337+
338+
coro_pool.join()
338339
client.close()
339340
server.close()
340341

@@ -354,12 +355,12 @@ def test_congestion_control_server_pushing():
354355
client = zerorpc.ChannelMultiplexer(client_events, ignore_broadcast=True)
355356

356357
client_channel = client.channel()
357-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
358+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
358359
client_bufchan = zerorpc.BufferedChannel(client_hbchan)
359360

360361
event = server.recv()
361362
server_channel = server.channel(event)
362-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
363+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
363364
server_bufchan = zerorpc.BufferedChannel(server_hbchan)
364365

365366
def client_do():
@@ -368,7 +369,8 @@ def client_do():
368369
assert event.name == 'coucou'
369370
assert event.args == x
370371

371-
client_task = gevent.spawn(client_do)
372+
coro_pool = gevent.pool.Pool()
373+
coro_pool.spawn(client_do)
372374

373375
def server_do():
374376
with assert_raises(CongestionError):
@@ -383,12 +385,11 @@ def server_do():
383385
for x in xrange(101, 200):
384386
server_bufchan.emit('coucou', x) # block until receiver is ready
385387

386-
server_task = gevent.spawn(server_do)
387388

388-
server_task.get()
389-
client_task.get()
389+
coro_pool.spawn(server_do)
390+
391+
coro_pool.join()
390392
client_bufchan.close()
391393
client.close()
392-
server_task.get()
393394
server_bufchan.close()
394395
server.close()

tests/test_heartbeat.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,12 @@ def test_close_server_hbchan():
4242
client = zerorpc.ChannelMultiplexer(client_events, ignore_broadcast=True)
4343

4444
client_channel = client.channel()
45-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
45+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
4646
client_hbchan.emit('openthat', None)
4747

4848
event = server.recv()
4949
server_channel = server.channel(event)
50-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
50+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
5151
server_hbchan.recv()
5252

5353
gevent.sleep(3)
@@ -72,12 +72,12 @@ def test_close_client_hbchan():
7272
client = zerorpc.ChannelMultiplexer(client_events, ignore_broadcast=True)
7373

7474
client_channel = client.channel()
75-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
75+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
7676
client_hbchan.emit('openthat', None)
7777

7878
event = server.recv()
7979
server_channel = server.channel(event)
80-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
80+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
8181
server_hbchan.recv()
8282

8383
gevent.sleep(3)
@@ -102,11 +102,11 @@ def test_heartbeat_can_open_channel_server_close():
102102
client = zerorpc.ChannelMultiplexer(client_events, ignore_broadcast=True)
103103

104104
client_channel = client.channel()
105-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
105+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
106106

107107
event = server.recv()
108108
server_channel = server.channel(event)
109-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
109+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
110110

111111
gevent.sleep(3)
112112
print 'CLOSE SERVER SOCKET!!!'
@@ -130,11 +130,11 @@ def test_heartbeat_can_open_channel_client_close():
130130
client = zerorpc.ChannelMultiplexer(client_events, ignore_broadcast=True)
131131

132132
client_channel = client.channel()
133-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
133+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
134134

135135
event = server.recv()
136136
server_channel = server.channel(event)
137-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
137+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
138138

139139
gevent.sleep(3)
140140
print 'CLOSE CLIENT SOCKET!!!'
@@ -158,11 +158,11 @@ def test_do_some_req_rep():
158158
client = zerorpc.ChannelMultiplexer(client_events, ignore_broadcast=True)
159159

160160
client_channel = client.channel()
161-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
161+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
162162

163163
event = server.recv()
164164
server_channel = server.channel(event)
165-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
165+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
166166

167167
def client_do():
168168
for x in xrange(20):
@@ -202,7 +202,7 @@ def test_do_some_req_rep_lost_server():
202202
def client_do():
203203
print 'running'
204204
client_channel = client.channel()
205-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
205+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
206206
for x in xrange(10):
207207
client_hbchan.emit('add', (x, x * x))
208208
event = client_hbchan.recv()
@@ -218,7 +218,7 @@ def client_do():
218218
def server_do():
219219
event = server.recv()
220220
server_channel = server.channel(event)
221-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
221+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
222222
for x in xrange(10):
223223
event = server_hbchan.recv()
224224
assert event.name == 'add'
@@ -245,7 +245,7 @@ def test_do_some_req_rep_lost_client():
245245

246246
def client_do():
247247
client_channel = client.channel()
248-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
248+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
249249

250250
for x in xrange(10):
251251
client_hbchan.emit('add', (x, x * x))
@@ -259,7 +259,7 @@ def client_do():
259259
def server_do():
260260
event = server.recv()
261261
server_channel = server.channel(event)
262-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
262+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
263263

264264
for x in xrange(10):
265265
event = server_hbchan.recv()
@@ -290,7 +290,7 @@ def test_do_some_req_rep_client_timeout():
290290

291291
def client_do():
292292
client_channel = client.channel()
293-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=1)
293+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=2)
294294

295295
with assert_raises(zerorpc.TimeoutExpired):
296296
for x in xrange(10):
@@ -305,7 +305,7 @@ def client_do():
305305
def server_do():
306306
event = server.recv()
307307
server_channel = server.channel(event)
308-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=1)
308+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=2)
309309

310310
with assert_raises(zerorpc.LostRemote):
311311
for x in xrange(20):

0 commit comments

Comments
 (0)