diff options
| author | Sergey Shepelev <temotor@gmail.com> | 2017-01-17 15:10:14 +0500 |
|---|---|---|
| committer | Sergey Shepelev <temotor@gmail.com> | 2017-01-17 22:45:57 +0500 |
| commit | deec3375238eee924420ce198e8fec438d59b246 (patch) | |
| tree | 5eca225a4fcee630802e0212fc2f495db46c81d3 | |
| parent | a41a74902e4723dc5a85c860961a1429e55f0944 (diff) | |
| download | eventlet-green-dns-test.tar.gz | |
tests: more concurrency in socket_resolve_greengreen-dns-test
Hope it would fix Travis failures.
| -rw-r--r-- | tests/isolated/socket_resolve_green.py | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/tests/isolated/socket_resolve_green.py b/tests/isolated/socket_resolve_green.py index 636f0ae..b09e7a3 100644 --- a/tests/isolated/socket_resolve_green.py +++ b/tests/isolated/socket_resolve_green.py @@ -8,18 +8,18 @@ if __name__ == '__main__': import dns.message import dns.query + n = 10 + delay = 0.01 + addr_map = {'test-host{0}.'.format(i): '0.0.1.{0}'.format(i) for i in range(n)} + def slow_udp(q, *a, **kw): - addr = '0.0.0.1' - if 'host2' in str(q.question): - addr = '0.0.0.2' - if 'host3' in str(q.question): - addr = '0.0.0.3' + addr = addr_map[q.question[0].name.to_text().decode()] r = dns.message.make_response(q) r.index = None r.flags = 256 r.answer.append(dns.rrset.from_text(str(q.question[0].name), 60, 'IN', 'A', addr)) r.time = 0.001 - eventlet.sleep(0.1) + eventlet.sleep(delay) return r dns.query.udp = slow_udp @@ -31,15 +31,13 @@ if __name__ == '__main__': except socket.error as e: print('name: {0} error: {1}'.format(name, e)) - pool = eventlet.GreenPool() + pool = eventlet.GreenPool(size=n + 1) t1 = time.time() - pool.spawn(fun, 'eventlet-test-host1.') - pool.spawn(fun, 'eventlet-test-host2.') - pool.spawn(fun, 'eventlet-test-host3.') + for name in addr_map: + pool.spawn(fun, name) pool.waitall() td = time.time() - t1 - assert 0.1 <= td < 0.3, 'Resolve time expected: ~0.1s, real: {0:.3f}'.format(td) - assert results.get('eventlet-test-host1.') == '0.0.0.1' - assert results.get('eventlet-test-host2.') == '0.0.0.2' - assert results.get('eventlet-test-host3.') == '0.0.0.3' + fail_msg = 'Resolve time expected: ~{0:.3f}s, real: {1:.3f}'.format(delay, td) + assert delay <= td < delay * n, fail_msg + assert addr_map == results print('pass') |
