3
�^gn� � @ s d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddlZddl
Z
ddlZddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd lmZ dd
lmZ ddlmZ ddlmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlm Z ddlm!Z! ddl"m#Z# ddl"m$Z$ ddl"m%Z% ddl"m&Z& ddl"m'Z' ddl"m(Z( ddl"m)Z) ddl"m*Z* ddl"m+Z+ ddl"m,Z, ddl"m-Z- ddl"m.Z. ddl"m/Z/ dd l"m0Z0 dd!l"m1Z1 dd"l"m2Z2 dd#l"m3Z3 dd$l"m4Z4 dd%l"m5Z5 dd&l"m6Z6 dd'l"m7Z7 dd(l"m8Z8 dd)l"m9Z9 dd*l"m:Z: dd+l"m;Z; dd,l"m<Z< dd-l"m=Z= dd.l"m>Z> dd/l"m?Z? dd0l"m@Z@ dd1l"mAZA dd2l"mBZB G d3d4� d4e4�ZCe�r�ejD� dk�r�G d5d6� d6eC�ZEG d7d8� d8e4�ZFdS )9zTests for psutil.Process class.� N)�AIX)�BSD)�LINUX)�MACOS)�NETBSD)�OPENBSD)�OSX)�POSIX)�SUNOS)�WINDOWS)� open_text)�PY3)�FileNotFoundError)�long)�redirect_stderr)�super)�APPVEYOR)�
CI_TESTING)�GITHUB_ACTIONS)�GLOBAL_TIMEOUT)�HAS_CPU_AFFINITY)�HAS_ENVIRON)�
HAS_IONICE)�HAS_MEMORY_MAPS)�HAS_PROC_CPU_NUM)�HAS_PROC_IO_COUNTERS)�
HAS_RLIMIT)�HAS_THREADS)�MACOS_11PLUS)�PYPY)�
PYTHON_EXE)�PYTHON_EXE_ENV)� QEMU_USER)�PsutilTestCase)�
ThreadTask)�
call_until)�copyload_shared_lib)�create_c_exe)�
create_py_exe)�mock)�process_namespace)�pytest)�
reap_children)�retry_on_failure)�sh)�skip_on_access_denied)�skip_on_not_implemented)�wait_for_pidc @ s e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� Ze j
je dd
�dd� �Z
dd� Ze j
jedd
�dd� �Zdd� Zdd� Zdd� Zdd� Zdd� Ze j
jedd
�d d!� �Ze j
jedd
�d"d#� �Ze j
je d$d
�d%d&� �Zd'd(� Ze j
je d)d
�d*d+� �Ze j
je d$d
�eed,�d-d.� ��Z e j
je! d$d
�e j
je d/d
�d0d1� ��Z"e j
je! d$d
�e j
je# d2d
�d3d4� ��Z$e j
je% d$d
�d5d6� �Z&e j
je% d$d
�d7d8� �Z'e j
je% d$d
�d9d:� �Z(e j
je% d$d
�d;d<� �Z)e j
je% d$d
�d=d>� �Z*d?d@� Z+e j
je# dAd
�dBdC� �Z,e j
je- d$d
�dDdE� �Z.e/� e0e1d,�e j
je- d$d
�dFdG� ���Z2e/� dHdI� �Z3dJdK� Z4e j
je5 d$d
�dLdM� �Z6e j
je5 d$d
�dNdO� �Z7dPdQ� Z8dRdS� Z9e j
jedd
�dTdU� �Z:dVdW� Z;e j
je<dXd
�dYdZ� �Z=d[d\� Z>e j
je<�ped]d
�e j
jed^d
�d_d`� ��Z?e j
je@dad
�e j
jeAdbd
�e j
je<dXd
�e j
jedcd
�ddde� ����ZBe j
je d)d
�dfdg� �ZCe j
je d)d
�dhdi� �ZDdjdk� ZEe j
jedd
�dldm� �ZFdndo� ZGdpdq� ZHdrds� ZIe j
jeJ d$d
�dtdu� �ZKe j
jeJ d$d
�dvdw� �ZLe j
jeJ d$d
�dxdy� �ZMe j
jeNdzd
�e j
jeOd{d
�d|d}� ��ZPe j
jeNdzd
�e j
jeOd{d
�d~d� ��ZQe j
je d)d
�d�d�� �ZReed,�e j
jeS�p�ed�d
�d�d�� ��ZTd�d�� ZUd�d�� ZVd�d�� ZWe j
jedd
�e/� d�d�� ��ZXd�d�� ZYd�d�� ZZd�d�� Z[d�d�� Z\d�d�� Z]d�d�� Z^d�d�� Z_d�d�� Z`d�d�� Zad�d�� Zbd�d�� Zce j
je d)d
�d�d�� �Zde j
je d)d
�d�d�� �Zee j
je d)d
�d�d�� �Zfd�d�� Zgd�d�� Zhe j
jei d$d
�d�d�� �Zje j
jei d$d
�e j
je d)d
�e j
jekd�d
�e j
jed�d
�d�d�� ����Zld�S )��TestProcesszTests for psutil.Process class.c O sB | j ||�}ytj|j�S tjk
r< | j|j� � Y nX d S )N)�spawn_testproc�psutil�Process�pid�
NoSuchProcessZ
assertPidGone)�self�args�kwargs�sproc� r< |