__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ 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
SSKrSSKrSSKJr SSKJr SSKJr SSKJr SSKJr SSKJr SS	KJr SS
KJr SSKJr SSKJr SS
KJr SSKJr SSKJr SSKJr SSKJ r  SSK!J"r" SSK!J#r# SSK!J$r$ SSK!J%r% SSK!J&r& SSK!J'r' SSK!J(r( SSK!J)r) SSK!J*r* SSK!J+r+ SSK!J,r, SSK!J-r- SSK!J.r. SSK!J/r/ SS K!J0r0 SS!K!J1r1 SS"K!J2r2 SS#K!J3r3 SS$K!J4r4 SS%K!J5r5 SS&K!J6r6 SS'K!J7r7 SS(K!J8r8 SS)K!J9r9 SS*K!J:r: SS+K!J;r; SS,K!J<r< SS-K!J=r= SS.K!J>r> SS/K!J?r? "S0S1\25r@\(a \R�"5S:Xa"S2S3\@5rB"S4S5\25rC\DS6:XaSS7KEJFrF \F"\G5 gg)8�Tests for psutil.Process class.�N)�AIX)�BSD)�LINUX)�MACOS)�NETBSD)�OPENBSD)�OSX)�POSIX)�SUNOS)�WINDOWS)�	open_text)�PY3)�FileNotFoundError)�long)�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)�PsutilTestCase)�
ThreadTask)�
call_until)�copyload_shared_lib)�create_c_exe)�
create_py_exe)�mock)�process_namespace��
reap_children)�retry_on_failure)�sh)�skip_on_access_denied)�skip_on_not_implemented)�wait_for_pidc��
�\rSrSrSrSrSrSrSrSr	\
R"\(+S5S	5r
S
r\
R"\S5S5rS
rSrSrSrSrSrSr\
R"\(+S5S5rSr\
R"\(+S5S5r\
R"\(+S5\"\S9S55r\
R"\ (+S5\
R"\(+S5S55r!\
R"\ (+S5\
R"\"(+S5S55r#\
R"\$(+S5S5r%\
R"\$(+S5S 5r&\
R"\$(+S5S!5r'\
R"\$(+S5S"5r(\
R"\$(+S5S#5r)S$r*\
R"\"(+S%5S&5r+\
R"\,(+S5S'5r-\."5\/"\0S9\
R"\,(+S5S(555r1\."5S)5r2S*r3\
R"\4(+S5S+5r5\
R"\4(+S5S,5r6S-r7S.r8S/r9S0r:\
R"\;S15S25r<S3r=\
R"\;S45S55r>\
R"\?S65\
R"\@S75\
R"\;S15S8555rA\
R"\(+S5S95rB\
R"\(+S5S:5rCS;rDS<rES=rFS>rGS?rH\
R"\I(+S5S@5rJ\
R"\I(+S5SA5rK\
R"\I(+S5SB5rL\
R"\MSC5\
R"\NSD5SE55rO\
R"\MSC5\
R"\NSD5SF55rP\
R"\(+S5SG5rQ\"\S9\
R"\R=(d \SH5SI55rSSJrTSKrUSLrV\."5SM5rWSNrXSOrYSPrZSQr[SRr\SSr]STr^SUr_SVr`SWraSXrb\
R"\(+S5SY5rc\
R"\(+S5SZ5rd\
R"\(+S5S[5reS\rfS]rg\
R"\h(+S5S^5ri\
R"\h(+S5\
R"\(+S5\
R"\jS_5S`555rkSarlgb)c�TestProcess�Mrc���UR"U0UD6n[R"UR5$![Ra URUR5 ef=f�N)�spawn_testproc�psutil�Process�pid�
NoSuchProcess�
assertPidGone)�self�args�kwargs�sprocs    �;/usr/lib/python3/dist-packages/psutil/tests/test_process.py�spawn_psproc�TestProcess.spawn_psprocPsY���#�#�T�4�V�4��	��>�>�%�)�)�,�,���#�#�	����u�y�y�)��	�s	�4�1A%c��[R"5nURUR[R
"55 UR
[5 SUlSSS5 g!,(df   g=f)N�!)r8r9�assertEqualr:�os�getpid�assertRaises�AttributeError�r=�ps  rA�test_pid�TestProcess.test_pidZsI���N�N����������	�	��,�
�
�
�~�
.��A�E�/�
.�
.�s�A+�+
A9c� �UR5nUR5 UR5n[(a!UR	U[
R5 O!UR	U[
R*5 URU5 gr6)	rB�kill�waitr
rF�signal�SIGTERM�SIGKILL�assertProcessGone�r=rL�codes   rA�	test_kill�TestProcess.test_kill`sa�������	�����v�v�x���7����T�6�>�>�2����T�F�N�N�?�3����q�!�c� �UR5nUR5 UR5n[(a!UR	U[
R5 O!UR	U[
R*5 URU5 gr6)rB�	terminaterQr
rFrRrSrUrVs   rA�test_terminate�TestProcess.test_terminatejsa�������	���
��v�v�x���7����T�6�>�>�2����T�F�N�N�?�3����q�!rZc�<�[(a[RO[RnUR	5nURU5 UR
5n[(aURX15 OURX1*5 URU5 gr6)
rrRrTrSrB�send_signalrQr
rFrU)r=�sigrLrWs    rA�test_send_signal�TestProcess.test_send_signaltsk�� %��f�n�n�6�>�>�������	�
�
�c���v�v�x���7����T�'����T�4�(����q�!rZz	not POSIXc�,�[RnUR5n[R"S[[RS5S9 UR[RURU5 SSS5 UR5n[R"S[[RS5S9 UR[RURU5 SSS5 g!,(df   N�=f!,(df   g=f)Nzpsutil.os.kill���side_effect)rRrSrBr)�patch�OSError�errno�ESRCHrIr8r;r`�EPERM�AccessDenied)r=rarLs   rA�test_send_signal_mocked�#TestProcess.test_send_signal_mockeds����n�n�������
�Z�Z��'�%�+�+�r�*B�
�
���f�2�2�A�M�M�3�G�
�

�����
�Z�Z��'�%�+�+�r�*B�
�
���f�1�1�1�=�=�#�F�
�
�

�
��
�
�s�,C4�?,D�4
D�
Dc��[SS/nURU5nUR5nURUS5 UR	U5 [SS/nURU[
RS9nUR5nURUS5 UR	U5 [SS/nURU5nUR5nURUS5 UR	U5 [SS	/nURU5nUR5nURUS5 UR	U5 g)
N�-c�passrz1 / 0)�stderr�zimport sys; sys.exit(5);�zimport os; os._exit(5);)r!rBrQrFrU�
subprocess�PIPE)r=�cmdrLrWs    rA�test_wait_exited�TestProcess.test_wait_exited�s#���4��(�����c�"���v�v�x������q�!����q�!��4��)�����c�*�/�/��:���v�v�x������q�!����q�!��4�!;�<�����c�"���v�v�x������q�!����q�!��4�!:�;�����c�"���v�v�x������q�!����q�!rZzfails on NETBSDc��UR5n[(GaUR[R5 UR[RURSS9 UR[R5 UR[RURSS9 UR[R5 URUR5[R*5 URUR5[R*5 gUR5 UR[RURSS9 UR5 UR[RURSS9 UR5 URUR5[R5 URUR5[R5 g)N���MbP?)�timeout)rBrr`rR�SIGSTOPrIr8�TimeoutExpiredrQ�SIGCONTrSrF�suspend�resumer\rKs  rA�test_wait_stopped�TestProcess.test_wait_stopped�sJ��������5�
�M�M�&�.�.�)����f�3�3�Q�V�V�U��K�
�M�M�&�.�.�)����f�3�3�Q�V�V�U��K�
�M�M�&�.�.�)����Q�V�V�X�����7����Q�V�V�X�����7�
�I�I�K����f�3�3�Q�V�V�U��K�
�H�H�J����f�3�3�Q�V�V�U��K�
�K�K�M����Q�V�V�X�v�~�~�6����Q�V�V�X�v�~�~�6rZc�R�UR5upUR[RURS5 UR[RURS5 UR5 UR5 UR	5nUR	5n[(a4URU[R*5 URUS5 gURU[R5 URU[R5 g)N�{�G�z�?)
�spawn_children_pairrIr8rrQr\rrFrRrS)r=�child�
grandchild�	child_ret�grandchild_rets     rA�test_wait_non_children�"TestProcess.test_wait_non_children�s���!�4�4�6������&�/�/����T�B����&�/�/����$�G�	���������J�J�L�	�#���*���5����Y�����8�
���^�T�2����Y����7����Y����7rZc�2�UR5nUR5 UR[RUR
S5 UR[RUR
S5 UR[UR
S5 g)Nr�r���)rB�namerIr8rrQ�
ValueErrorrKs  rA�test_wait_timeout�TestProcess.test_wait_timeout�sg�������	�������&�/�/�����>����&�/�/�����;����*�a�f�f�b�1rZc�t�UR5nUR[RURS5 UR5 [R"5[-n[R"5U:aUR	S5nOURS5e[(a"URU[R*5 O URU[R5 URU5 g![Ra Of=f[R"5U:aM�N�)Nrr})rBrIr8rrQrP�timer�failrrFrRrTrSrU)r=rL�stop_atrWs    rA�test_wait_timeout_nonblocking�)TestProcess.test_wait_timeout_nonblocking�s�����������&�/�/�����;�	�����)�)�+��.���i�i�k�G�#�
��v�v�a�y����)�)�I�&�&��5����T�F�N�N�?�3����T�6�>�>�2����q�!���(�(�
��
��	�i�i�k�G�#s�D�D�Dc�x�[R"5nURSS9 URSS9 [S5H:nURSS9nUR	U[
5 UR
US5 M< UR[5 URSS9 SSS5 g!,(df   g=f)Nr|)�interval�d�r�)	r8r9�cpu_percent�range�assertIsInstance�float�assertGreaterEqualrIr�)r=rL�_�percents    rA�test_cpu_percent�TestProcess.test_cpu_percent�s����N�N���	�
�
�u�
�%�	�
�
�u�
�%��s��A��m�m�T�m�2�G��!�!�'�5�1��#�#�G�S�1���
�
�z�
*�
�M�M�2�M�&�+�
*�
*�s�B+�+
B9c���[R"SSS9n[R"5R	5 UR
(deSSS5 g!,(df   g=f)Nzpsutil.cpu_count)�return_value)r)rhr8r9r��called)r=�ms  rA�test_cpu_percent_numcpus_none�)TestProcess.test_cpu_percent_numcpus_none�s=��
�Z�Z�*��
>�!��N�N��(�(�*��8�8�O�8�?�
>�
>�s�7A�
A%c
���[R"5R5nURS:�dURS:�dU5eUR
S:�dU5eURS:�dU5e[(aURS:�dU5eURH7n[R"S[R"[X555 M9 g)Nr�z%H:%M:%S)r8r9�	cpu_times�user�system�
children_user�children_systemr�iowait�_fieldsr��strftime�	localtime�getattr)r=�timesr�s   rA�test_cpu_times�TestProcess.test_cpu_times�s������ �*�*�,���
�
�S� �e�l�l�S�&8�@�5�@�9��"�"�c�)�0�5�0�)��$�$��+�2�U�2�+��5��<�<�3�&�-��-�&��M�M�D��M�M�*�d�n�n�W�U�5I�&J�K�"rZc�`�[R"5R5SSup[R"5SSup4[X/5[
X/5-
S:�aURSU<SU<35e[X$/5[
X$/5-
S:�aURSU<SU<35eg)N�皙�����?�
expected: �	, found: )r8r9r�rGr��max�minr�)r=�	user_time�kernel_time�utime�ktimes     rA�test_cpu_times_2�TestProcess.test_cpu_times_2
s���!'���!1�!;�!;�!=�b�q�!A��	��x�x�z�"�1�~���

��"�#�c�9�*<�&=�=��D��)�)��	�J�K�K���$�%��[�,@�(A�A�S�H��)�)���L�M�M�IrZz
not supportedc�@�[R"5nUR5nURUS5 [R"5S:XaURUS5 UR
UR5[[R"555 g�Nrrt)r8r9�cpu_numr��	cpu_countrF�assertInr�)r=rL�nums   rA�test_cpu_num�TestProcess.test_cpu_numsl���N�N����i�i�k������Q�'������"����S�!�$��
�
�a�i�i�k�5��)9�)9�);�#<�=rZc�@�UR5n[R"5nUR5n[X2-
5nUS:�aUR	SU<SU<SU<35e[R
"S[R"UR555 g)Nr�r�r�z, difference: z%Y %m %d %H:%M:%S)rBr��create_time�absr�r�r�)r=rL�nowr��
differences     rA�test_create_time�TestProcess.test_create_time sy��������i�i�k���m�m�o��
��*�+�
���>��)�)���Z�1��
�	
�
�
�)�4�>�>�!�-�-�/�+J�KrZz
POSIX onlyc���[R"5R5nUb:[RR[
S55nURX5 gg)N�tty)r8r9�terminalrG�path�realpathr.rF)r=r�r�s   rA�
test_terminal�TestProcess.test_terminal2sH���>�>�#�,�,�.�����'�'�"�"�2�e�9�-�C����X�+� rZ)�only_ifc��[R"5nUR5n[[S5nUR5 SSS5 UR5n[(d�[(d�URURUR5 URURUR5 [(aLURURUR5 URURUR5 OLURUR UR 5 URUR"UR"5 UR5n[UR%5S5n[&(aUR)[+SS-S55 OUR)SS-5 SSS5 UR5nURURUR5 URUR"UR"5 URURUR5 URUR UR 5 [(aLURURUR5 URURUR5 [-[/U55H>n[(aUS:�aMURXES5 URXES5 M@ g!,(df   GN�=f!,(df   GNw=f)N�rb�wb�xi@B�asciir�r)r8r9�io_counters�openr!�readrr�
assertGreater�
read_countrF�write_countr�
read_chars�write_charsr��
read_bytes�write_bytes�
get_testfnr�write�bytesr��len)r=rL�io1�f�io2�is      rA�test_io_counters�TestProcess.test_io_counters9s*��
�N�N����m�m�o��
�*�d�
#�q�
�F�F�H�$��m�m�o���s�3�3����s�~�~�s�~�~�>����S�_�_�c�o�o�>��u��"�"�3�>�>�3�>�>�B�� � ����#�/�/�B���#�#�C�N�N�C�N�N�C��#�#�C�O�O�S�_�_�E��m�m�o��
�$�/�/�#�T�
*�a��s�����c�G�m�W�5�6�����g�
�&�	+�
�m�m�o�����������A����������A����������?����������?��5����s������@��#�#�C�N�N�C�N�N�C��s�3�x��A��s�q�A�v���#�#�C�F�A�.��#�#�C�F�A�.�!�=$�
#��+�
*�s�L,�?L>�,
L;�>
M
z
linux onlyc�j^�U4Sjn[R"5m[(d1URTR	5S[R
5 UR[R
S5 UR[RS5 UR[RS5 UR[RS5 TR	5nURX5 TR	[R5 UR[TR	55[RS45 UR[5 TR	[RSS9 SSS5 TR	[R5 UR[TR	55[RS45 TR	[RSS9 UR[TR	55[RS45 UR[5 TR	[RSS9 SSS5 TR	[RSS9 UR[S	5 TR	[R
S5 SSS5 UR[S	5 TR	[RS5 SSS5 UR[S
5 TR	SS9 SSS5 g!,(df   GN�=f!,(df   N�=f![Ra N�f=f!,(df   N�=f!,(df   N�=f!,(df   g=f)Nc�\>�UupU[R:XaSnTRX5 g�Nr)r8�IOPRIO_CLASS_NONE�ionice)�init�ioclass�valuerLs   �rA�cleanup�.TestProcess.test_ionice_linux.<locals>.cleanupgs)���!�N�G��&�2�2�2���
�H�H�W�$rZrrtr����r��zioclass accepts no valuez$'ioclass' argument must be specified)r8r9rrFr�r��IOPRIO_CLASS_RT�IOPRIO_CLASS_BE�IOPRIO_CLASS_IDLE�
addCleanup�tuplerIr�rm�assertRaisesRegex)r=rr�rLs   @rA�test_ionice_linux�TestProcess.test_ionice_linuxds����	%�
�N�N����z����Q�X�X�Z��]�F�,D�,D�E�����1�1�1�5�����/�/��3�����/�/��3�����1�1�1�5��x�x�z������&�	
����)�)�*�����q�x�x�z�*�V�-E�-E�q�,I�J�
�
�
�z�
*�
�H�H�V�-�-�Q�H�7�+�	
����'�'�(�����q�x�x�z�*�V�-C�-C�Q�,G�H�	����'�'�q��1�����q�x�x�z�*�V�-C�-C�Q�,G�H�
�
�
�z�
*�
�H�H�V�+�+�1�H�5�+�	�
�H�H�V�+�+�1�H�5��
#�
#�J�0J�
K�
�H�H�V�-�-�q�1�L�
�
#�
#�J�0J�
K�
�H�H�V�-�-�q�1�L�
�
#�
#��>�
�
�H�H�1�H��
�
�%+�
*��+�
*���"�"�	��	��L�
K��
K�
K��
�
�sN�'M�M�:M(�.!N�-!N�,N$�
M�
M%�(M?�>M?�
N�
N!�$
N2z!not supported on this win versionc�<�[R"5n[(d.URUR	5[R
5 UR	5nUR
URU5 UR	[R5 URUR	5[R5 UR	[R5 URUR	5[R5 UR	[R5 URUR	5[R5 UR[S5 UR	[R
SS9 SSS5 UR[S5 UR	[RS-5 SSS5 g![Ra N�f=f!,(df   Nj=f!,(df   g=f)Nz&value argument not accepted on Windowsrtrzis not a valid priority)r8r9rrFr��
IOPRIO_NORMALr	�IOPRIO_VERYLOW�
IOPRIO_LOW�IOPRIO_HIGHrmr�	TypeErrorr�)r=rLr�s   rA�test_ionice_win�TestProcess.test_ionice_win�st��
�N�N����z����Q�X�X�Z��)=�)=�>��x�x�z��������$�'�	
����&�&�'��������V�%:�%:�;�	����"�"�#��������V�%6�%6�7�	=�
�H�H�V�'�'�(�
���Q�X�X�Z��);�);�<�
�
#�
#��?�
�
�H�H�V�)�)��H�3�
��
#�
#�J�0I�
J�
�H�H�V�'�'�!�+�,�K�
J���"�"�	��	��

�
��K�
J�s*�G"�9G<�6#H
�"G9�8G9�<
H
�
Hc���SSKn[R"[R"55n[[5Vs/sHo3R
S5(dMUPM nnU(dU5eUH�n[[U5nURUS5 U[U5;aZURU[X55 [(aM\URURU5URU55 M�URU5nUR[U5S5 URUSS5 URUSS5 M� gs snf)Nr�RLIMITr�r�rt)�resourcer8r9rGrH�dir�
startswithr�r�rFr �rlimit�	getrlimitr�)r=rrLr��namesr�r��rets        rA�test_rlimit_get�TestProcess.test_rlimit_get�s
����N�N�2�9�9�;�'����K�B�K�q�<�<��+A��K��B���e��u��D��F�D�)�E��#�#�E�1�-��s�8�}�$�� � ����(?�@��4��� � ����%��(�2D�2D�U�2K�L��h�h�u�o��� � ��S��1�-��'�'��A���3��'�'��A���3���Cs�E�Ec�2�UR5nUR[RS5 UR	UR[R5S5 [
(aMUR
[S5 [RRS5RS5 SSS5 UR[5 UR[RS5 SSS5 g!,(df   NM=f!,(df   g=f)N)ruruzcan't use prlimitr)rururu)rBrr8�
RLIMIT_NOFILErFrrr��_psplatformr9rIrKs  rA�test_rlimit_set�TestProcess.test_rlimit_set�s��������	����%�%�v�.�������&�"6�"6�7��@��5��'�'�
�4G�H��"�"�*�*�1�-�4�4�Q�7�I�
�
�
�z�
*�
�H�H�V�)�)�9�5�+�
*�I�H��
*�
*�s�/C7�
!D�7
D�
Dc��[R"5nUR5nUR[R5up4UR[RSU45 [US5nUR
S5 SSS5 UR[5n[US5nUR
S5 SSS5 SSS5 UR[(aWRROWRS[R5 UR[RX445 URUR[R5X445 g!,(df   N�=f!,(df   N�=f!,(df   N�=f!UR[RX445 URUR[R5X445 f=f)N�r�sXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXsXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXr)r8r9r�r�RLIMIT_FSIZEr�r�rI�IOErrorrFr�	exceptionrj�EFBIG)r=rL�testfn�soft�hardr��excs       rA�test_rlimit�TestProcess.test_rlimit�s_���N�N������"���X�X�f�1�1�2�
��	J�
�H�H�V�(�(�4��,�7��f�d�#�q�����$�$��"�"�7�+�s��&�$�'�1��G�G�K�(�(�,�
���'*�s��
�
�#�#��
�
�a�0@�%�+�+�
�
�H�H�V�(�(�4�,�7����Q�X�X�f�&9�&9�:�T�L�I�$�#��
(�'��,�+��
�H�H�V�(�(�4�,�7����Q�X�X�f�&9�&9�:�T�L�I�sV�.F'�6E4�F'�%
F�2F�F�AF'�4
F�>F'�
F	�F�
F$� F'�'AG:c���[R"5nUR[R5up#UR[RSU45 UR[R[RU45 [UR
5S5nURS5 SSS5 UR[RX#45 URUR[R5X#45 g!,(df   N`=f!UR[RX#45 URUR[R5X#45 f=f)Nr'r�sXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)	r8r9rr(�
RLIM_INFINITYr�r�r�rF)r=rLr-r.r�s     rA�test_rlimit_infinity� TestProcess.test_rlimit_infinity�s��
�N�N����X�X�f�1�1�2�
��	J�
�H�H�V�(�(�4��,�7�
�H�H�V�(�(�6�+?�+?��*F�G��d�o�o�'��.�!�����$�/�
�H�H�V�(�(�4�,�7����Q�X�X�f�&9�&9�:�T�L�I�	/�.��
�H�H�V�(�(�4�,�7����Q�X�X�f�&9�&9�:�T�L�I�s%�A,D!�$D�6D!�
D�D!�!AE4c���[R"5nUR[R5up#UR	[R
U5 UR[RX#45 gr6)r8r9rr(rFr3)r=rLr-r.s    rA�test_rlimit_infinity_value�&TestProcess.test_rlimit_infinity_value�sR��
�N�N����X�X�f�1�1�2�
������-�-�t�4�	����$�$�t�l�3rZc�t�[R"5n[(aUR5nOUR5n[5 UR5nURX2S-5 SSS5 g![Ra [
R"S5ef=f!,(df   g=f)N�$on OpenBSD this requires root accessrt)	r8r9r	�num_threadsrm�unittest�SkipTestr$rF)r=rL�step1�step2s    rA�test_num_threads�TestProcess.test_num_threadss���
�N�N����7�
P��
�
����M�M�O�E�
�\��M�M�O�E����U�A�I�.��\���&�&�
P��'�'�(N�O�O�
P��
�\�s�A;�
%B)�;+B&�)
B7zWINDOWS onlyc�n�[R"5nURUR5S5 gr�)r8r9r��num_handlesrKs  rA�test_num_handles�TestProcess.test_num_handless&��
�N�N������1�=�=�?�A�.rZc�^�[R"5n[(aUR5nOUR5n[5 UR5nUR[U5[U5S-5 USnURURUS5 URURUS5 URURUS5 SSS5 g![Ra [
R"S5ef=f!,(df   g=f)Nr:rtrr�)
r8r9r	�threadsrmr<r=r$rFr��idr��system_time)r=rLr>r?�athreads     rA�test_threads�TestProcess.test_threadss����N�N����7�
P��	�	����I�I�K�E�
�\��I�I�K�E����S��Z��U��a��8��A�h�G����W�Z�Z����4����W�.�.���
�;����W�0�0�'�!�*�=��\���&�&�
P��'�'�(N�O�O�
P��
�\�s�C0�
BD�0+D�
D,c	�4�UR5n[(aUR5 URUR5R[UR5Vs/sHo"RPM sn5SS9 URUR5R[UR5Vs/sHo"RPM sn5SS9 g![Ra [
R"S5ef=fs snfs snf)Nr:r�)�delta)rBr	rGr8rmr<r=�assertAlmostEqualr�r��sumr�r�rI)r=rLr�s   rA�test_threads_2�TestProcess.test_threads_2-s���
������7�
P��	�	��	
���
�K�K�M����a�i�i�k�2�k����k�2�3��	�	
�
	
���
�K�K�M� � ���	�	��4��1����4�5��	�	
���&�&�
P��'�'�(N�O�O�
P��3��
5s�C"�(D�D�"+D
c���[R"5nUR5SSup#UR5nUR	US5 UR	US5 S/S-nUR5SSupgUR5nUR	Xb5 URXs5 UR	X�5 A[(a\UR5n	URU	RU	R5 URU	RU	R5 UR5n	U	RHn
UR[X�5S5 M  g)Nr�ri`�)r8r9�memory_info�memory_percentr�r�r
rF�rss�wset�vms�pagefiler�r�)r=rL�rss1�vms1�percent1�memarr�rss2�vms2�percent2�memr�s           rA�test_memory_info�TestProcess.test_memory_infoBs���N�N����]�]�_�R�a�(�
���#�#�%�����4��#����4��#���'�!���]�]�_�R�a�(�
���#�#�%��	
���4�&�����+����8�.���7��-�-�/�C����S�W�W�c�h�h�/����S�W�W�c�l�l�3��m�m�o���K�K�D��#�#�G�C�$6��:� rZc�N�[R"5n[R"5RnUR	5nUR
HPn[
X45nURUSXE4S9 US:Xa[(d[(aM>URXRXEU4S9 MR [(d[(d[(aURURS5 [(a9URURS5 URURS5 gg)Nr)�msgrX)r8r9�virtual_memory�total�memory_full_infor�r�r�r
r�assertLessEqualr
r�uss�pss�swap)r=rLrgrar�r�s      rA�test_memory_full_info�!TestProcess.test_memory_full_infoas����N�N����%�%�'�-�-��� � �"���K�K�D��C�&�E��#�#�E�1�4�-�#�@��u�}������� � ��D��3G� �H� ��5�G�G�u�u��#�#�C�G�G�Q�/��5��#�#�C�G�G�Q�/��#�#�C�H�H�a�0�rZc�v�[R"5nUR5nUR[	U5[	[U555 URSS9nUGHinURRS5(aM&[RRUR5(dUR5e[(ar[RRUR5(dA[RRUR5(dUR5eM�M�S[RR#UR5;dGM[R$"UR5n[$R&"UR(5(dUR5eGMl UHhnUR,HUn[/XH5n	US:XaMUS;aU	(dU	5eM,UR1U	[2[445 U	S	:�aMPU	5e Mj g![a[ [(de[S5nUR!5nSSS5 O!,(df   O=fSUR-W;aeGMAf=f![*a GMSf=f)
NF)�grouped�[z/proc/self/smapsz%s (deleted)�64r�)�addr�permsr)r8r9�memory_mapsrFr��setr�rrG�isabsr�exists�islink�AssertionErrorrrr��basename�stat�S_ISREG�st_moderr�r�r��intr)
r=rL�maps�ext_maps�ntr��data�st�fnamer�s
          rA�test_memory_maps�TestProcess.test_memory_mapsqs���N�N����}�}�������T��C��D�	�N�3��=�=��=�/���B��7�7�%�%�c�*�*��w�w�}�}�R�W�W�-�-�6�r�w�w�6�-��5�&�!�w�w�~�~�b�g�g�6�6�"�'�'�.�.��G�G�;�;�#��7�7�#� �;�6� �2�7�7�#3�#3�B�G�G�#<�<�E�!#������!1�B�$(�<�<��
�
�#;�#;�D�R�W�W�D�#;�7�8�B�������*���F�?���-�-� �'�%�'�5��)�)�%�#�t��=� �A�:�,�u�,�:�$���)*�&�$�u�!�"+�+=�!>�!�'(�v�v�x��"?�!>�!>��-����7�t�C� %� D�&��  1�!� �!�s=�A-I�7 J)�!J&�"I<�3	J&�<
J
�J&�%J&�)
J8�7J8c��[R"5n[5nSnUR5Vs/sHoC"UR5PM nnURU"U5U5 SSS5 gs snf!,(df   g=f)Nc�z�[RR[RRU55$r6)rGr�r��normcase)rLs rA�normpath�8TestProcess.test_memory_maps_lists_lib.<locals>.normpath�s&���w�w�'�'����(8�(8��(;�<�<rZ)r8r9r&rur�r�)r=rLr�r�r��libpathss      rA�test_memory_maps_lists_lib�&TestProcess.test_memory_maps_lists_lib�sk��
�N�N���
 �
"�d�
=�34�-�-�/�B�/�Q�����(�/�H�B��M�M�(�4�.�(�3�
#�
"��
C�#�
"�s�A9�A4�A9�4A9�9
Bc���[R"5nUR5 UR[URSS9 [
(d[(d[(aURSS9 gg)Nz?!?)�memtyperj)r8r9rUrIr�rrr
rKs  rA�test_memory_percent�TestProcess.test_memory_percent�sX���N�N���	�������*�a�&6�&6���F��5�E�E�W�W�
���U��+�%rZc��UR5nUR5(deUR5(deUR5 UR5 UR5(aeUR5(aegr6)rB�
is_runningrPrQrKs  rA�test_is_running�TestProcess.test_is_running�sf��������|�|�~�~��~��|�|�~�~��~�	����	�����<�<�>�>�!�!��<�<�>�>�!�!�>rZc��UR5nUR5nURU[5 [USS/5nURUS5 g![a� [
(aZ[
U5[
[5:Xa>[RRnURU"U5U"[55 N�[RS<S[RS<3nURURUS5[R"US55 N�![a GNf=ff=f)Nr�.rtrerqzimport os; print('hey')�hey)rB�exerFr!rzr
r�rGr�r��sys�version_info�replacer.)r=rLr�r��ver�outs      rA�test_exe�TestProcess.test_exe�s��������e�e�g��	����S�*�-�,�#�t�6�7�8������e�$��-�	��w�3�s�8�s�:��6��7�7�+�+��� � ��#����0D�E�"%�!1�!1�!�!4�c�6F�6F�q�6I�J����$�$����C��,�j�.@�.@��b�.I���&�����#	�s0�A�A-E�+E�47D-�-
D<�7E�;D<�<Ec�6�[SS/nURU5n[(d[(d[(a(URUR
5S[5 g[(am[(abUR
5SnU[:waEURSRUR
5SS5SRUSS55 gURSRUR
55SRU55 g)Nrqzimport time; time.sleep(60)r� rt)
r!rBrr	rrF�cmdlinerr�join)r=r�rL�pyexes    rA�test_cmdline�TestProcess.test_cmdline�s����t�%B�C�����g�&���6�W�W������Q�Y�Y�[��^�Z�8��u����	�	��A����J�&��$�$��������Q�R��1�3�8�8�G�A�B�K�3H������S�X�X�a�i�i�k�2�C�H�H�W�4E�FrZzbroken on PYPYc�p�[/nURS/S-5 URSS/5 URU5n[(a"UR	UR5U5 gUR	UR5U5 g![Ra URS5ef=f)Nz-v�2rq�import time; time.sleep(10)z#OPENBSD: process turned into zombie)	r!�extendrBr	rFr�r8�
ZombieProcess�skipTest)r=r�rLs   rA�test_long_cmdline�TestProcess.test_long_cmdline�s����,������v��{�#�����;�<�=����g�&���7�
K�� � �����g�6�
���Q�Y�Y�[�'�2���'�'�
K��m�m�$I�J�J�
K�s�
 B�&B5c�L�UR5nUR5R5n[RR[RR
[R55R5nURU5(dX245egr6)
rBr��lowerrGr�r{r�r��
executabler)r=rLr�r�s    rA�	test_name�TestProcess.test_name�sp��������v�v�x�~�~������ � ����!1�!1�#�.�.�!A�B�H�H�J������%�%�4��}�4�%rZzunreliable on PYPYc�Z�[URSS95nUSS/nURU5n[(a?UR	UR5[RRU55 gUR	UR5[RRU55 g![ai UR5[R:XaE[RRU5RUR55(degef=f)N�01234567890123456789��suffixrqr�)r(r�rBr	rFr�rGr�r{rz�statusr8�
STATUS_ZOMBIEr�r=r�r�rLs    rA�test_long_name�TestProcess.test_long_names����d�o�o�5E�o�F�G���$� =�>�����g�&���7�
�� � �����2�7�7�+;�+;�E�+B�C�
���Q�V�V�X�r�w�w�'7�'7��'>�?��
"�
��8�8�:��!5�!5�5��7�7�+�+�E�2�=�=�a�f�f�h�G�G�G�G��	
�s�=B7�7A/D*�(D*zbroken on SUNOSz
broken on AIXc���[URSS95nUSS/nURU5nURUR	5U5 URUR5[RRU55 UR[RRUR55[RRU55 g)Nz	foo bar )r�rqr�)r(r�rBrFr�r�rGr�r{r�r�r�s    rA�test_prog_w_funky_name�"TestProcess.test_prog_w_funky_names����d�o�o�[�o�A�B���$� =�>�����g�&���������g�.��������2�7�7�#3�#3�E�#:�;�������)�)�!�%�%�'�2�B�G�G�4D�4D�U�4K�LrZc�z�[R"5nUR5up#nURU[R
"55 URU[R"55 [[S5(a4UR[R"5UR55 gg�N�	getresuid)	r8r9�uidsrFrG�getuid�geteuid�hasattrr��r=rL�real�	effective�saveds     rA�	test_uids�TestProcess.test_uids(�z���N�N���!"�����������r�y�y�{�+�����B�J�J�L�1��2�{�#�#����R�\�\�^�Q�V�V�X�6�$rZc�z�[R"5nUR5up#nURU[R
"55 URU[R"55 [[S5(a4UR[R"5UR55 ggr�)	r8r9�gidsrFrG�getgid�getegidr��	getresgidr�s     rA�	test_gids�TestProcess.test_gids6r�rZc��^�U4Sjn[R"5mUR[TRS5 TR	5nURX5 [(GaSn[R[R[R[R[R[R4H�nURUS9 TR	U5 TR	5nU[R[R[R4;aXT:XdUcUnURXS5 OURXT5 SSS5 M� g[!["S5(aVUR["R$"["R&["R("55TR	55 TR	S5 URTR	5S5 [!["S5(aVUR["R$"["R&["R("55TR	55 [*(d2TR	S5 URTR	5S5 gg![Ra GNjf=f!,(df   GM=f![Ra gf=f)Nc�^>�TRU5 g![Ra gf=fr6)�nicer8rm)r�rLs �rAr�&TestProcess.test_nice.<locals>.cleanupEs+���
����t����&�&�
��
�s��,�,�str)�prio�getpriorityrtr)r8r9rIrr�r	r
�IDLE_PRIORITY_CLASS�BELOW_NORMAL_PRIORITY_CLASS�NORMAL_PRIORITY_CLASS�ABOVE_NORMAL_PRIORITY_CLASS�HIGH_PRIORITY_CLASS�REALTIME_PRIORITY_CLASS�subTestrFrmr�rGr��PRIO_PROCESSrHr)r=rr��highest_prior��new_priorLs      @rA�	test_nice�TestProcess.test_niceDs&���	�
�N�N������)�Q�V�V�U�3��v�v�x������&��7��L��*�*��2�2��,�,��2�2��*�*��.�.�
���\�\�t�\�,�=����t��$%�6�6�8��
 �"�>�>�"�6�6�"�:�:�$��
 (�/�<�3G�/3�� $� 0� 0�� H�� �,�,�X�<�)-�,��<
��2�}�-�-��$�$����r����	�	��D�a�f�f�h�����q�	�� � �����1�-��2�}�-�-��$�$����r����	�	��D�a�f�f�h��
�u��F�F�1�I��$�$�Q�V�V�X�q�1���A"�.�.�����-�,��L�&�&�
��
�sD�K
�J2�.A1K
�-EK �2K
�K
�	K
�
K
�
K	� K7�6K7c��[R"5nURUR5[R5 gr6)r8r9rFr��STATUS_RUNNINGrKs  rA�test_status�TestProcess.test_status�s*���N�N����������V�%:�%:�;rZc���UR5nUR5n[(a�URS5up2[R
"5nUR
S5(a[R"S5eURX$5 S[R;a$URU[RS5 ggURU[R
"55 g)N�\�$zrunning as service account�
USERDOMAIN)rB�usernamer
�split�getpass�getuser�endswithr<r=rFrG�environ)r=rLr��domain�getpass_users     rA�
test_username�TestProcess.test_username�s���������:�:�<���7�'�~�~�d�3��F�"�?�?�,�L��$�$�S�)�)��'�'�(D�E�E����X�4��r�z�z�)�� � �����L�)A�B�*�
���X�w���'8�9rZc��UR5nURUR5[R"55 gr6)rBrF�cwdrG�getcwdrKs  rA�test_cwd�TestProcess.test_cwd�s,��������������"�)�)�+�.rZc�d�[SS/nURU5n[URS5 g)Nrqz/import os, time; os.chdir('..'); time.sleep(60)z#ret == os.path.dirname(os.getcwd()))r!rBr%r�)r=rxrLs   rA�
test_cwd_2�TestProcess.test_cwd_2�s3����=�
��

���c�"���1�5�5�?�@rZc
��[R"5nUR5nU(dU5eURURU5 [	[
S5(a9UR
U[[
R"UR555 UR
[U5[[U555 [[[[R"SS9555nUH�nURU/5 UR
UR5U/5 [	[
S5(aGUR
UR5[[
R"UR555 [	US5(dM�UR
UR5SUR55 M� UR/5 [(a9UR
UR5UR R#55 O UR
UR5U5 [	[
S5(aGUR
UR5[[
R"UR555 UR%[&URS5 URU5 UR[U55 UR[)U55 g)N�sched_getaffinityT��percpu�num_cpurrt)r8r9�cpu_affinityr	r�rGrF�listrr:r�rvr�r�r	r�_proc�_get_eligible_cpusrIrr
)r=rL�initial�all_cpus�ns     rA�test_cpu_affinity�TestProcess.test_cpu_affinity�s���N�N����.�.�"������w��������0��2�*�+�+����W�d�2�+?�+?����+F�&G�H�����W��s�3�w�<�'8�9���c�&�"4�"4�D�"A�B�C�D���A�
�N�N�A�3�����Q�^�^�-��s�3��r�.�/�/�� � ��N�N�$�d�2�+?�+?����+F�&G���q�)�$�$�� � ����!1�!�!4�a�i�i�k�B��	
���r���5����Q�^�^�-�q�w�w�/I�/I�/K�L����Q�^�^�-�x�8��2�*�+�+������� �$�r�';�';�A�E�E�'B�"C�
�	
���)�Q�^�^�Q�7�	���w��	���s�8�}�%�	���u�X��'rZc��UR5n[[R"SS95S-/nUR	[
URU5 UR	[
UR[SS55 UR	[URSS/5 UR	[
URSS/5 g)	NTr�
i'i�*r�1r�)	rBr�r8r�rIr�r
r�r)r=rL�invalid_cpus   rA�test_cpu_affinity_errs�"TestProcess.test_cpu_affinity_errs�s���������6�+�+�4�8�9�B�>�?�����*�a�n�n�k�B����*�a�n�n�e�E�5�6I�J����)�Q�^�^�a��X�>����*�a�n�n�q�"�g�>rZc�"�[R"5nUR5nU(dU5eURURU5 [	U5S:�aUSSn/n[[	U5S-5HCn[R"X$5H&nU(dMUR[U55 M( ME UHFnURU5 UR[UR55[U55 MH g)N�rt)r8r9r
r	r�r��	itertools�combinations�appendrrF�sorted)r=rLr�combosr��subset�combos       rA�"test_cpu_affinity_all_combinations�.TestProcess.test_cpu_affinity_all_combinations�s����N�N����.�.�"������w��������0��w�<�"���c�r�l�G����s�7�|�a�'�(�A�#�0�0��<���6��M�M�$�v�,�/�=�)�
�E�
�N�N�5�!����V�A�N�N�$4�5�v�e�}�E�rZz
broken on BSDzunreliable on APPVEYORc�4�[R"5nUR5nUR5nUR	X#5 [US5nUR
S5 UR5 [URS[U5-5nUVs/sH,n[RRUR5PM. nnUR[RRU5U5 [(a7UH1nURU:XdMURUR S5 M3 SSS5 UH8n[RR#UR5(aM3U5e SU-nUR%[&SU/5n[)S5HgnUR5Vs/sH,n[RRUR5PM. nnX&;a OI[*R,"S5 Mi UR[RRU5W5 UH.n[RR#U5(aM)U5e gs snf!,(df   GNI=fs snf)	Nr�sxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzlen(ret) != %ir'z2import time; f = open(r'%s', 'r'); time.sleep(60);rqr�r�)r8r9r��
open_files�assertNotInr�r��flushr%r�rGr�r�r�rrF�position�isfilerBr!r�r��sleep)	r=rLr,�filesr�r��	filenames�filer�s	         rA�test_open_files�TestProcess.test_open_files�s���
�N�N������"�����������'�
�&�$�
�1�
�G�G�K� �
�G�G�I��q�|�|�-=��E�
�-J�K�E�;@�A�5�a����)�)�!�&�&�1�5�I�A��M�M�"�'�'�*�*�6�2�I�>��u�!�D��y�y�F�*��(�(�����=�"� ��D��7�7�>�>�$�)�)�,�,�2�d�2�,��G��O�����z�4��9�:���s��A�;<�<�<�>�J�>�a����)�)�!�&�&�1�>�I�J��"���J�J�t��	�
�M�M�"�'�'�*�*�6�2�I�>��D��7�7�>�>�$�'�'�-��-�'���)B� �
��&Ks,�AJ�3I>�AJ�! J�3J�>J�
Jc���[R"5n[RRnUR5n[
US5nUR5HInU"UR5U"UR5:Xd URUR5:XdMI O- URS[UR55-5eURU"UR5U"UR55 [(aURURS5 O*URURUR55 UR5SnURUSUR5 URUSUR5 URURUR55 SSS5 g!,(df   g=f)N�wzno file found; files=%sr�rrt)r8r9rGr�r�r�r�r%r��fd�filenor��reprrFr
r&)r=rLr�r,�fileobjr-�ntuples       rA�test_open_files_2�TestProcess.test_open_files_2s[��

�N�N����7�7�#�#�����"��
�&�#�
�'�������T�Y�Y�'�8�G�L�L�+A�A��w�w�'�.�.�"2�2��'��i�i�-��a�l�l�n�1E�F���
���X�d�i�i�0�(�7�<�<�2H�I��w�� � ����"�-�� � ����'�.�.�*:�;��\�\�^�A�&�F����V�A�Y����4����V�A�Y��	�	�2����W�\�\�1�<�<�>�:�+�
�
�s�AG�&D.G�
G+c�(�[R"5nUR5nUR5n[	US5nURUR5 URUR5US-5 [R"5nURUR5 URUR5US-5 UR
5 UR
5 URUR5U5 g)Nr1rtr�)	r8r9r��num_fdsr�r	�closerF�socket)r=rLr,�startr-�socks      rA�test_num_fds�TestProcess.test_num_fds1s����N�N������"���	�	����F�C� ������
�
�#��������e�a�i�0��}�}�������
�
�#��������e�a�i�0��
�
���
�
���������e�,rZz not reliable on OPENBSD & NETBSDc��[R"5n[UR55n[	S5H9n[
R"S5 [UR55nXB:�dM9 g URS5e)Nr�g�������?z2num ctx switches still the same after 2 iterations)r8r9rP�num_ctx_switchesr�r�r*r�)r=rL�beforer��afters     rA�test_num_ctx_switches�!TestProcess.test_num_ctx_switches@sj��
�N�N����Q�'�'�)�*���q��A��J�J�t����*�*�,�-�E��~��	�
�i�i�L�M�MrZc�D�[R"5n[[S5(a3UR	UR5[R"55 UR5nUR	UR5[R"55 g)N�getppid)	r8r9r�rGrF�ppidrHrBrHrKs  rA�	test_ppid�TestProcess.test_ppidLsa���N�N����2�y�!�!����Q�V�V�X�r�z�z�|�4�������������2�9�9�;�/rZc�4�UR5nURUR5R[R
"55 [R"5SnUR[R"U5R55 gr�)
rBrF�parentr:rGrHr8�pids�assertIsNoner9)r=rL�
lowest_pids   rA�test_parent�TestProcess.test_parentSs`��������������������5��[�[�]�1�%�
����&�.�.��4�;�;�=�>rZc���[R"5nUR5up#URUR	5U5 URUR	5U5 gr6)r8r9r�rFrM�r=rMr�r�s    rA�test_parent_multi�TestProcess.test_parent_multiZsN�����!�� �4�4�6�������*�*�,�e�4���������0rZc�R�[R"5nUR5(deUR5up#UR	UR5SU5 UR	UR5SU5 UR	UR5SU5 gr�)r8r9�parentsr�rFrTs    rA�test_parents�TestProcess.test_parents`s������!���~�~����� �4�4�6�����������+�V�4�����+�+�-�a�0�%�8�����+�+�-�a�0�&�9rZc��[R"5nURUR5/5 URURSS9/5 UR	SS9nUR5nURSS9nX44HtnUR[U5S5 URUSRUR5 URUSR5UR5 Mv g)NT��	recursiver)�
creationflagsrt)r8r9rF�childrenrBr�r:rI)r=rMr��	children1�	children2r_s      rA�
test_children�TestProcess.test_childrenis������!��������*�B�/�������4��8�"�=��!�!��!�2���O�O�%�	��O�O�d�O�3�	�"�.�H����S��]�A�.����X�a�[�_�_�e�i�i�8����X�a�[�-�-�/����<�/rZc�R�[R"5nUR5up#URUR	5U/5 URUR	SS9X#/5 UR5 UR
5 URUR	SS9/5 g)NTr\)r8r9r�rFr_r\rQrTs    rA�test_children_recursive�#TestProcess.test_children_recursivexs������!�� �4�4�6���������*�U�G�4�������4��8�5�:M�N�	����
�
�
��������4��8�"�=rZc�8�[R"[5n[R"5HnXR5==S-
ss'M  [UR5SS9SSn[(aUS:XaURS5e[R"U5nURSS9nUR[U5[[U555 g![Ra M�f=f![R a gf=f)	Nrtc��US$)Nrt�)r�s rA�<lambda>�6TestProcess.test_children_duplicates.<locals>.<lambda>�s��!�A�$rZ)�keyr�rzPID 0Tr\)�collections�defaultdictrr8�process_iterrI�Errorr�itemsrr�r9r_rFr�rvrm)r=�tablerLr:�cs     rA�test_children_duplicates�$TestProcess.test_children_duplicates�s����'�'��,���$�$�&�A�
��f�f�h��1�$��'��U�[�[�]��7��;�A�>���5�S�A�X��-�-��(�(��N�N�3���	2��
�
�T�
�*�A�
���S��V�S��Q��[�1���<�<�
��
���"�"�	��	�s#�C'�*D�'C?�>C?�D�Dc�n�[R"5nUR5up#URSS9nUR	[U5S5 UR	USU5 UR	USU5 UR
5nUR	USU5 UR	USU5 g)NTr\r�rrt)r8r9r�r_rFr�rX)r=rMr�r�r_rXs      rA�test_parents_and_children�%TestProcess.test_parents_and_children�s������!�� �4�4�6����?�?�T�?�2������X���*�����!��e�,�����!��j�1��$�$�&��������U�+�������V�,rZc�X�UR5nUR5 [S5H=nUR5[R
:Xa O[R"S5 M? UR5 URUR5[R
5 g)Nr�r�)
rBr�r�r�r8�STATUS_STOPPEDr�r*r��assertNotEqual)r=rLr�s   rA�test_suspend_resume�TestProcess.test_suspend_resume�sq�������	�	�	���s��A��x�x�z�V�2�2�2���J�J�t���	
���
����A�H�H�J��(=�(=�>rZc��UR[[RS5 UR[[RS5 g)Nrr�)rIrr8r9r��r=s rA�test_invalid_pid�TestProcess.test_invalid_pid�s.�����)�V�^�^�S�9����*�f�n�n�b�9rZc��[R"5nURSS/S9nUR[	UR55SS/5 [R"[
[R"555nURS/SS9n[US[5(dURUSS5 [R"SS[RS	9 URURS
/SS9S
S05 SSS5 [R"SS[R"URS5S	9 UR[RURS
/S9 SSS5 [R"SS[R "URS5S	9 URURS
/SS9S
S05 SSS5 [R"SS["S	9 UR5nUR%S
[UR555 UR["5 URS
/S9 SSS5 SSS5 UR[&5 URS5 SSS5 UR[(5 URS/5 SSS5 UR[(5 URSS/5 SSS5 g!,(df   GN�=f!,(df   GN�=f!,(df   GNN=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   g=f)
Nr�r�)�attrs�connections�foo)r��ad_valuezpsutil.Process.niceT)�creatergr�rt�bar)r8r9�as_dictrFr�keysr�rN�
isinstancerr)rhrmr;r:rIr��NotImplementedErrorr&rr�)r=rL�ds   rA�test_as_dict�TestProcess.test_as_dict�s����N�N���
�I�I�U�F�O�I�,����������)�E�6�?�;��N�N�3�v�{�{�}�-�.��
�I�I�]�O�e�I�<���!�M�*�D�1�1����Q�}�-�u�5��Z�Z�!�$�F�<O�<O�
�
����	�	���1�	�5���{�
�
��Z�Z�!���,�,�Q�U�U�F�;�
�

���f�2�2�A�I�I�f�X��N�
��Z�Z�!���,�,�Q�U�U�F�;�
�

����	�	���5�	�9�F�E�?�
�
��Z�Z�!�$�<O�
��	�	��A����V�T�!�&�&�(�^�4��"�"�#6�7��	�	���	�)�8�

��
�
�y�
)�
�I�I�f��*�
�
�
�z�
*�
�I�I�u�g��+�
�
�
�z�
*�
�I�I�u�e�n�%�+�
*�S
�
��
�
��
�
��"8�7��

�
��*�
)��
*�
*��
*�
*�sm�&$K6�+L�/$L�5AL=�L,�L=�:M�)M�M0�6
L�
L�
L)�,
L:	�6L=�=
M�
M�
M-�0
M>c�2�[R"5n[R"S5nUR	5 UR5 UR5 SSS5 UR
URS5 SSS5 [R"S5nUR5 UR5 SSS5 UR
WRS5 g!,(df   N�=f!,(df   N{=f!,(df   NM=f)N�$psutil._psplatform.Process.cpu_timesrtr��r8r9r)rh�oneshotr�rF�
call_count�r=rLr�s   rA�test_oneshot�TestProcess.test_oneshot�s����N�N���
�Z�Z�>�
?�1��������
����
��
���Q�\�\�1�-�	@��Z�Z�>�
?�1�
�K�K�M�
�K�K�M�@�	
������q�)����@�
?��@�
?�s.�C7�!C&�$C7� !D�&
C4	�0C7�7
D�
Dc	�^�[R"5n[R"S5n[R"S5nUR	5 UR5 UR5 UR	5 UR5 UR5 SSS5 SSS5 UR
URS5 UR
URS5 SSS5 SSS5 [R"S5nUR5 UR5 SSS5 UR
WRS5 g!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   No=f)Nr�z(psutil._psplatform.Process.oneshot_enterrtr�r�)r=rL�m1�m2r�s     rA�test_oneshot_twice�TestProcess.test_oneshot_twice�s��
�N�N���
�Z�Z�>�
?�2����F�G�2��Y�Y�[��K�K�M��K�K�M��������
����
�%�!�� � �����2�� � �����2�H�@��Z�Z�>�
?�1�
�K�K�M�
�K�K�M�@�	
������q�)�%���!�[��H�G��@�
?��@�
?�s`�F
�E<�1E+�!E	�&E+�.AE<�.F
�!F�
E(
�$E+�+
E9�5E<�<
F
	�F
�
F�
F,c�2�UR5upUR5nUR5nURX45 UR5 UR	UR5U5 UR	UR5U5 SSS5 UR5 UR	UR5U5 UR	UR5U5 SSS5 g!,(df   Nh=f!,(df   g=fr6)r�rIr{r�rF)r=�p1�p2�p1_ppid�p2_ppids     rA�test_oneshot_cache�TestProcess.test_oneshot_caches����)�)�+����'�'�)���'�'�)�����G�-�
�Z�Z�\����R�W�W�Y��0����R�W�W�Y��0���Z�Z�\����R�W�W�Y��0����R�W�W�Y��0��\��\���\�s�AC7�-AD�7
D�
Dc�f^�U4SjnTR5nUR5 UR5 [(a'[	[
RSUR-5 TRU5 [U5nURUR5H
upEU"XE5 M g)Nc�>�U"5n[(aUS;agTRU<SU<S35e![Ra e[Ra g[R
a [(aUS;agef=f)N)r�r�z didn't raise NSP and returned z instead)rGr;)r
r�r8r�r;rmr	)�fun�fun_namerr=s   �rA�assert_raises_nsp�FTestProcess.test_halfway_terminated_process.<locals>.assert_raises_nsp#s����
��e���7�x�?�:���i�i�EH�#�N�����'�'�
���'�'�
���&�&�
��7�x�+E�E���
�s�5�(B�$B�Bz
%s not in ret)rBr\rQr
r%r8rNr:rUr*�iter�all)r=r�rL�nsr�r�s`     rA�test_halfway_terminated_process�+TestProcess.test_halfway_terminated_processs~���	�&
�����	���
�	�����7��v�{�{�O�a�e�e�$;�<����q�!�
�q�
!���������I�C��c�(�)rZc�J�UR5upURU5 gr6)�spawn_zombie�assertProcessZombie)r=rM�zombies   rA�test_zombie_process�TestProcess.test_zombie_processAs ���*�*�,���� � ��(rZc�
�[R"5n[R"S[R"S5S9nUR5(deUR(deSSS5 g!,(df   g=f)Nzpsutil.Processrrf)r8r9r)rhr�r�r�r�s   rA�$test_zombie_process_is_running_w_exc�0TestProcess.test_zombie_process_is_running_w_excFsZ��
�N�N���
�Z�Z��&�*>�*>�q�*A�
�
��<�<�>�>�!�>��8�8�O�8�	
�
�
�s�+A4�4
Bc�8�[R"5n[R"S[R"S5S9nURUR
5[R5 UR(deSSS5 g!,(df   g=f)Nz!psutil._psplatform.Process.statusrrf)	r8r9r)rhr�rFr�r�r�r�s   rA� test_zombie_process_status_w_exc�,TestProcess.test_zombie_process_status_w_excQsi��
�N�N���
�Z�Z�/��,�,�Q�/�
�����Q�X�X�Z��)=�)=�>��8�8�O�8�
�
�
�s�AB�
Bc��UR5n[R"UR5nURUR	5S-4UlUR
5(aeU[R"UR5:wdeSn[U5nURURUR-SS9H=upVURUS9 UR[RX55 SSS5 M? UR[RX2R5 UR[RX2R5 UR[RX2R 5 UR[RX2R"5 g!,(df   M�=f)Nr�z4process no longer exists and its PID has been reusedF)�clear_cache)r�)r7r8r9r:r��_identr�r*r��setters�killersr�rr;rIrMrXr_)r=�subprLrer�r�r�s       rA�test_reused_pid�TestProcess.test_reused_pid]s>���"�"�$���N�N�4�8�8�$���E�E�1�=�=�?�S�0�1����<�<�>�>�!�!��F�N�N�4�8�8�,�,�,�,�D��
�q�
!��������b�j�j�!8�e��L�I�C����4��(��&�&�v�';�';�S�F�)�(�M�	
���v�3�3�S�&�&�A����v�3�3�S�(�(�C����v�3�3�S�)�)�D����v�3�3�S�*�*�E�)�(�s�!F0�0
F?	c�D�S[R"5;a�UR[R[RS5 [R
"S5(aeUR
[R"S5R5S5 g[R"S5n[(a[RO[nURX!R5 URX!R5 URX!R5 URX!R5 URX!R5 URX!R ["R$5 ['U5nUR)UR*UR,-5H~upEU"5nUS;aUR
UR.S5 M1US:Xa1[(aSOSnUR
UR15U5 MhUS:XaU(dU5eM~M� [2(dCUR5S[R"55 [R
"S5(degg![Ra M�f=f)Nrrt)r�r�r�zNT AUTHORITY\SYSTEM�rootr�)r8rNrIr;r9�
pid_existsrFrIr
rmr�rQr\r�r�rPr`rRrSr*r��gettersr�r�r�r	r�)r=rLr/r�r�r�rr�s        rA�
test_pid_0�TestProcess.test_pid_0ns����F�K�K�M�!����f�2�2�F�N�N�A�F��(�(��+�+�+�+����V�^�^�A�.�3�3�5�q�9���N�N�1���%,�W�f�!�!�*�����#�v�v�&����#�{�{�+����#�y�y�)����#�x�x�(����#�v�v�&����#�}�}�f�n�n�=��q�
!��������b�j�j�!8�9�I�C�
&��e���+�+��$�$�S�X�X�q�1��Z�'�5<�W�1�&�D��$�$�Q�Z�Z�\�4�8��V�^��%��%�4�$�:��w��M�M�!�V�[�[�]�+��$�$�Q�'�'�'�'����&�&�
��
�s�<J�J�Jc��SnSUl[R"5nU"UR55nU"[RR55n[(d[(aURX45 ggg)Nc��URSS5 URSS5 [(a6URSS5 URSS5 URSS5 [UR5VVs/sHIupUR	SS5R	SS5UR	SS5R	SS54PMK snn5$s snnf)	N�PLAT�HOME�__CF_USER_TEXT_ENCODING�VERSIONER_PYTHON_PREFER_32_BIT�VERSIONER_PYTHON_VERSION�
re�
)�popr�dictrqr�)r��k�vs   rA�
clean_dict�,TestProcess.test_environ.<locals>.clean_dict�s���
�E�E�&�$��
�E�E�&�$���u����/��6����6��=����0�$�7��
�G�G�I��
&�D�A��I�I�d�B�'�/�/��b�9��I�I�d�B�'�/�/��b�9��&���
��s�>AC
)	�maxDiffr8r9r�rG�copyr
rrF)r=r�rL�d1�d2s     rA�test_environ�TestProcess.test_environ�s_��	� ����N�N���
��	�	��
$��
��
�
���)�
*���s�~�~����R�$�&�srZz<macOS 11+ can't get another process environment, issue #2084c���[R"S5n[UR5US9nUR	U/[
R[
RS9n[R"UR5n[UR5 UR5(deURURR5S5 [(a[ (aUR#5nOUR#5nURUSSS.5 UR'5 URUR(S5 g![R$a gf=f)	Na�
            #include <unistd.h>
            #include <fcntl.h>

            char * const argv[] = {"cat", 0};
            char * const envp[] = {"A=1", "X", "C=3", 0};

            int main(void) {
                // Close stderr on exec so parent can wait for the
                // execve to finish.
                if (fcntl(2, F_SETFD, FD_CLOEXEC) != 0)
                    return 0;
                return execve("/bin/cat", argv, envp);
            }
            )�c_code)�stdinrsrZr�3)�A�Cr)�textwrap�dedentr'r�r7rvrwr8r9r:r1r�rFrsr�rrr�rm�communicate�
returncode)r=rW�cexer@rL�envs      rA�test_weird_environ�TestProcess.test_weird_environ�s����� ����D�O�O�-�d�;���#�#�
�F�*�/�/�*�/�/�$�
��
�N�N�5�9�9�%���Q�U�U���|�|�~�~��~�������*�*�,�c�2��5�Z�Z�
��i�i�k���)�)�+�C�����C�c�2�3�
��������)�)�1�-���&�&�
��
�s�*E
�
E$�#E$)r�N)m�__name__�
__module__�__qualname__�__firstlineno__�__doc__rBrMrXr]rbr<�skipIfrrnryrr�r�r�r�r�r�r�r�rr�r�r�rr0rr�rrr
rrrr$r0r4r7r@rDrrKr-r/rrQrbrmrr�r�r�r�r�r�r r�r�r�rrr�r�r�r�r�r�rrrrrr"rrr.r7r?r	rErJrQrUrYrbrertrwr|r�r�r�r�r�r�r�r�r�r�r�rr�rr��__static_attributes__rirZrAr3r3Msg��)���"�"�	"��_�_��Y��,�G�-�G�"�6�_�_�V�.�/�7�0�7�*8�*2�"�&	'��	L�N��_�_�)�)�?�;�>�<�>�L�$�_�_��Y��-�,�.�,��_�_�-�-��?��U�+�'/�,�@�'/�R�_�_��^�_�5�
�_�_��Y��-�)�.�6�)�V�_�_��^�_�5�
�_�_��[�"E�F�-�G�6�-�4�_�_��^�_�5�4�6�4�.�_�_��^�_�5�
6�6�
6��_�_��^�_�5�J�6�J�(�_�_��^�_�5�J�6�J��_�_��^�_�5�	4�6�	4�/�"�_�_��[�.�1�/�2�/�
�_�_��_�o�6�>�7�>�&���5�)�
�_�_��_�o�6�
�7�*��
�$��;��;�<1� �_�_��(�/�:�+-�;�+-�Z�_�_��(�/�:�	4�;�	4�,�"�%�:G�(�_�_�T�+�,�
3�-�
3�5��_�_�T�/�0�@�1�@�.�_�_�U�-�.�
�_�_�S�/�*�
�_�_�T�+�,�	M�-�+�/�	M��_�_��Y��-�7�.�7��_�_��Y��-�7�.�7�=�~<�:�"/�A��_�_�)�)�?�;�'(�<�'(�R�_�_�)�)�?�;�?�<�?��_�_�)�)�?�;�F�<�F�(�_�_�S�/�*�
�_�_�X�7�8�.�9�+�.�D�_�_�S�/�*�
�_�_�X�7�8�;�9�+�;�8�_�_��Y��-�-�.�-��U�+�
�_�_�W�&��(J�K�N�L�,�N�0�?�1���:��:�
=�>�2�(-�?�:�5&�n*�*�(
1�$)�L�_�_��Y��-�)�.�)��_�_��Y��-��.���_�_��Y��-�	�.�	�F�"%(�N�_�_��_�o�6�%�7�%�0�_�_��_�o�6�
�_�_��Y��-�
�_�_��F��%.�	�.�7�%.rZr3c��^�\rSrSrSr\"\S5(a"\R"5r\R"5r
U4SjrU4SjrU4Sjr
Sr\R "SS	5S
5rSrU=r$)�LimitedUserTestCasei�zRepeat the previous tests by using a limited user.
Executed only on UNIX and only if the user who run the test script
is root.
r�c	�>^�[5R"U0UD6 [U5Vs/sHo3RS5(dMUPM snH4n[	X5mU4Sjn[X[R"XP55 M6 gs snf)N�testc�J>�T"5 g![Ra gf=fr6)r8rm)r=�meths �rA�test_�+LimitedUserTestCase.__init__.<locals>.test_�s%�������!�.�.����s��"�")r�__init__rrr��setattr�types�
MethodType)r=r>r?r��attrr�r��	__class__s      @�rAr��LimitedUserTestCase.__init__�sj����G���d�-�f�-�%(��I�F�I�q���f�1E��I�F���t�*�����E�$4�$4�U�$A�B�G��Fs�B	�B	c�>�[5R5 [R"S5 [R"S5 g)Ni�)r�setUprG�setegid�seteuid�r=rs �rAr�LimitedUserTestCase.setUp�s&����G�M�M�O��J�J�t���J�J�t�rZc�>�[R"UR5 [R"UR5 [5R
5 gr6)rGr�PROCESS_UIDr�PROCESS_GIDr�tearDownrs �rAr�LimitedUserTestCase.tearDowns5����J�J�t�'�'�(��J�J�t�'�'�(��G���rZc��[R"5RS5 URS5e![Ra gf=f)Nr�zexception not raised)r8r9r�r�rmrs rAr��LimitedUserTestCase.test_nicesH��
8���� �%�%�b�)��i�i� 6�7�7���&�&�
��
�s�$7�A�
Artzcauses problem as rootc��gr6rirs rAr��'LimitedUserTestCase.test_zombie_processs��rZri)r�r�r�r�r�r�rGr�r	r�r
r�rrr�r<r�r�r��
__classcell__)rs@rAr�r��sb���	��2�x� � ��)�)�+�K��)�)�+�K�
	C�	�
	�
	8�
����4�	5�	�
6�	rZr�c�:�\rSrSrSr\S5rSrSrSr	Sr
g)	�	TestPopenizTests for psutil.Popen class.c��[5 gr6r+)�clss rA�
tearDownClass�TestPopen.tearDownClasss���rZc�r�[SS/n[R"U[R[R[
S9nUR
5 UR5 UR UR[U55 UR[[US5 UR5 SSS5 [(a1UR!WR#S5[$R&*5 gUR!WR#S5[$R&5 g!,(df   Nz=f)Nrq�import time; time.sleep(60);��stdoutrsr�r�ru)r!r8�Popenrvrwr"r�r�r��
assertTruerrIrJr�r\rrFrQrRrS�r=rx�procs   rA�	test_misc�TestPopen.test_misc s����4�!?�@��
�\�\���?�?��?�?��	
�
��I�I�K��N�N���J�J��O�O�C��I�&����n�g�t�U�C��N�N��
��5����T�Y�Y�q�\�F�N�N�?�;����T�Y�Y�q�\�6�>�>�:�
�
�s
�A3D(�(
D6c���[R"[S/[R[R[R[
S9nUR
5 SSS5 WRR(deURR(deURR(deURURS5 g!,(df   N�=f)Nz-V)rrsr�r�r)
r8rr!rvrwr"r�r�closedrsr�rFr�)r=rs  rA�test_ctx_manager�TestPopen.test_ctx_manager6s���
�\�\�
����?�?��?�?��/�/��
������
��{�{�!�!�!�!��{�{�!�!�!�!��z�z� � � � �������!�,�
�
�s�
C�
C(c��[SS/n[R"U[R[R[
S9nUR
5 UR5 UR[RUR5 UR[RUR5 UR[RUR[R5 [(arUR[RUR[R5 UR[RUR[R 5 SSS5 g!,(df   g=f)Nrqrr)r!r8rrvrwr"r\rQrIr;rPr`rRrSr
�CTRL_C_EVENT�CTRL_BREAK_EVENTrs   rA�test_kill_terminate�TestPopen.test_kill_terminateDs���4�!?�@��
�\�\���?�?��?�?��	
�
��N�N���I�I�K����f�2�2�D�N�N�C����f�2�2�D�I�I�>�����$�$�d�&6�&6����
��w��!�!��(�(�$�*:�*:�F�<O�<O���!�!��(�(��$�$��+�+��#
�
�
�s
�D+E5�5
FriN)r�r�r�r�r��classmethodrr r$r)r�rirZrArrs&��'�����;�,-�rZr�__main__)�
run_from_name)Hr�rmrjr�rrGrRr<r|rvr�r�r�r�r<r8rrrrrr	r
rrr
�psutil._commonr�psutil._compatrrrr�psutil.testsrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r,r-r.r/r0r1r3r�r�rr��psutil.tests.runnerr-�__file__rirZrA�<module>r3s��&�����	�
�
���
�����
�����������$��,�� �!�#�'�'�)�$�#�(�)�-�#�$�%��#�'�'�#�#�,�%�&��*�&�)��.�0�%�L.�.�L.�h,	�R�Y�Y�[�A�
�.�k�.�lE��E�P�z��1��(��rZ

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