HEX
Server: LiteSpeed
System: Linux cp4.porkbun.com 5.14.0-611.20.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jan 14 06:35:04 EST 2026 x86_64
User: vxblllubpkafjsjw (1110)
PHP: 8.4.19
Disabled: NONE
Upload Files
File: //usr/local/lib64/python3.9/site-packages/psutil/tests/__pycache__/test_posix.cpython-39.pyc
a

��hD�@s�dZddlZddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddlm
Z
ddlmZddlmZddlm
Z
dd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZe
�rNddlZddlZddlm Z d,dd�Z!dd�Z"dd�Z#dd�Z$d d!�Z%d"d#�Z&ej'j(e
d$d%�Gd&d'�d'e��Z)ej'j(e
d$d%�Gd(d)�d)e��Z*ej'j(e
d$d%�Gd*d+�d+e��Z+dS)-zPOSIX specific tests.�N)�AIX)�BSD)�LINUX)�MACOS)�OPENBSD)�POSIX)�SUNOS)�AARCH64)�HAS_NET_IO_COUNTERS)�
PYTHON_EXE)�	QEMU_USER)�PsutilTestCase)�mock)�pytest)�retry_on_failure)�sh)�skip_on_access_denied)�spawn_testproc)�	terminate)�which)�getpagesizec	Cs�dg}tr|�d�|dur0|�dt|�g�nts8trD|�d�n
|�d�tr^|�dd�}|�d	|g�t|�}tr�|��n|��d
d�}g}|D]6}|�	�}zt
|�}Wnty�Yn0|�|�q�|dur�|S|dSdS)zwWrapper for calling the ps command with a little bit of cross-platform
    support for a narrow range of features.
    �psz--no-headersNz-pz-A�ax�startZstimez-o�r)r�append�extend�strrr�replacer�
splitlines�strip�int�
ValueError)�fmt�pid�cmd�output�
all_output�line�r)�C/usr/local/lib64/python3.9/site-packages/psutil/tests/test_posix.pyr/s0

rcCs>d}trd}t||���}tr6d|dvs.J�|dS|dS)N�commandZcommz
/bin/qemu-rr)rr�splitr)r$�fieldr+r)r)r*�ps_namegsr.cCs0d}tstrd}t||�}t�dd|�}|��S)Nr+�argsz\(python.*?\)$�)rrr�re�subr )r$r-�outr)r)r*�ps_argsrs
r4cCsd}trd}t||�S)NZrssZrssize�rr�r$r-r)r)r*�ps_rss|sr7cCsd}trd}t||�S)NZvszZvsizer5r6r)r)r*�ps_vsz�sr8c	
Cs�ztd|���}Wn@tyT}z(dt|���vr>t�d���WYd}~n
d}~00|�d�d}|��}t|d�d}t|d�d}t|d�d}t	|d	�
d
d��}||||fS)Nzdf -k %szdevice busyzdf returned EBUSY�
r�����%r0)rr �RuntimeErrorr�lowerr�skipr,r!�floatr)	�devicer3�errr(�fields�	sys_total�sys_used�sys_free�sys_percentr)r)r*�df�s
rJz
POSIX only��reasonc@s�eZdZdZedd��Zedd��Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Ze�e
�dd���Ze�e
�dd���Zdd�Zdd�Zdd�Zdd�Zejjep�edd�dd��Zd d!�Ze
�d"d#��Zejjed$d�ejjed%d�d&d'���Zd(S))�TestProcesszBCompare psutil results against 'ps' command line utility (mainly).cCsttddgtjd�j|_dS)Nz-Ez-O)�stdin)rr�
subprocess�PIPEr$��clsr)r)r*�
setUpClass�s�zTestProcess.setUpClasscCst|j�dS�N)rr$rQr)r)r*�
tearDownClass�szTestProcess.tearDownClasscCs,td|j�}t�|j���}||ks(J�dS)N�ppid)rr$�psutil�ProcessrV)�selfZppid_psZppid_psutilr)r)r*�	test_ppid�szTestProcess.test_ppidcCs.td|j�}t�|j���j}||ks*J�dS)N�uid)rr$rWrX�uids�real)rYZuid_psZ
uid_psutilr)r)r*�test_uid�szTestProcess.test_uidcCs.td|j�}t�|j���j}||ks*J�dS)NZrgid)rr$rWrX�gidsr])rYZgid_psZ
gid_psutilr)r)r*�test_gid�szTestProcess.test_gidcCs,td|j�}t�|j���}||ks(J�dS)N�user)rr$rWrX�username)rYZusername_psZusername_psutilr)r)r*�
test_username�szTestProcess.test_usernamecCs^t��}tjdtd��4}|��t|��j�ks2J�|j	s<J�Wd�n1sP0YdS)Nzpsutil.pwd.getpwuid�Zside_effect)
rWrXr�patch�KeyErrorrbrr\r]�called)rY�pZfunr)r)r*�test_username_no_resolution�sz'TestProcess.test_username_no_resolutioncCs<t�d�t|j�}t�|j���dd}||ks8J�dS)N皙�����?rr:)�time�sleepr7r$rWrX�memory_info)rYZrss_psZ
rss_psutilr)r)r*�test_rss_memory�s

zTestProcess.test_rss_memorycCs<t�d�t|j�}t�|j���dd}||ks8J�dS)Nrjrr:)rkrlr8r$rWrXrm)rYZvsz_psZ
vsz_psutilr)r)r*�test_vsz_memory�s

zTestProcess.test_vsz_memorycCsvt|j�}tj�|���}t�|j�����}t	�
dd|�}t	�
dd|�}t	�
dd|�}t	�
dd|�}||ksrJ�dS)Nz\d.\dr0z\d)r.r$�os�path�basenamer@rWrX�namer1r2)rYZname_psZname_psutilr)r)r*�	test_name�s
zTestProcess.test_namec	Cs�d}gd�}tjd|d��Vtjd|d��(t��}|��dksDJ�Wd�n1sX0YWd�n1sv0YdS)N�long-program-name)�long-program-name-extendedZfoo�bar�psutil._psplatform.Process.name�Zreturn_value�"psutil._psplatform.Process.cmdlinerv)rrerWrXrs)rYrs�cmdlinerhr)r)r*�test_name_long�s�zTestProcess.test_name_longc	Cs�d}tjd|d��^tjdt�dd�d��(t��}|��dksDJ�Wd�n1sX0YWd�n1sv0YdS�Nrurxryrzrr0rd)rrerWZAccessDeniedrXrs�rYrsrhr)r)r*�test_name_long_cmdline_ad_exc�s
�z)TestProcess.test_name_long_cmdline_ad_excc
Cs�d}tjd|d���tjdt�dd�d��Lt��}t�tj��|��Wd�n1s^0YWd�n1s|0YWd�n1s�0YdSr})rrerWZ
NoSuchProcessrXr�raisesrsr~r)r)r*�test_name_long_cmdline_nsp_excs
�z*TestProcess.test_name_long_cmdline_nsp_exczps -o start not availablerKcCs\td|j�}t�|j���}tj�|��d�}t|�}tj�|��d�}|||fvsXJ�dS)Nrz%H:%M:%S)	rr$rWrXZcreate_time�datetime�
fromtimestamp�strftime�round)rYZtime_psZtime_psutilZtime_psutil_tstampZround_time_psutilZround_time_psutil_tstampr)r)r*�test_create_times����zTestProcess.test_create_timecCs^t|j�}t�|j���}z||ks(J�Wn.tyX|dt|��}||ksTJ�Yn0dSrT)r.r$rWrXZexe�AssertionError�len)rYZps_pathnameZpsutil_pathnameZadjusted_ps_pathnamer)r)r*�test_exes
zTestProcess.test_execCsTt|j�}d�t�|j����}trDt|�t|�krD|�|�sPJ�n||ksPJ�dS)N� )	r4r$�joinrWrXr{r	r��
startswith)rYZ
ps_cmdlineZpsutil_cmdliner)r)r*�test_cmdline1s

zTestProcess.test_cmdlineznot reliable on SUNOSznot reliable on AIXcCs(td|j�}t����}||ks$J�dS)N�nice)rr$rWrXr�)rYZps_niceZpsutil_nicer)r)r*�	test_nice?szTestProcess.test_niceN)�__name__�
__module__�__qualname__�__doc__�classmethodrSrUrZr^r`rcrirrrnrortr|rr�r�mark�skipifrrr�r�r�rrr�r)r)r)r*rM�s8

	





rMc@s�eZdZdZe�dd��Zejje	dd�ejje
d�dd�ejjedd�d	d
����Ze�dd��Z
e�d
d��Zdd�Zdd�Zdd�Zdd�Zejjedd�e�dd���ZdS)�TestSystemAPIszTest some system APIs.cs~ttd���t���ts$tr0d�vr0��dd�t��t��dkrz�fdd��D��fdd��D�}|�dt	|���dS)Nr$rrcsg|]}|�vr|�qSr)r)��.0�x)�pids_psr)r*�
<listcomp>X�z,TestSystemAPIs.test_pids.<locals>.<listcomp>csg|]}|�vr|�qSr)r)r�)�pids_psutilr)r*r�Xszdifference: )
�sortedrrWZpidsrr�insertr��failr)rY�
differencer))r�r�r*�	test_pidsKs�zTestSystemAPIs.test_pidszunreliable on SUNOSrK�ifconfigzno ifconfig cmdz
not supportedcCsLtd�}tjdd�D]2}|��D]}|�|�r qq |�d||f��qdS)Nzifconfig -aT)Zpernicz/couldn't find %s nic in 'ifconfig -a' output
%s)rrWZnet_io_countersr,r�r�)rYr&Znicr(r)r)r*�test_nic_names_s
��zTestSystemAPIs.test_nic_namescCs�td�}|��st�d��|�d�}dd�|D�}dd�|D�}t|�tt���ksXJ�|jt��|d��`t	t���D]B\}}|j
||ks�J�|j||ks�J�|jdurxt�
|j�qxWd�n1s�0YdS)N�who -u�no users on this systemr9cSsg|]}|��d�qS)r�r,r�r)r)r*r�vr�z-TestSystemAPIs.test_users.<locals>.<listcomp>cSsg|]}|��d�qS)rr�r�r)r)r*r�wr��rWZwho)rr rrAr,r�rW�users�subTest�	enumeratersZterminalr$rX)rYr3�linesr�Z	terminals�idx�ur)r)r*�
test_usersps


zTestSystemAPIs.test_userscCstd�}|��st�d��d}t�d|�}|r4d}nNt�d|�}|rJd}n8t�d|�}|r`d}n"t�d	|�}|r�d}d
d�|D�}|s�t�d|��|jt��|d
��Jt	t���D],\}}t
j
�|j��
|�}|||ks�J�q�Wd�n1s�0YdS)Nr�r�z\d\d\d\d-\d\d-\d\d \d\d:\d\dz%Y-%m-%d %H:%Mz[A-Z][a-z][a-z] \d\d \d\d:\d\dz%b %d %H:%Mz[A-Z][a-z][a-z] \d\dz%b %dz[a-z][a-z][a-z] \d\dcSsg|]}|���qSr))�
capitalizer�r)r)r*r��r�z5TestSystemAPIs.test_users_started.<locals>.<listcomp>z(cannot interpret tstamp in who output
%sr�)rr rrAr1�findallr�rWr�r�r�r��startedr�)rYr3Ztstampr�r�r�Zpsutil_valuer)r)r*�test_users_started�s:
���z!TestSystemAPIs.test_users_startedc	Cs~tjdttjd�d��T}t�t�� tj�	t
���Wd�n1sH0Y|js\J�Wd�n1sp0YdS)Nzpsutil._psposix.os.killr0rd)
rre�OSError�errno�EBADFrr�rW�_psposixZ
pid_existsrp�getpidrg�rY�mr)r)r*�test_pid_exists_let_raise�s�.z(TestSystemAPIs.test_pid_exists_let_raisec	Cs~tjdttjd�d��T}t�t�� tj�	t
���Wd�n1sH0Y|js\J�Wd�n1sp0YdS)N�psutil._psposix.os.waitpidr0rd)
rrer�r�r�rr�rWr��wait_pidrpr�rgr�r)r)r*�test_os_waitpid_let_raise�s�.z(TestSystemAPIs.test_os_waitpid_let_raisec	Cs�tjdttjd�d��\}t�tjj	��$tjj
t��dd�Wd�n1sP0Y|j
sdJ�Wd�n1sx0YdS)Nr�r0rdg{�G�z�?)�timeout)rrer�r�ZEINTRrr�rWr��TimeoutExpiredr�rpr�rgr�r)r)r*�test_os_waitpid_eintr�s�2z$TestSystemAPIs.test_os_waitpid_eintrc	Csvtjddd��T}t�t�� tj�t�	��Wd�n1s@0Y|j
sTJ�Wd�n1sh0YdS)Nr�)r���ry)rrerr�r"rWr�r�rpr�rgr�r)r)r*�test_os_waitpid_bad_ret_status�s�.z-TestSystemAPIs.test_os_waitpid_bad_ret_statuszunreliable on AIXc	Cs�d}tjdd�D]�}t�|j�}zt|j�\}}}}WnVty�}z>t|���}d|vsjd|vsjd|vrvWYd}~q�WYd}~qd}~00t	|j
|�|ks�J�t	|j|�|ks�J�t	|j|�|ks�J�t	|j
|�dksJ�qdS)Ni@F)�allzno such file or directoryzraw devices not supportedzpermission deniedr)rWZdisk_partitions�
disk_usageZ
mountpointrJrCr?rr@�abs�total�used�free�percent)	rYZ	tolerance�part�usagerFrGrHrIrDr)r)r*�test_disk_usage�s&���zTestSystemAPIs.test_disk_usageN)r�r�r�r�rr�rr�r�rrr
r�r�r�r�r�r�r�rr�r)r)r)r*r�Gs$


&
	
r�c@seZdZdd�ZdS)�TestMisccCs4t�}|dksJ�|t��ks"J�|tjks0J�dS)Nr)r�resource�mmapZPAGESIZE)rYZpagesizer)r)r*�test_getpagesize�szTestMisc.test_getpagesizeN)r�r�r�r�r)r)r)r*r��sr�)N),r�r�r�rpr1rOrkrWrrrrrrrZpsutil.testsr	r
rrr
rrrrrrrrr�r�Zpsutil._psutil_posixrrr.r4r7r8rJr�r�rMr�r�r)r)r)r*�<module>sZ
8
-#