U
|f; @ sZ d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl Zddlm
Z
ddlmZ ddlmZ ddlm
Z
ddlmZ dd lmZ dd
lmZ ddlmZ ddlmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddlm!Z! ddlm"Z" ddlm#Z# ddlm$Z$ ddlm%Z% ddlm&Z& ddlm'Z' dd lm(Z( ej)j*Z*e+ Z,d!Z-d"d# Z.G d$d% d%e!Z/G d&d' d'e/Z0e1e d(G d)d* d*e!Z2G d+d, d,e!Z3e4d-krVdd.l5m6Z6 dd/l5m7Z7 e rNe6d0e8 d1 e9d e7e8 dS )2a Tests for detecting function memory leaks (typically the ones
implemented in C). It does so by calling a function many times and
checking whether process memory usage keeps increasing between
calls or over time.
Note that this may produce false positives (especially on Windows
for some reason).
PyPy appears to be completely unstable for this framework, probably
because of how its JIT handles memory, so tests are skipped.
)print_functionN)LINUX)MACOS)OPENBSD)POSIX)SUNOS)WINDOWS)ProcessLookupError)super)HAS_CPU_AFFINITY)HAS_CPU_FREQ)HAS_ENVIRON)
HAS_IONICE)HAS_MEMORY_MAPS)HAS_NET_IO_COUNTERS)HAS_PROC_CPU_NUM)HAS_PROC_IO_COUNTERS)
HAS_RLIMIT)HAS_SENSORS_BATTERY)HAS_SENSORS_FANS)HAS_SENSORS_TEMPERATURES) QEMU_USER)TestMemoryLeak)create_sockets)
get_testfn)process_namespace)skip_on_access_denied)spawn_testproc)system_namespace) terminate c C s dd } | S )zsDecorator for those Linux functions which are implemented in pure
Python, and which we want to run faster.
c s t fdd}|S )Nc sJ t r6| jj}zt| j_ | f||W S || j_X n | f||S d S N)r __class__times FEW_TIMES)selfargskwargsbeforefun M/opt/alt/python38/lib64/python3.8/site-packages/psutil/tests/test_memleaks.pywrapperE s z5fewtimes_if_linux.