PATH:
usr
/
local
/
lib64
/
python3.9
/
site-packages
/
psutil
/
tests
/
__pycache__
a ���in� � @ 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�e�D� dk�r�G d5d6� d6eC�ZEG d7d8� d8e4�ZFdS )9�Tests 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 )��TestProcessr c O sF | j |i |��}zt�|j�W S tjy@ | �|j� � Y n0 d S �N)�spawn_testproc�psutil�Process�pid� NoSuchProcessZ assertPidGone)�self�args�kwargs�sproc� r? �E/usr/local/lib64/python3.9/site-packages/psutil/tests/test_process.py�spawn_psprocS s zTestProcess.spawn_psprocc C sN t �� }|jt�� ksJ �t�t�� d|_W d � n1 s@0 Y d S )N�! )r7 r8 r9 �os�getpidr, �raises�AttributeError�r; �pr? r? r@ �test_pid] s zTestProcess.test_pidc C sJ | � � }|�� |�� }tr,|tjks<J �n|tj ks<J �| �|� d S r5 )rA �kill�waitr �signal�SIGTERM�SIGKILL�assertProcessGone�r; rH �coder? r? r@ � test_killc s zTestProcess.test_killc C sJ | � � }|�� |�� }tr,|tjks<J �n|tj ks<J �| �|� d S r5 )rA � terminaterK r rL rM rO rP r? r? r@ �test_terminatem s zTestProcess.test_terminatec C sX t r tjntj}| �� }|�|� |�� }tr<||ksJJ �n|| ksJJ �| �|� d S r5 ) r rL rN rM rA �send_signalrK r rO )r; �sigrH rQ r? r? r@ �test_send_signalw s zTestProcess.test_send_signalz not POSIX��reasonc C s� t j}| �� }tjdttjd�d��F t� t j�� |�|� W d � n1 sR0 Y W d � n1 sp0 Y | �� }tjdttj d�d��F t� t j�� |�|� W d � n1 s�0 Y W d � n1 s�0 Y d S )Nzpsutil.os.kill� ��side_effect)rL rM rA r* �patch�OSError�errnoZESRCHr, rE r7 r: rU �EPERM�AccessDenied)r; rV rH r? r? r@ �test_send_signal_mocked� s �F�z#TestProcess.test_send_signal_mockedc C s� t ddg}| �|�}|�� }|dks(J �| �|� t ddg}| j|tjd�}|�� }|dks`J �| �|� t ddg}| �|�}|�� }|dks�J �| �|� t dd g}| �|�}|�� }|dks�J �| �|� d S ) N�-c�passr z1 / 0)�stderr� zimport sys; sys.exit(5);� zimport os; os._exit(5);)r! rA rK rO � subprocess�PIPE)r; �cmdrH rQ r? r? r@ �test_wait_exited� s( zTestProcess.test_wait_exitedzfails on NETBSDc C s� | � � }tr�|�tj� t�tj�� |j dd� W d � n1 sF0 Y |�tj � t�tj�� |j dd� W d � n1 s�0 Y |�tj� |� � tj ks�J �|� � tj ks�J �n�|�� t�tj�� |j dd� W d � n1 �s0 Y |� � t�tj�� |j dd� W d � n1 �sD0 Y |�� |� � tjk�sjJ �|� � tjk�s~J �d S )N���MbP?)�timeout)rA r rU rL �SIGSTOPr, rE r7 �TimeoutExpiredrK �SIGCONTrM �suspend�resumerS rG r? r? r@ �test_wait_stopped� s( **,,zTestProcess.test_wait_stoppedc C s� | � � \}}t�tj�� |�d� W d � n1 s80 Y t�tj�� |�d� W d � n1 sn0 Y |�� |�� |�� }|�� }tr�|tj ks�J �|d u s�J �n|tj ks�J �|tj ks�J �d S )N�{�G�z�?) �spawn_children_pairr, rE r7 ro rK rS r rL rM )r; �child� grandchildZ child_retZgrandchild_retr? r? r@ �test_wait_non_children� s ((z"TestProcess.test_wait_non_childrenc C s� | � � }|�� t�tj�� |�d� W d � n1 s<0 Y t�tj�� |�d� W d � n1 sr0 Y t�t�� |�d� W d � n1 s�0 Y d S )Nrt r ���)rA �namer, rE r7 ro rK � ValueErrorrG r? r? r@ �test_wait_timeout� s ((zTestProcess.test_wait_timeoutc C s� | � � }t�tj�� |�d� W d � n1 s40 Y |�� t�� t }t�� |k r�z|�d�}W q�W qR tjy� Y qR0 qR| � d��t r�|tj ks�J �n|tj ks�J �| �|� d S )Nr rm )rA r, rE r7 ro rK rJ �timer �failr rL rN rM rO )r; rH Zstop_atrQ r? r? r@ �test_wait_timeout_nonblocking� s ( z)TestProcess.test_wait_timeout_nonblockingc C s� t �� }|jdd� |jdd� td�D ]*}|jd d�}t|t�sFJ �|dks(J �q(t�t�� |jdd� W d � n1 s�0 Y d S )Nrl )�interval�d � ry ) r7 r8 �cpu_percent�range� isinstance�floatr, rE r{ )r; rH �_�percentr? r? r@ �test_cpu_percent� s zTestProcess.test_cpu_percentc C sH t jdd d��&}t�� �� |js&J �W d � n1 s:0 Y d S )Nzpsutil.cpu_count)Zreturn_value)r* r] r7 r8 r� �called)r; �mr? r? r@ �test_cpu_percent_numcpus_none s z)TestProcess.test_cpu_percent_numcpus_nonezQEMU user not supportedc C s� t �� �� }|jdksJ |��|jdks0J |��|jdksBJ |��|jdksTJ |��trj|jdksjJ |��|j D ]}t �dt �t ||��� qpd S )Nr� z%H:%M:%S)r7 r8 � cpu_times�user�system� children_user�children_systemr Ziowait�_fieldsr} �strftime� localtime�getattr)r; �timesrz r? r? r@ �test_cpu_times s zTestProcess.test_cpu_timesc C s� t �� �� d d� \}}t�� d d� \}}t||g�t||g� dkrZ| �d||f ��t||g�t||g� dkr�| �d||f ��d S )N� 皙�����?zexpected: %s, found: %s)r7 r8 r� rC r� �max�minr~ )r; � user_timeZkernel_time�utimeZktimer? r? r@ �test_cpu_times_2 s zTestProcess.test_cpu_times_2z not supportedc C sP t �� }|�� }|dksJ �t �� dkr4|dks4J �|�� tt �� �v sLJ �d S �Nr rf )r7 r8 Zcpu_num� cpu_countr� )r; rH �numr? r? r@ �test_cpu_num) s zTestProcess.test_cpu_numc C sZ | � � }t�� }|�� }t|| �}|dkr@| �d|||f ��t�dt�|�� �� d S )Nr� z'expected: %s, found: %s, difference: %sz%Y %m %d %H:%M:%S)rA r} �create_time�absr~ r� r� )r; rH �nowr� � differencer? r? r@ �test_create_time2 s ��zTestProcess.test_create_timez POSIX onlyc C sV t �� �� }|d urRztj�td��}W n tyD t� d��Y n0 ||ksRJ �d S )N�ttyzcan't rely on `tty` CLI) r7 r8 �terminalrC �path�realpathr0 �RuntimeErrorr, �skip)r; r� r� r? r? r@ � test_terminalD s zTestProcess.test_terminal)Zonly_ifc C s� t �� }|�� }ttd��}|�� W d � n1 s80 Y |�� }ts�ts�|j|jksbJ �|j |j ksrJ �t r�|j|jks�J �|j|jks�J �n |j |j ks�J �|j|jks�J �|�� }t| �� d��8}tr�|�tdd d�� n|�dd � W d � n1 �s0 Y |�� }|j |j k�s2J �|j|jk�sDJ �|j|jk�sVJ �|j |j k�shJ �t �r�|j|jk�s�J �|j|jk�s�J �tt|��D ]>}t�r�|dk�r��q�|| dk�s�J �|| dk�s�J ��q�d S )N�rb�wb�xi@B �asciir� r )r7 r8 Zio_counters�openr! �readr r Z read_countZwrite_countr Z read_charsZwrite_chars� read_bytes�write_bytes� get_testfnr �write�bytesr� �len)r; rH Zio1�fZio2�ir? r? r@ �test_io_countersP s>