Viewing File: /opt/hc_python/lib/python3.12/site-packages/psutil/tests/__pycache__/test_posix.cpython-312.pyc

�

h0i�C��b�dZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
Z
ddl
mZddl
mZddl
m
Z
ddl
mZddl
mZdd	l
mZdd
l
mZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZerddlZddlZd#d�Zd�Z d�Z!d�Z"d�Z#d�Z$ejJjMed��Gd�de��Z'ejJjMed��Gd�d e��Z(ejJjMed��Gd!�d"e��Z)y)$zPOSIX specific tests.�N)�mock)�AIX)�BSD)�LINUX)�MACOS)�OPENBSD)�POSIX)�SUNOS)�AARCH64)�HAS_NET_IO_COUNTERS)�
PYTHON_EXE)�PsutilTestCase)�pytest)�retry_on_failure)�sh)�skip_on_access_denied)�
spawn_subproc)�	terminatec�,�dg}tr|jd�|�|jdt|�g�n/tst
r|jd�n|jd�tr|j
dd�}|jd	|g�t|�}tr|j�n|j�d
d}g}|D]/}|j�}	t|�}|j|��1|�|S|dS#t$rY�'wxYw)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�start�stimez-o�r)r�append�extend�strr
r�replacer�
splitlines�strip�int�
ValueError)�fmt�pid�cmd�output�
all_output�lines      �H/opt/hc_python/lib64/python3.12/site-packages/psutil/tests/test_posix.pyrr*s��
�&�C���
�
�>�"�
���
�
�D�#�c�(�#�$�	�#��
�
�4���
�
�4����k�k�'�7�+���J�J��c�{��
��W�F�$)�V�
�
�
 �v�/@�/@�/B�1�2�/F�F��J����z�z�|��	��t�9�D�	���$����{����!�}����	��	�s� D�	D�Dc�T�d}trd}t||�j�}|dS)N�command�commr)r
r�split)r$�fieldr+s   r)�ps_namer/as-���E�������n�"�"�$�G��1�:��c��d}tstrd}t||�}tjdd|�}|j�S)Nr+�argsz\(python.*?\)$�)rr
r�re�subr )r$r.�outs   r)�ps_argsr7is;���E�
�e���
�U�C�.�C�
�&�&�"�B��
,�C��9�9�;�r0c�.�d}trd}t||�S)N�rss�rssize�rr�r$r.s  r)�ps_rssr=ss���E�
���
�e�S�>�r0c�.�d}trd}t||�S)N�vsz�vsizer;r<s  r)�ps_vszrAzs���E�
���
�e�S�>�r0c��	td|���j�}|jd�d}|j�}t|d�dz}t|d�dz}t|d�dz}t|d	jd
d��}||||fS#t$r;}dt|�j	�vrtjd�cYd}~S�d}~wwxYw)Nzdf -k zdevice busyzdf returned EBUSY�
r�����%r3)rr �RuntimeErrorr�lowerr�skipr-r!�floatr)	�devicer6�errr(�fields�	sys_total�sys_used�sys_free�sys_percents	         r)�dfrT�s�����6�&��"�#�)�)�+��
�9�9�T�?�1��D�
�Z�Z�\�F��F�1�I���%�I��6�!�9�~��$�H��6�!�9�~��$�H���q�	�)�)�#�r�2�3�K��x��;�7�7�����C��H�N�N�,�,��;�;�2�3�3�
���s#�B�	C�"/C�C�C�Cz
POSIX only��reasonc��eZdZdZed��Zed��Zd�Zd�Zd�Z	d�Z
d�Ze�e
�d	���Ze�e
�d
���Zd�Zd�Zd
�Zd�Zej*j-exsed��d��Zd�Ze
�d��Zej*j-ed��ej*j-ed��d���Zy)�TestProcesszBCompare psutil results against 'ps' command line utility (mainly).c�f�ttddgtj��j|_y)Nz-Ez-O)�stdin)rr
�
subprocess�PIPEr$��clss r)�
setUpClasszTestProcess.setUpClass�s&���
��t�$�J�O�O�
�

�#�	�r0c�.�t|j�y�N)rr$r]s r)�
tearDownClasszTestProcess.tearDownClass�s���#�'�'�r0c��td|j�}tj|j�j	�}||k(sJ�y)N�ppid)rr$�psutil�Processrd)�self�ppid_ps�ppid_psutils   r)�	test_ppidzTestProcess.test_ppid�s;���V�T�X�X�&���n�n�T�X�X�.�3�3�5���+�%�%�%r0c��td|j�}tj|j�j	�j
}||k(sJ�y)N�uid)rr$rerf�uids�real)rg�uid_ps�
uid_psutils   r)�test_uidzTestProcess.test_uid�sA���E�4�8�8�$���^�^�D�H�H�-�2�2�4�9�9�
���#�#�#r0c��td|j�}tj|j�j	�j
}||k(sJ�y)N�rgid)rr$rerf�gidsrn)rg�gid_ps�
gid_psutils   r)�test_gidzTestProcess.test_gid�sA���F�D�H�H�%���^�^�D�H�H�-�2�2�4�9�9�
���#�#�#r0c��td|j�}tj|j�j	�}||k(sJ�y)N�user)rr$rerf�username)rg�username_ps�username_psutils   r)�
test_usernamezTestProcess.test_username�s;�������*�� �.�.����2�;�;�=���o�-�-�-r0c��tj�}tjdt��5}|j�t
|j�j�k(sJ�|jsJ�	ddd�y#1swYyxYw)Nzpsutil.pwd.getpwuid��side_effect)
rerfr�patch�KeyErrorrzrrmrn�called)rg�p�funs   r)�test_username_no_resolutionz'TestProcess.test_username_no_resolution�s]��
�N�N���
�Z�Z�-�8�
D���:�:�<�3�q�v�v�x�}�}�#5�5�5�5��:�:��:�E�
D�
D�s�AA?�?Bc���tjd�t|j�}t	j
|j�j
�ddz}||k(sJ�y)N皙�����?rrD)�time�sleepr=r$rerf�memory_info)rg�rss_ps�
rss_psutils   r)�test_rss_memoryzTestProcess.test_rss_memory��P��
	
�
�
�3������!���^�^�D�H�H�-�9�9�;�A�>��E�
���#�#�#r0c���tjd�t|j�}t	j
|j�j
�ddz}||k(sJ�y)Nr�rrD)r�r�rAr$rerfr�)rg�vsz_ps�
vsz_psutils   r)�test_vsz_memoryzTestProcess.test_vsz_memory�r�r0c���t|j�}tjj	|�j�}t
j|j�j�j�}tjdd|�}tjdd|�}tjdd|�}tjdd|�}||k(sJ�y)Nz\d.\dr3z\d)r/r$�os�path�basenamerJrerf�namer4r5)rg�name_ps�name_psutils   r)�	test_namezTestProcess.test_name�s����$�(�(�#���'�'�"�"�7�+�1�1�3���n�n�T�X�X�.�3�3�5�;�;�=���&�&��2�w�/���f�f�X�r�;�7���&�&���G�,���f�f�U�B��4���+�%�%�%r0c��d}gd�}tjd|��5tjd|��5tj�}|j	�dk(sJ�	ddd�ddd�y#1swY�xYw#1swYyxYw)N�long-program-name)�long-program-name-extended�foo�bar�psutil._psplatform.Process.name��return_value�"psutil._psplatform.Process.cmdliner�)rr�rerfr�)rgr��cmdliner�s    r)�test_name_longzTestProcess.test_name_long�st��#��>��
�Z�Z�9��
M����4�7���N�N�$���v�v�x�#?�?�?�?�	�N�
M����N�
M�s"�A>�*A2�!A>�2A;	�7A>�>Bc�4�d}tjd|��5tjdtjdd���5tj�}|j�dk(sJ�	ddd�ddd�y#1swY�xYw#1swYyxYw�Nr�r�r�r�rr3r)rr�re�AccessDeniedrfr��rgr�r�s   r)�test_name_long_cmdline_ad_excz)TestProcess.test_name_long_cmdline_ad_exc�s}��#��
�Z�Z�9��
M����4�"�/�/��2�6���N�N�$���v�v�x�#6�6�6�6��N�
M����N�
M�s#�,B�*B�1B�B	�B�Bc��d}tjd|��5tjdtjdd���5tj�}tjtj�5|j�ddd�ddd�ddd�y#1swY�xYw#1swY�xYw#1swYyxYwr�)rr�re�
NoSuchProcessrfr�raisesr�r�s   r)�test_name_long_cmdline_nsp_excz*TestProcess.test_name_long_cmdline_nsp_exc�s���#��
�Z�Z�9��
M����4�"�0�0��B�7���N�N�$���]�]�6�#7�#7�8��F�F�H�9��N�
M�9�8�����N�
M�s;�,C�8B4�>B(�B4�C�(B1�-B4�4B=	�9C�C	zps -o start not availablerUc�h�td|j�}tj|j�j	�}t
j
j
|�jd�}t|�}t
j
j
|�jd�}|||hvsJ�y)Nrz%H:%M:%S)	rr$rerf�create_time�datetime�
fromtimestamp�strftime�round)rg�time_ps�time_psutil�time_psutil_tstamp�round_time_psutil�round_time_psutil_tstamps      r)�test_create_timezTestProcess.test_create_times����W�d�h�h�'���n�n�T�X�X�.�:�:�<��%�.�.�<�<��
�
�(�:�
�	�
"�+�.��#+�#4�#4�#B�#B��$
�
�(�:�
�	!��-�/G�H�H�H�Hr0c���t|j�}tj|j�j	�}	||k(sJ�y#t
$r|dt
|�}||k(sJ�YywxYwra)r/r$rerf�exe�AssertionError�len)rg�ps_pathname�psutil_pathname�adjusted_ps_pathnames    r)�test_exezTestProcess.test_exesq���d�h�h�'�� �.�.����2�6�6�8��
	7��/�1�1�1���	7�$/�/A��[�1A�#B� ��"6�6�6�6�	7�s�A�A-�,A-c��t|j�}djtj|j�j��}tr+t|�t|�kr|j|�sJ�y||k(sJ�y)N� )	r7r$�joinrerfr�rr��
startswith)rg�
ps_cmdline�psutil_cmdlines   r)�test_cmdlinezTestProcess.test_cmdline(si���T�X�X�&�
����&�.�.����":�"B�"B�"D�E���s�:���^�)<�<�!�,�,�Z�8�8�8���/�/�/r0znot reliable on SUNOSznot reliable on AIXc��td|j�}tj�j	�}||k(sJ�y)N�nice)rr$rerfr�)rg�ps_nice�psutil_nices   r)�	test_nicezTestProcess.test_nice6s7���V�T�X�X�&���n�n�&�+�+�-���+�%�%�%r0N)�__name__�
__module__�__qualname__�__doc__�classmethodr_rbrjrqrwr}r�rrr�r�r�r�r�r�r�mark�skipifrrr�r�r�r
rr��r0r)rXrX�s/��L�����
����&�
$�
$�
.�
�����$���$�����$���$�&�@�7���[�[������-H��I�I�J�I�
7�(��0��0��[�[����&=��>��[�[����$9��:�&�;�?�&r0rXc��eZdZdZe�d��Zejje	d��ejje
jd�d��ejjed��d����Z
e�d	��Ze�d
��Zd�Zd�Zd
�Zd�Zejjed��e�d���Zy)�TestSystemAPIszTest some system APIs.c�x�ttd��}tj�}ts
t
rd|vr|j
dd�t|�t|�z
dkDrL|D�cgc]	}||vs�|��c}|D�cgc]	}||vs�|��c}z}tjdt|�z�Sycc}wcc}w)Nr$rrzdifference: )�sortedrre�pidsrr�insertr�r�failr)rg�pids_ps�pids_psutil�x�
differences     r)�	test_pidszTestSystemAPIs.test_pidsBs�����E��#���k�k�m���W��'�!1��N�N�1�a� ��w�<�#�k�*�*�Q�.�%0�E�[��A�W�4D�!�[�E�"�I�"�a�a�{�&:��7�I��J��;�;�~��J��?�@�@�	/��E��Is�)	B2�3B2�=	B7�B7zunreliable on SUNOSrU�ifconfigzno ifconfig cmdz
not supportedc���td�}tjd��D]F}|j�D]}|j	|�s��*tjd|�d|���cSy)Nzifconfig -aT)�perniczcouldn't find z nic in 'ifconfig -a' output
)rre�net_io_countersr-r�rr�)rgr&�nicr(s    r)�test_nic_nameszTestSystemAPIs.test_nic_namesVsk���M�"���)�)��6�C�������?�?�3�'��'��{�{�$�S�E�* � &�x�)���7r0c���td�}|j�stjd�Sg}|j	�D]y}|j�d}|j�d}tstr2	t|j�d�}|j|||f��g|j||f��{tstrCtj�D�cgc]%}|j|j|jf��'}}n7tj�D�cgc]}|j|jf��}}t!|�t!|�k(sJ�t#|�t#|�k(sJ�tj�D] }|j��|jdkDr� J�y#t$r t|j�d�}Y��BwxYwcc}wcc}w)N�who -u�no users on this systemrr������)rr rrKrr-rrr!r"rre�usersr��terminalr$r�r�)	rgr6�susersr(ryr�r$�u�puserss	         r)�
test_userszTestSystemAPIs.test_userses|����l���y�y�{��;�;�8�9�9����N�N�$�D��:�:�<��?�D��z�z�|�A��H���0��d�j�j�l�2�.�/�C��
�
�t�X�s�3�4��
�
�t�X�.�/�%��E�;A�<�<�>�J�>�a�q�v�v�q�z�z�1�5�5�1�>�F�J�4:�L�L�N�C�N�q�q�v�v�q�z�z�*�N�F�C��6�{�c�&�k�)�)�)��f�~����/�/�/��L�L�N�D��x�x�#��x�x�!�|�#�|�#��"�0��d�j�j�l�2�.�/�C�0��K��Cs�9F/�!*G�$G �/%G�Gc��td�}|j�stjd�Sd}t	j
d|�}|rd}nmt	j
d|�}|rd}nRt	j
d|�}|rd}n7t	j
d	|�}|rd}|D�cgc]}|j
���}}|stjd
|���S|jtj�|��5ttj��D]G\}}tjj|j�j|�}|||k(r�GJ�	ddd�ycc}w#1swYyxYw)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\dz&cannot interpret tstamp in who output
)re�who)rr rrKr4�findall�
capitalize�subTestrer��	enumerater�r��startedr�)rgr6�tstampr�r��idxr��psutil_values        r)�test_users_startedz!TestSystemAPIs.test_users_started�sK����l���y�y�{��;�;�8�9�9����*�*�<�c�B���%�F��j�j�!B�C�H�G��&���*�*�%<�c�B���$�F�!�j�j�)@�#�F�G��!(��;B�"C�7�a�1�<�<�>�7��"C���;�;�!H���N�O�O�
�\�\�����S�\�
9�#�F�L�L�N�3���Q�'�0�0�>�>��I�I� ��(�6�"��$�w�s�|�3�3�3�	4�:�
9��#D�
:�
9�s�"E,�:A$E1�E1�1E:c�h�tjdttjd���5}tjt�5tjjtj��ddd�|jsJ�	ddd�y#1swY�!xYw#1swYyxYw)Nzpsutil._psposix.os.killr3r)
rr��OSError�errno�EBADFrr�re�_psposix�
pid_existsr��getpidr��rg�ms  r)�test_pid_exists_let_raisez(TestSystemAPIs.test_pid_exists_let_raise�su���Z�Z�%�7�5�;�;��3K�
�
����w�'����*�*�2�9�9�;�7�(��8�8�O�8�
�
�(�'��
�
��#�B(�
2B�<B(�B%	�!B(�(B1c�h�tjdttjd���5}tjt�5tjjtj��ddd�|jsJ�	ddd�y#1swY�!xYw#1swYyxYw)N�psutil._psposix.os.waitpidr3r)
rr�rrrrr�rer�wait_pidr�rr�rs  r)�test_os_waitpid_let_raisez(TestSystemAPIs.test_os_waitpid_let_raise�su���Z�Z�(�g�e�k�k�2�6N�
�
����w�'����(�(�����5�(��8�8�O�8�
�
�(�'��
�
�r
c��tjdttjd���5}tjtjj�5tjjtj�d��ddd�|jsJ�	ddd�y#1swY�!xYw#1swYyxYw)Nrr3rg{�G�z�?)�timeout)rr�rr�EINTRrr�rer�TimeoutExpiredr
r�rr�rs  r)�test_os_waitpid_eintrz$TestSystemAPIs.test_os_waitpid_eintr�s���
�Z�Z�(�g�e�k�k�2�6N�
�
����v���=�=�>����(�(�����d�(�C�?��8�8�O�8�
�
�?�>��
�
�s#�.B>�4B2�B>�2B;	�7B>�>Cc�8�tjdd��5}tjt�5t
jjtj��ddd�|jsJ�	ddd�y#1swY�!xYw#1swYyxYw)Nr)rr�r�)rr�rr�r"rerr
r�rr�rs  r)�test_os_waitpid_bad_ret_statusz-TestSystemAPIs.test_os_waitpid_bad_ret_status�sh��
�Z�Z�(�w�
�
����z�*����(�(�����5�+��8�8�O�8�
�
�+�*��
�
�s"�B�2B�$B�B
	�	B�Bzunreliable on AIXc��d}tjd��D]�}tj|j�}	t	|j
�\}}}}t
|j|z
�|ksJ�t
|j|z
�|ksJ�t
|j|z
�|ksJ�t
|j|z
�dkr��J�y#t$r0}t|�j�}d|vsd|vsd|vrYd}~��d}~wwxYw)Ni@F)�allrzno such file or directoryzraw devices not supportedzpermission denied)re�disk_partitions�
disk_usage�
mountpointrTrM�abs�total�used�free�percentrIrrJ)	rg�	tolerance�part�usagerPrQrRrSrNs	         r)�test_disk_usagezTestSystemAPIs.test_disk_usage�s��$�	��*�*�u�5�D��%�%�d�o�o�6�E�
=�=?����_�:�	�8�X�{��5�;�;��2�3�i�?�?�?��5�:�:��0�1�I�=�=�=��5�:�:��0�1�I�=�=�=��5�=�=�;�6�7�1�<�<�<�)6�� �
��#�h�n�n�&��/�3�6�2�c�9�*�c�1����
�s�C
�
	D�%D�D�DN)r�r�r�r�rr�rr�r�r
�shutil�whichrr�r�r�r	rrrrr#r�r0r)r�r�>s	�� ���A��A�&�[�[����&;��<��[�[���L�F�L�L��4�4�=N��O��[�[���/�/���H�
�I�P�=�
���$��$�<��"4��"4�H	�����[�[����$7��8���=��9�=r0r�c��eZdZd�Zy)�TestMiscc��tjjj�}|dkDsJ�|t	j�k(sJ�|t
jk(sJ�y)Nr)re�_psplatform�cext�getpagesize�resource�mmap�PAGESIZE)rg�pagesizes  r)�test_getpagesizezTestMisc.test_getpagesize�sQ���%�%�*�*�6�6�8���!�|��|��8�/�/�1�1�1�1��4�=�=�(�(�(r0N)r�r�r�r0r�r0r)r'r'�s��)r0r'ra)*r�r�rr�r4r$r[r��unittestrrerrrrrr	r
�psutil.testsrrr
rrrrrrrr-r,rr/r7r=rArTr�r�rXr�r'r�r0r)�<module>r3s�����	�	�
����
�������� �,�#�'��)��.�&�"����(�n����
8� ������I�l��3�i&�.�i&�4�i&�X������I�l��3�j=�^�j=�4�j=�Z������I�l��3�)�~�)�4�)r0
Back to Directory File Manager