I am using pytest, but I would like to have a decorator that could set a maximum memory usage per test. Similar to this question which was answered with,
@pytest.mark.timeout(300)
def test_foo():
pass
I want,
@pytest.mark.maxmem(300)
def test_foo():
pass
EDIT:
I tried,
>>> import os, psutil
>>> import numpy as np
>>> process = psutil.Process(os.getpid())
>>> process.memory_info().rss/1e9
0.01978368
>>> def f():
... x = np.arange(int(1e9))
...
>>> process.memory_info().rss/1e9
0.01982464
>>> f()
>>> process.memory_info().rss/1e9
0.019832832
Which doesn't catch the memory allocation in the function.