summaryrefslogtreecommitdiff
path: root/tests/test__refcount.py
diff options
context:
space:
mode:
authorSergey Shepelev <temotor@gmail.com>2017-01-05 05:08:38 +0300
committerSergey Shepelev <temotor@gmail.com>2017-01-05 05:39:04 +0300
commit60e54997f3bb973e408aa6d758befac1a98d60f7 (patch)
tree5d9bb51285928949427b90100bd7256831bbb027 /tests/test__refcount.py
parent461348f9a8459724be87c281eea4e0408138a82c (diff)
downloadeventlet-next.tar.gz
tests cleanup, CI with Python 3.6next
Diffstat (limited to 'tests/test__refcount.py')
-rw-r--r--tests/test__refcount.py65
1 files changed, 29 insertions, 36 deletions
diff --git a/tests/test__refcount.py b/tests/test__refcount.py
index 6ccfed7..1090a1f 100644
--- a/tests/test__refcount.py
+++ b/tests/test__refcount.py
@@ -2,78 +2,71 @@
are not leaked by the hub.
"""
import gc
-from pprint import pformat
+import pprint
+import sys
import weakref
-from eventlet.support import clear_sys_exc_info
+import eventlet
from eventlet.green import socket
-from eventlet.green.thread import start_new_thread
-from eventlet.green.time import sleep
-
-SOCKET_TIMEOUT = 0.1
-def init_server():
- s = socket.socket()
- s.settimeout(SOCKET_TIMEOUT)
- s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- s.bind(('localhost', 0))
- s.listen(5)
- return s, s.getsockname()[1]
+SOCKET_TIMEOUT = 0.1
def handle_request(s, raise_on_timeout):
try:
conn, address = s.accept()
except socket.timeout:
+ print('handle_request: server accept timeout')
if raise_on_timeout:
raise
else:
return
- # print('handle_request - accepted')
+ print('handle_request: accepted')
res = conn.recv(100)
assert res == b'hello', repr(res)
- # print('handle_request - recvd %r' % res)
- res = conn.send(b'bye')
- # print('handle_request - sent %r' % res)
- # print('handle_request - conn refcount: %s' % sys.getrefcount(conn))
- # conn.close()
+ # print('handle_request: recvd %r' % res)
+ res = conn.sendall(b'bye')
+ # print('handle_request: sent %r' % res)
+ # print('handle_request: conn refcount: %s' % sys.getrefcount(conn))
-def make_request(port):
+def make_request(addr):
# print('make_request')
- s = socket.socket()
- s.connect(('localhost', port))
+ s = eventlet.connect(addr)
# print('make_request - connected')
- res = s.send(b'hello')
+ res = s.sendall(b'hello')
# print('make_request - sent %s' % res)
res = s.recv(100)
assert res == b'bye', repr(res)
# print('make_request - recvd %r' % res)
- # s.close()
def run_interaction(run_client):
- s, port = init_server()
- start_new_thread(handle_request, (s, run_client))
+ s = eventlet.listen(('127.0.0.1', 0))
+ s.settimeout(SOCKET_TIMEOUT)
+ addr = s.getsockname()
+ print('run_interaction: addr:', addr)
+ eventlet.spawn(handle_request, s, run_client)
if run_client:
- start_new_thread(make_request, (port,))
- sleep(0.1 + SOCKET_TIMEOUT)
- # print(sys.getrefcount(s.fd))
- # s.close()
+ eventlet.spawn(make_request, addr)
+ eventlet.sleep(0.1 + SOCKET_TIMEOUT)
+ print('run_interaction: refcount(s.fd)', sys.getrefcount(s.fd))
return weakref.ref(s.fd)
def run_and_check(run_client):
w = run_interaction(run_client=run_client)
- clear_sys_exc_info()
+ # clear_sys_exc_info()
gc.collect()
- if w():
- print(pformat(gc.get_referrers(w())))
- for x in gc.get_referrers(w()):
- print(pformat(x))
+ fd = w()
+ print('run_and_check: weakref fd:', fd)
+ if fd:
+ print(pprint.pformat(gc.get_referrers(fd)))
+ for x in gc.get_referrers(fd):
+ print(pprint.pformat(x))
for y in gc.get_referrers(x):
- print('- {0}'.format(pformat(y)))
+ print('- {0}'.format(pprint.pformat(y)))
raise AssertionError('server should be dead by now')