pyo3/pytests/tests/test_objstore.py

26 lines
593 B
Python
Raw Normal View History

2020-03-26 05:50:00 +00:00
import gc
import platform
import sys
import pytest
from pyo3_pytests.objstore import ObjStore
2020-03-26 05:50:00 +00:00
def test_objstore_doesnot_leak_memory():
N = 10000
message = b'\\(-"-;) Praying that memory leak would not happen..'
2021-07-18 18:30:30 +00:00
# PyPy does not have sys.getrefcount, provide a no-op lambda and don't
# check refcount on PyPy
getrefcount = getattr(sys, "getrefcount", lambda obj: 0)
before = getrefcount(message)
2020-03-26 05:50:00 +00:00
store = ObjStore()
for _ in range(N):
store.push(message)
del store
gc.collect()
2021-07-18 18:30:30 +00:00
after = getrefcount(message)
2020-03-26 05:50:00 +00:00
assert after - before == 0