§
    ±Ûgéé  ã                   ó¢  — d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlZddlZddlZddlmZ ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddlm!Z! ddlm"Z" ddlm#Z# ddlm$Z$ ddlm%Z% ddlm&Z& ddlm'Z' ddlm(Z( ddlm)Z) ddlm*Z* ddlm+Z+ ddlm,Z, ddlm-Z- ddlm.Z. ddlm/Z/ ddlm0Z0 dd lm1Z1 dd!lm2Z2 dd"lm3Z3 dd#lm4Z4 dd$lm5Z5 dd%lm6Z6 dd&lm7Z7 dd'lm8Z8 dd(lm9Z9 dd)lm:Z: dd*lm;Z;  G d+„ d,e.¦  «        Z< G d-„ d.e.¦  «        Z=dS )/úTests for psutil.Process class.é    N)Úmock)ÚAIX)ÚBSD)ÚLINUX)ÚMACOS)ÚNETBSD)ÚOPENBSD)ÚOSX)ÚPOSIX)ÚWINDOWS)Ú	open_text)Ú
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)Úprocess_namespace)Úpytest©Úreap_children)Úretry_on_failure)Úsh)Úskip_on_access_denied)Úskip_on_not_implemented)Úwait_for_pidc                   ó  — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Ze	j
                             e d¬¦  «        d	„ ¦   «         Zd
„ Ze	j
                             ed¬¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze	j
                             e d¬¦  «        d„ ¦   «         Zd„ Ze	j
                             e d¬¦  «        d„ ¦   «         Ze	j
                             e d¬¦  «         ee¬¦  «        d„ ¦   «         ¦   «         Ze	j
                             e  d¬¦  «        e	j
                             e d¬¦  «        d„ ¦   «         ¦   «         Z!e	j
                             e  d¬¦  «        e	j
                             e" d¬¦  «        d„ ¦   «         ¦   «         Z#e	j
                             e$ d¬¦  «        d„ ¦   «         Z%e	j
                             e$ d¬¦  «        d „ ¦   «         Z&e	j
                             e$ d¬¦  «        d!„ ¦   «         Z'e	j
                             e$ d¬¦  «        d"„ ¦   «         Z(e	j
                             e$ d¬¦  «        d#„ ¦   «         Z)d$„ Z*e	j
                             e" d%¬¦  «        d&„ ¦   «         Z+e	j
                             e, d¬¦  «        d'„ ¦   «         Z- e.¦   «          e/e0¬¦  «        e	j
                             e, d¬¦  «        d(„ ¦   «         ¦   «         ¦   «         Z1 e.¦   «         d)„ ¦   «         Z2d*„ Z3e	j
                             e4 d¬¦  «        d+„ ¦   «         Z5e	j
                             e4 d¬¦  «        d,„ ¦   «         Z6d-„ Z7d.„ Z8d/„ Z9d0„ Z:e	j
                             e;d1¬¦  «        d2„ ¦   «         Z<d3„ Z=e	j
                             e;d4¬¦  «        d5„ ¦   «         Z>e	j
                             e d¬¦  «        d6„ ¦   «         Z?e	j
                             e d¬¦  «        d7„ ¦   «         Z@d8„ ZAd9„ ZBd:„ ZCd;„ ZDd<„ ZEe	j
                             eF d¬¦  «        d=„ ¦   «         ZGe	j
                             eF d¬¦  «        d>„ ¦   «         ZHe	j
                             eF d¬¦  «        d?„ ¦   «         ZIe	j
                             eJd@¬¦  «        dA„ ¦   «         ZKe	j
                             eJd@¬¦  «        dB„ ¦   «         ZLe	j
                             e d¬¦  «        dC„ ¦   «         ZM ee¬¦  «        e	j
                             eNpedD¬¦  «        dE„ ¦   «         ¦   «         ZOdF„ ZPdG„ ZQdH„ ZR e.¦   «         dI„ ¦   «         ZSdJ„ ZTdK„ ZUdL„ ZVdM„ ZWdN„ ZXdO„ ZYdP„ ZZdQ„ Z[dR„ Z\dS„ Z]dT„ Z^e	j
                             e d¬¦  «        dU„ ¦   «         Z_e	j
                             e d¬¦  «        dV„ ¦   «         Z`e	j
                             e d¬¦  «        dW„ ¦   «         ZadX„ ZbdY„ Zce	j
                             ed d¬¦  «        dZ„ ¦   «         Zee	j
                             ed d¬¦  «        e	j
                             e d¬¦  «        e	j
                             efd[¬¦  «        e	j
                             ed\¬¦  «        d]„ ¦   «         ¦   «         ¦   «         ¦   «         Zgd^S )_ÚTestProcessr   c                 ó¬   —  | j         |i |¤Ž}	 t          j        |j        ¦  «        S # t          j        $ r |                      |j        ¦  «         ‚ w xY w©N)Úspawn_testprocÚpsutilÚProcessÚpidÚNoSuchProcessÚassertPidGone)ÚselfÚargsÚkwargsÚsprocs       úO/granary/edev/quantum/lib/python3.11/site-packages/psutil/tests/test_process.pyÚspawn_psproczTestProcess.spawn_psprocL   sg   € Ø#�Ô# TÐ4¨VÐ4Ð4ˆð	Ý”> %¤)Ñ,Ô,Ð,øÝÔ#ð 	ð 	ð 	Ø×Ò˜uœyÑ)Ô)Ð)Øð	øøøs	   �( ¨+Ac                 óÚ   — t          j        ¦   «         }|j        t          j        ¦   «         k    sJ ‚t          j        t          ¦  «        5  d|_        d d d ¦  «         d S # 1 swxY w Y   d S )Né!   )r2   r3   r4   ÚosÚgetpidr%   ÚraisesÚAttributeError©r7   Úps     r;   Útest_pidzTestProcess.test_pidV   s£   € ÝŒNÑÔˆØŒu�œ	™œÒ#Ð#Ð#Ð#ÝŒ]�>Ñ*Ô*ð 	ð 	ØˆAŒEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÁA Á A$Á'A$c                 ó  — |                       ¦   «         }|                     ¦   «          |                     ¦   «         }t          r|t          j        k    sJ ‚n|t          j         k    sJ ‚|                      |¦  «         d S r0   )r<   ÚkillÚwaitr   ÚsignalÚSIGTERMÚSIGKILLÚassertProcessGone©r7   rD   Úcodes      r;   Ú	test_killzTestProcess.test_kill\   sz   € Ø×ÒÑÔˆØ	�Š‰ŒˆØ�vŠv‰xŒxˆÝð 	+Ø�6œ>Ò)Ð)Ð)Ð)Ð)à�FœN˜?Ò*Ð*Ð*Ð*Ø×Ò˜qÑ!Ô!Ð!Ð!Ð!ó    c                 ó  — |                       ¦   «         }|                     ¦   «          |                     ¦   «         }t          r|t          j        k    sJ ‚n|t          j         k    sJ ‚|                      |¦  «         d S r0   )r<   Ú	terminaterH   r   rI   rJ   rL   rM   s      r;   Útest_terminatezTestProcess.test_terminatef   sz   € Ø×ÒÑÔˆØ	�Š‰ŒˆØ�vŠv‰xŒxˆÝð 	+Ø�6œ>Ò)Ð)Ð)Ð)Ð)à�FœN˜?Ò*Ð*Ð*Ð*Ø×Ò˜qÑ!Ô!Ð!Ð!Ð!rP   c                 ó  — t           rt          j        nt          j        }|                      ¦   «         }|                     |¦  «         |                     ¦   «         }t          r	||k    sJ ‚n	|| k    sJ ‚|                      |¦  «         d S r0   )	r   rI   rK   rJ   r<   Úsend_signalrH   r   rL   )r7   ÚsigrD   rN   s       r;   Útest_send_signalzTestProcess.test_send_signalp   s„   € Ý %Ð9�fŒnˆn­6¬>ˆØ×ÒÑÔˆØ	�Š�cÑÔÐØ�vŠv‰xŒxˆÝð 	 Ø˜3’;�;�;�;�;à˜C˜4’<�<�<�<Ø×Ò˜qÑ!Ô!Ð!Ð!Ð!rP   z	not POSIX)Úreasonc                 óh  — t           j        }|                      ¦   «         }t          j        dt
          ¬¦  «        5  t          j        t          j	        ¦  «        5  | 
                    |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                      ¦   «         }t          j        dt          ¬¦  «        5  t          j        t          j        ¦  «        5  | 
                    |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nzpsutil.os.kill©Úside_effect)rI   rJ   r<   r   ÚpatchÚProcessLookupErrorr%   rA   r2   r5   rU   ÚPermissionErrorÚAccessDenied)r7   rV   rD   s      r;   Útest_send_signal_mockedz#TestProcess.test_send_signal_mocked{   s  € åŒnˆØ×ÒÑÔˆÝŒZÐ(Õ6HÐIÑIÔIð 	#ð 	#Ý”�vÔ3Ñ4Ô4ð #ð #Ø—’˜cÑ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð ×ÒÑÔˆÝŒZÐ(µoÐFÑFÔFð 	#ð 	#Ý”�vÔ2Ñ3Ô3ð #ð #Ø—’˜cÑ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#sk   ¼BÁA=Á1BÁ=B	ÂBÂB	ÂBÂBÂBÃD'Ã-DÄD'ÄD	ÄD'ÄD	ÄD'Ä'D+Ä.D+c                 óž  — t           ddg}|                      |¦  «        }|                     ¦   «         }|dk    sJ ‚|                      |¦  «         t           ddg}|                      |t          j        ¬¦  «        }|                     ¦   «         }|dk    sJ ‚|                      |¦  «         t           ddg}|                      |¦  «        }|                     ¦   «         }|dk    sJ ‚|                      |¦  «         t           dd	g}|                      |¦  «        }|                     ¦   «         }|dk    sJ ‚|                      |¦  «         d S )
Nú-cÚpassr   z1 / 0)Ústderré   zimport sys; sys.exit(5);é   zimport os; os._exit(5);)r   r<   rH   rL   Ú
subprocessÚPIPE)r7   ÚcmdrD   rN   s       r;   Útest_wait_exitedzTestProcess.test_wait_exitedˆ   sG  € õ ˜4 Ð(ˆØ×Ò˜cÑ"Ô"ˆØ�vŠv‰xŒxˆØ�qŠyˆyˆyˆyØ×Ò˜qÑ!Ô!Ð!å˜4 Ð)ˆØ×Ò˜c­*¬/ÐÑ:Ô:ˆØ�vŠv‰xŒxˆØ�qŠyˆyˆyˆyØ×Ò˜qÑ!Ô!Ð!å˜4Ð!;Ð<ˆØ×Ò˜cÑ"Ô"ˆØ�vŠv‰xŒxˆØ�qŠyˆyˆyˆyØ×Ò˜qÑ!Ô!Ð!å˜4Ð!:Ð;ˆØ×Ò˜cÑ"Ô"ˆØ�vŠv‰xŒxˆØ�qŠyˆyˆyˆyØ×Ò˜qÑ!Ô!Ð!Ð!Ð!rP   zfails on NETBSDc                 óø  — |                       ¦   «         }t          �rA|                     t          j        ¦  «         t          j        t          j        ¦  «        5  | 	                    d¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     t          j
        ¦  «         t          j        t          j        ¦  «        5  | 	                    d¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     t          j        ¦  «         | 	                    ¦   «         t          j         k    sJ ‚| 	                    ¦   «         t          j         k    sJ ‚d S |                     ¦   «          t          j        t          j        ¦  «        5  | 	                    d¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          t          j        t          j        ¦  «        5  | 	                    d¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          | 	                    ¦   «         t          j        k    sJ ‚| 	                    ¦   «         t          j        k    sJ ‚d S )Nçü©ñÒMbP?)Útimeout)r<   r   rU   rI   ÚSIGSTOPr%   rA   r2   ÚTimeoutExpiredrH   ÚSIGCONTrJ   ÚsuspendÚresumerR   rC   s     r;   Útest_wait_stoppedzTestProcess.test_wait_stopped£   sì  € à×ÒÑÔˆÝñ 	.ð �MŠM�&œ.Ñ)Ô)Ð)Ý”�vÔ4Ñ5Ô5ð &ð &Ø—’˜u�Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &à�MŠM�&œ.Ñ)Ô)Ð)Ý”�vÔ4Ñ5Ô5ð &ð &Ø—’˜u�Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &à�MŠM�&œ.Ñ)Ô)Ð)Ø—6’6‘8”8¥¤˜Ò.Ð.Ð.Ð.Ø—6’6‘8”8¥¤˜Ò.Ð.Ð.Ð.Ð.Ð.à�IŠI‰KŒKˆKÝ”�vÔ4Ñ5Ô5ð &ð &Ø—’˜u�Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &à�HŠH‰JŒJˆJÝ”�vÔ4Ñ5Ô5ð &ð &Ø—’˜u�Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &à�KŠK‰MŒMˆMØ—6’6‘8”8�vœ~Ò-Ð-Ð-Ð-Ø—6’6‘8”8�vœ~Ò-Ð-Ð-Ð-Ð-Ð-sH   ÁA=Á=BÂBÃC(Ã(C,Ã/C,ÆF3Æ3F7Æ:F7Ç0HÈHÈHc                 óˆ  — |                       ¦   «         \  }}t          j        t          j        ¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          j        ¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          |                     ¦   «          |                     ¦   «         }|                     ¦   «         }t          r|t          j	         k    sJ ‚|�J ‚d S |t          j	        k    sJ ‚|t          j	        k    sJ ‚d S )Nç{®Gáz„?)
Úspawn_children_pairr%   rA   r2   ro   rH   rR   r   rI   rJ   )r7   ÚchildÚ
grandchildÚ	child_retÚgrandchild_rets        r;   Útest_wait_non_childrenz"TestProcess.test_wait_non_children½   s«  € ð !×4Ò4Ñ6Ô6ÑˆˆzÝŒ]�6Ô0Ñ1Ô1ð 	ð 	Ø�JŠJ�tÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]�6Ô0Ñ1Ô1ð 	"ð 	"Ø�OŠO˜DÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	�ŠÑÔÐØ×ÒÑÔÐØ—J’J‘L”Lˆ	Ø#ŸšÑ*Ô*ˆÝð 	/Ø¥¤ Ò/Ð/Ð/Ð/ð "Ð)Ð)Ð)Ð)Ð)à¥¤Ò.Ð.Ð.Ð.Ø¥¤Ò.Ð.Ð.Ð.Ð.Ð.s#   ¶AÁAÁAÂB#Â#B'Â*B'c                 ó  — |                       ¦   «         }|                     ¦   «          t          j        t          j        ¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          j        ¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nru   r   éÿÿÿÿ)r<   Únamer%   rA   r2   ro   rH   Ú
ValueErrorrC   s     r;   Útest_wait_timeoutzTestProcess.test_wait_timeoutÔ   s‘  € Ø×ÒÑÔˆØ	�Š‰ŒˆÝŒ]�6Ô0Ñ1Ô1ð 	ð 	Ø�FŠF�4‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]�6Ô0Ñ1Ô1ð 	ð 	Ø�FŠF�1‰IŒIˆIð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]�:Ñ&Ô&ð 	ð 	Ø�FŠF�2‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s6   ÁA)Á)A-Á0A-ÂB4Â4B8Â;B8ÃC;Ã;C?ÄC?c                 ó„  — |                       ¦   «         }t          j        t          j        ¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          t          j        ¦   «         t          z   }t          j        ¦   «         |k     rC	 |                     d¦  «        }nA# t          j        $ r Y nw xY wt          j        ¦   «         |k     °C|  	                    d¦  «        ‚t          r|t          j         k    sJ ‚n|t          j        k    sJ ‚|                      |¦  «         d S )Nr   rm   )r<   r%   rA   r2   ro   rH   rG   Útimer   Úfailr   rI   rK   rJ   rL   )r7   rD   Ústop_atrN   s       r;   Útest_wait_timeout_nonblockingz)TestProcess.test_wait_timeout_nonblockingÞ   sf  € Ø×ÒÑÔˆÝŒ]�6Ô0Ñ1Ô1ð 	ð 	Ø�FŠF�1‰IŒIˆIð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à	�Š‰ŒˆÝ”)‘+”+¥Ñ.ˆÝŒi‰kŒk˜GÒ#Ð#ðØ—v’v˜a‘y”y�ØøÝÔ(ð ð ð Ø�ðøøøõ	 Œi‰kŒk˜GÒ#Ð#ð —)’)˜IÑ&Ô&Ð&Ýð 	*Ø�FœN˜?Ò*Ð*Ð*Ð*Ð*à�6œ>Ò)Ð)Ð)Ð)Ø×Ò˜qÑ!Ô!Ð!Ð!Ð!s#   ³AÁAÁAÂ'B= Â=CÃCc                 ó¢  — t          j        ¦   «         }|                     d¬¦  «         |                     d¬¦  «         t          d¦  «        D ]7}|                     d ¬¦  «        }t	          |t
          ¦  «        sJ ‚|dk    sJ ‚Œ8t          j        t          ¦  «        5  |                     d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrl   )Úintervaléd   ç        r}   )	r2   r3   Úcpu_percentÚrangeÚ
isinstanceÚfloatr%   rA   r   )r7   rD   Ú_Úpercents       r;   Útest_cpu_percentzTestProcess.test_cpu_percentò   s  € ÝŒNÑÔˆØ	�Š˜uˆÑ%Ô%Ð%Ø	�Š˜uˆÑ%Ô%Ð%Ý�s‘”ð 	"ð 	"ˆAØ—m’m¨T�mÑ2Ô2ˆGÝ˜g¥uÑ-Ô-Ð-Ð-Ð-Ø˜c’>�>�>�>�>ÝŒ]�:Ñ&Ô&ð 	'ð 	'Ø�MŠM 2ˆMÑ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	'ð 	's   Â CÃCÃCc                 óÂ   — t          j        dd ¬¦  «        5 }t          j        ¦   «                              ¦   «          |j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nzpsutil.cpu_count)Úreturn_value)r   r\   r2   r3   rŠ   Úcalled)r7   Úms     r;   Útest_cpu_percent_numcpus_nonez)TestProcess.test_cpu_percent_numcpus_noneý   s    € åŒZÐ*¸Ð>Ñ>Ô>ð 	À!ÝŒNÑÔ×(Ò(Ñ*Ô*Ð*Ø”8ˆOˆOˆOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   —/AÁAÁAc           
      ó®  — t          j        ¦   «                              ¦   «         }|j        dk    s
J |¦   «         ‚|j        dk    s
J |¦   «         ‚|j        dk    s
J |¦   «         ‚|j        dk    s
J |¦   «         ‚t          r|j        dk    s
J |¦   «         ‚|j	        D ]7}t          j        dt          j        t          ||¦  «        ¦  «        ¦  «         Œ8d S )Nr‰   z%H:%M:%S)r2   r3   Ú	cpu_timesÚuserÚsystemÚchildren_userÚchildren_systemr   ÚiowaitÚ_fieldsr‚   ÚstrftimeÚ	localtimeÚgetattr)r7   Útimesr~   s      r;   Útest_cpu_timeszTestProcess.test_cpu_times  sô   € Ý”Ñ Ô ×*Ò*Ñ,Ô,ˆØŒz˜SÒ Ð Ð  %Ñ Ô Ð ØŒ|˜sÒ"Ð"Ð" EÑ"Ô"Ð"ØÔ" cÒ)Ð)Ð)¨5Ñ)Ô)Ð)ØÔ$¨Ò+Ð+Ð+¨UÑ+Ô+Ð+Ýð 	.Ø”< 3Ò&Ð&Ð&¨Ñ&Ô&Ð&à”Mð 	Lð 	LˆDÝŒM˜*¥d¤nµW¸UÀDÑ5IÔ5IÑ&JÔ&JÑKÔKÐKÐKð	Lð 	LrP   c                 ó  — d„ } |¦   «          t          j        ¦   «                              ¦   «         }t          j        ¦   «         }|                      |j        |j        d¬¦  «         |                      |j        |j        d¬¦  «         d S )Nc                  óÞ   — t          j        ¦   «         j        dz   } t          j        ¦   «         j        | k     r5t          d¦  «        D ]}|dz  }Œt          j        ¦   «         j        | k     °3d S d S )Ngš™™™™™É?i † é   )r?   r¡   r˜   r‹   )r„   Úxs     r;   Ú	waste_cpuz/TestProcess.test_cpu_times_2.<locals>.waste_cpu  sh   € Ý”h‘j”j”o¨Ñ+ˆGÝ”(‘*”*”/ GÒ+Ð+Ý˜v™œð ð �AØ˜!‘G�A�Aõ ”(‘*”*”/ GÒ+Ð+Ð+Ð+Ð+Ð+rP   çš™™™™™¹?)Údelta)r2   r3   r—   r?   r¡   ÚassertAlmostEqualr˜   r™   )r7   r§   ÚaÚbs       r;   Útest_cpu_times_2zTestProcess.test_cpu_times_2  s†   € ð	ð 	ð 	ð 	ˆ	‰ŒˆÝŒNÑÔ×&Ò&Ñ(Ô(ˆÝŒH‰JŒJˆØ×Ò˜qœv q¤v°SÐÑ9Ô9Ð9Ø×Ò˜qœx¨¬¸ÐÑ=Ô=Ð=Ð=Ð=rP   znot supportedc                 ó  — t          j        ¦   «         }|                     ¦   «         }|dk    sJ ‚t          j        ¦   «         dk    r|dk    sJ ‚|                     ¦   «         t	          t          j        ¦   «         ¦  «        v sJ ‚d S ©Nr   re   )r2   r3   Úcpu_numÚ	cpu_countr‹   )r7   rD   Únums      r;   Útest_cpu_numzTestProcess.test_cpu_num  sz   € åŒNÑÔˆØ�iŠi‰kŒkˆØ�aŠxˆxˆxˆxÝÔÑÔ Ò"Ð"Ø˜!’8�8�8�8Ø�yŠy‰{Œ{�e¥FÔ$4Ñ$6Ô$6Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7rP   c                 óZ  — |                       ¦   «         }t          j        ¦   «         }|                     ¦   «         }t          ||z
  ¦  «        }|dk    r|                      d|› d|› d|› �¦  «        ‚t          j        dt          j        |                     ¦   «         ¦  «        ¦  «         d S )Nr¥   z
expected: z	, found: z, difference: z%Y %m %d %H:%M:%S)r<   r‚   Úcreate_timeÚabsrƒ   rž   rŸ   )r7   rD   Únowrµ   Ú
differences        r;   Útest_create_timezTestProcess.test_create_time%  sµ   € Ø×ÒÑÔˆÝŒi‰kŒkˆØ—m’m‘o”oˆõ
 ˜ sÑ*Ñ+Ô+ˆ
Ø˜Š>ˆ>Ø—)’)ð!˜Sð !ð !¨;ð !ð !Øð!ð !ñô ð õ 	ŒÐ)­4¬>¸!¿-º-¹/¼/Ñ+JÔ+JÑKÔKÐKÐKÐKrP   z
POSIX onlyc                 ó  — t          j        ¦   «                              ¦   «         }|�Y	 t          j                             t          d¦  «        ¦  «        }||k    sJ ‚d S # t          $ r t          j	        d¦  «        ‚w xY wd S )NÚttyzcan't rely on `tty` CLI)
r2   r3   Úterminalr?   ÚpathÚrealpathr)   ÚRuntimeErrorr%   Úskip)r7   r¼   r»   s      r;   Útest_terminalzTestProcess.test_terminal7  sŠ   € å”>Ñ#Ô#×,Ò,Ñ.Ô.ˆØÐð'Ý”g×&Ò&¥r¨%¡y¤yÑ1Ô1�ð
   3’�����øõ	  ð =ð =ð =å”kÐ";Ñ<Ô<Ð<ð=øøøð  Ðs   ©,A ÁA>)Úonly_ifc                 óŠ  — t          j        ¦   «         }|                     ¦   «         }t          t          d¦  «        5 }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         }t          sWt          sP|j        |j        k    sJ ‚|j	        |j	        k    sJ ‚t          r$|j        |j        k    sJ ‚|j        |j        k    sJ ‚n$|j        |j        k    sJ ‚|j        |j        k    sJ ‚|                     ¦   «         }t          |                      ¦   «         d¦  «        5 }|                     t#          ddz  d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         }|j	        |j	        k    sJ ‚|j        |j        k    sJ ‚|j        |j        k    sJ ‚|j        |j        k    sJ ‚t          r$|j        |j        k    sJ ‚|j        |j        k    sJ ‚t%          t'          |¦  «        ¦  «        D ],}t          r|dk    rŒ||         dk    sJ ‚||         dk    sJ ‚Œ-d S )NÚrbÚwbr¦   i@B Úasciir¥   r   )r2   r3   Úio_countersÚopenr   Úreadr   r   Ú
read_countÚwrite_countr   Ú
read_charsÚwrite_charsÚ
read_bytesÚwrite_bytesÚ
get_testfnÚwriteÚbytesr‹   Úlen)r7   rD   Úio1ÚfÚio2Úis         r;   Útest_io_counterszTestProcess.test_io_countersC  s¼  € õ ŒNÑÔˆà�mŠm‰oŒoˆÝ•*˜dÑ#Ô#ð 	 qØ�FŠF‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�mŠm‰oŒoˆÝð 	6�3ð 	6Ø”> C¤NÒ2Ð2Ð2Ð2Ø”? c¤oÒ5Ð5Ð5Ð5Ýð :Ø”~¨¬Ò6Ð6Ð6Ð6Ø”¨#¬/Ò9Ð9Ð9Ð9øà”> S¤^Ò3Ð3Ð3Ð3Ø”? c¤oÒ5Ð5Ð5Ð5ð �mŠm‰oŒoˆÝ�$—/’/Ñ#Ô# TÑ*Ô*ð 	3¨aØ�GŠG•E˜# ™-¨Ñ1Ô1Ñ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3à�mŠm‰oŒoˆØŒ #¤/Ò1Ð1Ð1Ð1ØŒ #¤/Ò1Ð1Ð1Ð1ØŒ~ ¤Ò/Ð/Ð/Ð/ØŒ~ ¤Ò/Ð/Ð/Ð/Ýð 	4Ø”? S¤_Ò4Ð4Ð4Ð4Ø”> S¤^Ò3Ð3Ð3Ð3õ •s˜3‘x”x‘”ð 	ð 	ˆAÝð �q˜A’v�vàØ�q”6˜Q’;�;�;�;Ø�q”6˜Q’;�;�;�;�;ð	ð 	s#   ½AÁA"Á%A"Ä5'E(Å(E,Å/E,z
linux onlyc                 ó  ‡— ˆfd„}t          j        ¦   «         Št          s*‰                     ¦   «         d         t           j        k    sJ ‚t           j        dk    sJ ‚t           j        dk    sJ ‚t           j        dk    sJ ‚t           j        dk    sJ ‚‰                     ¦   «         }|                      ||¦  «         ‰                     t           j        ¦  «         t          ‰                     ¦   «         ¦  «        t           j        dfk    sJ ‚t          j        t          ¦  «        5  ‰                     t           j        d¬¦  «         d d d ¦  «         n# 1 swxY w Y   ‰                     t           j        ¦  «         t          ‰                     ¦   «         ¦  «        t           j        dfk    sJ ‚‰                     t           j        d¬¦  «         t          ‰                     ¦   «         ¦  «        t           j        dfk    sJ ‚t          j        t          ¦  «        5  ‰                     t           j        d¬¦  «         d d d ¦  «         n# 1 swxY w Y   	 ‰                     t           j        d¬¦  «         n# t           j        $ r Y nw xY wt          j        t          d	¬
¦  «        5  ‰                     t           j        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d	¬
¦  «        5  ‰                     t           j        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬
¦  «        5  ‰                     d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ób   •— | \  }}|t           j        k    rd}‰                     ||¦  «         d S ©Nr   )r2   ÚIOPRIO_CLASS_NONEÚionice)ÚinitÚioclassÚvaluerD   s      €r;   Úcleanupz.TestProcess.test_ionice_linux.<locals>.cleanupn  s9   ø€ Ø!‰NˆG�UØ�&Ô2Ò2Ð2Ø�Ø�HŠH�W˜eÑ$Ô$Ð$Ð$Ð$rP   r   re   r¥   é   é   ©rà   é   zioclass accepts no value©Úmatchz$'ioclass' argument must be specified)r2   r3   r   rÝ   rÜ   ÚIOPRIO_CLASS_RTÚIOPRIO_CLASS_BEÚIOPRIO_CLASS_IDLEÚ
addCleanupÚtupler%   rA   r   r_   )r7   rá   rÞ   rD   s      @r;   Útest_ionice_linuxzTestProcess.test_ionice_linuxk  sc  ø€ ð	%ð 	%ð 	%ð 	%ð 	%õ ŒNÑÔˆÝð 	=Ø—8’8‘:”:˜a”=¥FÔ$<Ò<Ð<Ð<Ð<ÝÔ'¨1Ò,Ð,Ð,Ð,ÝÔ%¨Ò*Ð*Ð*Ð*ÝÔ%¨Ò*Ð*Ð*Ð*ÝÔ'¨1Ò,Ð,Ð,Ð,Ø�xŠx‰zŒzˆØ�Š˜ Ñ&Ô&Ð&ð 	
�Š•Ô)Ñ*Ô*Ð*Ý�Q—X’X‘Z”ZÑ Ô ¥VÔ%=¸qÐ$AÒAÐAÐAÐAÝŒ]�:Ñ&Ô&ð 	8ð 	8Ø�HŠH•VÔ-°QˆHÑ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	
�Š•Ô'Ñ(Ô(Ð(Ý�Q—X’X‘Z”ZÑ Ô ¥VÔ%;¸QÐ$?Ò?Ð?Ð?Ð?Ø	�Š•Ô'¨qˆÑ1Ô1Ð1Ý�Q—X’X‘Z”ZÑ Ô ¥VÔ%;¸QÐ$?Ò?Ð?Ð?Ð?ÝŒ]�:Ñ&Ô&ð 	6ð 	6Ø�HŠH•VÔ+°1ˆHÑ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð	Ø�HŠH•VÔ+°1ˆHÑ5Ô5Ð5Ð5øÝÔ"ð 	ð 	ð 	ØˆDð	øøøõ Œ]�:Ð-GÐHÑHÔHð 	2ð 	2Ø�HŠH•VÔ-¨qÑ1Ô1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2åŒ]�:Ð-GÐHÑHÔHð 	2ð 	2Ø�HŠH•VÔ-¨qÑ1Ô1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2åŒ]ÝÐDð
ñ 
ô 
ð 	ð 	ð �HŠH˜1ˆHÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	sl   Ä("EÅEÅEÈ "IÉIÉIÉ!I< É<JÊJÊ,!KËKË KË?!L,Ì,L0Ì3L0ÍM6Í6M:Í=M:z!not supported on this win versionc                 óô  — t          j        ¦   «         }t          s$|                     ¦   «         t           j        k    sJ ‚|                     ¦   «         }|                      |j        |¦  «         |                     t           j        ¦  «         |                     ¦   «         t           j        k    sJ ‚|                     t           j        ¦  «         |                     ¦   «         t           j        k    sJ ‚	 |                     t           j        ¦  «         |                     ¦   «         t           j        k    sJ ‚n# t           j	        $ r Y nw xY wt          j        t          d¬¦  «        5  |                     t           j        d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     t           j        dz   ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz&value argument not accepted on Windowsræ   re   rä   zis not a valid priority)r2   r3   r   rÝ   ÚIOPRIO_NORMALrë   ÚIOPRIO_VERYLOWÚ
IOPRIO_LOWÚIOPRIO_HIGHr_   r%   rA   Ú	TypeErrorr   )r7   rD   rÞ   s      r;   Útest_ionice_winzTestProcess.test_ionice_win˜  sA  € õ
 ŒNÑÔˆÝð 	6Ø—8’8‘:”:¥Ô!5Ò5Ð5Ð5Ð5Ø�xŠx‰zŒzˆØ�Š˜œ $Ñ'Ô'Ð'ð 	
�Š•Ô&Ñ'Ô'Ð'Ø�xŠx‰zŒz�VÔ2Ò2Ð2Ð2Ð2Ø	�Š•Ô"Ñ#Ô#Ð#Ø�xŠx‰zŒz�VÔ.Ò.Ð.Ð.Ð.ð	4Ø�HŠH•VÔ'Ñ(Ô(Ð(ð —8’8‘:”:¥Ô!3Ò3Ð3Ð3Ð3Ð3øõ Ô"ð 	ð 	ð 	ØˆDð	øøøõ
 Œ]ÝÐEð
ñ 
ô 
ð 	4ð 	4ð �HŠH•VÔ)°ˆHÑ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4õ Œ]�:Ð-FÐGÑGÔGð 	-ð 	-Ø�HŠH•VÔ'¨!Ñ+Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 	-ð 	-s6   Ã5D9 Ä9EÅ
EÅ)"FÆFÆFÆ=#G-Ç-G1Ç4G1c                 ó8  — dd l }t          j        t          j        ¦   «         ¦  «        }d„ t          t          ¦  «        D ¦   «         }|s
J |¦   «         ‚|D ]Ã}t          t          |¦  «        }|dk    sJ ‚|t          |¦  «        v rM|t          ||¦  «        k    sJ ‚t          rŒN|                     |¦  «        | 	                    |¦  «        k    sJ ‚Œ}|                     |¦  «        }t          |¦  «        dk    sJ ‚|d         dk    sJ ‚|d         dk    sJ ‚ŒÄd S )Nr   c                 ó<   — g | ]}|                      d ¦  «        ¯|‘ŒS )ÚRLIMIT)Ú
startswith©Ú.0r¦   s     r;   ú
<listcomp>z/TestProcess.test_rlimit_get.<locals>.<listcomp>»  s)   € ÐBÐBÐB�q¨1¯<ª<¸Ñ+AÔ+AÐB�ÐBÐBÐBrP   r¥   r}   re   )Úresourcer2   r3   r?   r@   Údirr    r   ÚrlimitÚ	getrlimitrÓ   )r7   rü   rD   Únamesr~   rà   Úrets          r;   Útest_rlimit_getzTestProcess.test_rlimit_get¶  s-  € àˆˆˆåŒN�2œ9™;œ;Ñ'Ô'ˆØBÐB�C¥™KœKÐBÑBÔBˆØÐÐ�eÑÔÐØð 	$ð 	$ˆDÝ�F DÑ)Ô)ˆEØ˜A’:�:�:�:Ø•s˜8‘}”}Ð$Ð$Ø¥¨°$Ñ 7Ô 7Ò7Ð7Ð7Ð7õ ð ØØ—x’x ‘”¨(×*<Ò*<¸UÑ*CÔ*CÒCÐCÐCÐCÐCà—h’h˜u‘o”o�Ý˜3‘x”x 1’}�}�}�}Ø˜1”v ’|�|�|�|Ø˜1”v ’|�|�|�|�|ð	$ð 	$rP   c                 ó4  — |                       ¦   «         }|                     t          j        d¦  «         |                     t          j        ¦  «        dk    sJ ‚t          ret          j        t          d¬¦  «        5  t          j         	                    d¦  «                             d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |                     t          j        d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)rf   rf   zcan't use prlimitræ   r   )rf   rf   rf   )
r<   rþ   r2   ÚRLIMIT_NOFILEr   r%   rA   r   Ú_psplatformr3   rC   s     r;   Útest_rlimit_setzTestProcess.test_rlimit_setÎ  so  € à×ÒÑÔˆØ	�Š•Ô% vÑ.Ô.Ð.Ø�xŠx�Ô,Ñ-Ô-°Ò7Ð7Ð7Ð7õ ð 	8Ý”�zÐ1DÐEÑEÔEð 8ð 8ÝÔ"×*Ò*¨1Ñ-Ô-×4Ò4°QÑ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8åŒ]�:Ñ&Ô&ð 	6ð 	6Ø�HŠH•VÔ)¨9Ñ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð 	6ð 	6s$   Á<3B;Â;B?ÃB?Ã!DÄDÄDc                 óœ  — t          j        ¦   «         }|                      ¦   «         }|                     t           j        ¦  «        \  }}	 |                     t           j        d|f¦  «         t          |d¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5 }t          |d¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |j
        j        t          j        k    sJ ‚	 |                     t           j        ||f¦  «         |                     t           j        ¦  «        ||fk    sJ ‚d S # |                     t           j        ||f¦  «         |                     t           j        ¦  «        ||fk    sJ ‚w xY w)Né   rÅ   s   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXs  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)r2   r3   rÐ   rþ   ÚRLIMIT_FSIZErÈ   rÑ   r%   rA   ÚOSErrorrà   ÚerrnoÚEFBIG)r7   rD   ÚtestfnÚsoftÚhardrÕ   Úexcs          r;   Útest_rlimitzTestProcess.test_rlimitÛ  sR  € åŒNÑÔˆØ—’Ñ"Ô"ˆØ—X’X�fÔ1Ñ2Ô2‰
ˆˆdð	AØ�HŠH•VÔ(¨4°¨,Ñ7Ô7Ð7Ý�f˜dÑ#Ô#ð % qØ—’˜Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %õ ”�wÑ'Ô'ð )¨3Ý˜& $Ñ'Ô'ð )¨1Ø—G’G˜KÑ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð ”9”?¥e¤kÒ1Ð1Ð1Ð1Ð1à�HŠH•VÔ(¨4°¨,Ñ7Ô7Ð7Ø—8’8�FÔ/Ñ0Ô0°T¸4°LÒ@Ð@Ð@Ð@Ð@Ð@øð �HŠH•VÔ(¨4°¨,Ñ7Ô7Ð7Ø—8’8�FÔ/Ñ0Ô0°T¸4°LÒ@Ð@Ð@Ð@Ð@Ð@Ð@Ð@sy   Á2F  Á=BÂF  ÂB#Â#F  Â&B#Â'F  ÃDÃC6Ã*DÃ6C:	Ã:DÃ=C:	Ã>DÄF  ÄDÄF  ÄDÄF  Æ AGc                 óÚ  — t          j        ¦   «         }|                     t           j        ¦  «        \  }}	 |                     t           j        d|f¦  «         |                     t           j        t           j        |f¦  «         t          |                      ¦   «         d¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                     t           j        ||f¦  «         |                     t           j        ¦  «        ||fk    sJ ‚d S # |                     t           j        ||f¦  «         |                     t           j        ¦  «        ||fk    sJ ‚w xY w)Nr  rÅ   s   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)r2   r3   rþ   r	  ÚRLIM_INFINITYrÈ   rÐ   rÑ   )r7   rD   r  r  rÕ   s        r;   Útest_rlimit_infinityz TestProcess.test_rlimit_infinityî  s|  € õ ŒNÑÔˆØ—X’X�fÔ1Ñ2Ô2‰
ˆˆdð	AØ�HŠH•VÔ(¨4°¨,Ñ7Ô7Ð7Ø�HŠH•VÔ(­6Ô+?ÀÐ*FÑGÔGÐGÝ�d—o’oÑ'Ô'¨Ñ.Ô.ð %°!Ø—’˜Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð �HŠH•VÔ(¨4°¨,Ñ7Ô7Ð7Ø—8’8�FÔ/Ñ0Ô0°T¸4°LÒ@Ð@Ð@Ð@Ð@Ð@øð �HŠH•VÔ(¨4°¨,Ñ7Ô7Ð7Ø—8’8�FÔ/Ñ0Ô0°T¸4°LÒ@Ð@Ð@Ð@Ð@Ð@Ð@Ð@s1   ·A0D Â'C	Â=D Ã	CÃD ÃCÃD ÄAE*c                 óØ   — t          j        ¦   «         }|                     t           j        ¦  «        \  }}|t           j        k    sJ ‚|                     t           j        ||f¦  «         d S r0   )r2   r3   rþ   r	  r  )r7   rD   r  r  s       r;   Útest_rlimit_infinity_valuez&TestProcess.test_rlimit_infinity_valueý  s^   € õ ŒNÑÔˆØ—X’X�fÔ1Ñ2Ô2‰
ˆˆdØ•vÔ+Ò+Ð+Ð+Ð+Ø	�Š•Ô$ t¨T lÑ3Ô3Ð3Ð3Ð3rP   c                 ój  — t          j        ¦   «         }t          r=	 |                     ¦   «         }n;# t           j        $ r t          j        d¦  «        ‚w xY w|                     ¦   «         }t          ¦   «         5  |                     ¦   «         }||dz   k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nú$on OpenBSD this requires root accessre   )r2   r3   r
   Únum_threadsr_   r%   rÀ   r   )r7   rD   Ústep1Ústep2s       r;   Útest_num_threadszTestProcess.test_num_threads	  s  € õ ŒNÑÔˆÝð 	$ðJØŸš™œ��øÝÔ&ð Jð Jð JÝ”kÐ"HÑIÔIÐIðJøøøð —M’M‘O”OˆEå‰\Œ\ð 	&ð 	&Ø—M’M‘O”OˆEØ˜E A™IÒ%Ð%Ð%Ð%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&s   œ1 ±$AÁ: B(Â(B,Â/B,zWINDOWS onlyc                 ó`   — t          j        ¦   «         }|                     ¦   «         dk    sJ ‚d S rÛ   )r2   r3   Únum_handlesrC   s     r;   Útest_num_handleszTestProcess.test_num_handles  s0   € õ ŒNÑÔˆØ�}Š}‰Œ Ò"Ð"Ð"Ð"Ð"Ð"rP   c                 ó   — t          j        ¦   «         }t          r=	 |                     ¦   «         }n;# t           j        $ r t          j        d¦  «        ‚w xY w|                     ¦   «         }t          ¦   «         5  |                     ¦   «         }t          |¦  «        t          |¦  «        dz   k    sJ ‚|d         }|j	        |d         k    sJ ‚|j
        |d         k    sJ ‚|j        |d         k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr  re   r   r¥   )r2   r3   r
   Úthreadsr_   r%   rÀ   r   rÓ   ÚidÚ	user_timeÚsystem_time)r7   rD   r  r  Úathreads        r;   Útest_threadszTestProcess.test_threads   s]  € åŒNÑÔˆÝð 	 ðJØŸ	š	™œ��øÝÔ&ð Jð Jð JÝ”kÐ"HÑIÔIÐIðJøøøð —I’I‘K”KˆEå‰\Œ\ð 	5ð 	5Ø—I’I‘K”KˆEÝ�u‘:”:¥ U¡¤¨a¡Ò/Ð/Ð/Ð/Ø˜A”hˆGà”: ¨¤Ò+Ð+Ð+Ð+ØÔ$¨°¬
Ò2Ð2Ð2Ð2ØÔ&¨'°!¬*Ò4Ð4Ð4Ð4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5s   œ1 ±$AÁ:A;DÄDÄ
Dc                 ó  — |                       ¦   «         }t          r=	 |                     ¦   «          n'# t          j        $ r t          j        d¦  «        ‚w xY wt          |                     ¦   «         j	        t          d„ |                     ¦   «         D ¦   «         ¦  «        z
  ¦  «        dk     sJ ‚t          |                     ¦   «         j        t          d„ |                     ¦   «         D ¦   «         ¦  «        z
  ¦  «        dk     sJ ‚d S )Nr  c              3   ó$   K  — | ]}|j         V — Œd S r0   )r#  rù   s     r;   ú	<genexpr>z-TestProcess.test_threads_2.<locals>.<genexpr>?  s$   è è € Ð(JÐ(J¸¨¬Ð(JÐ(JÐ(JÐ(JÐ(JÐ(JrP   r¨   c              3   ó$   K  — | ]}|j         V — Œd S r0   )r$  rù   s     r;   r)  z-TestProcess.test_threads_2.<locals>.<genexpr>C  s$   è è € Ð*NÐ*N¸Q¨1¬=Ð*NÐ*NÐ*NÐ*NÐ*NÐ*NrP   )r<   r
   r!  r2   r_   r%   rÀ   r¶   r—   r˜   Úsumr™   rC   s     r;   Útest_threads_2zTestProcess.test_threads_24  s  € ð ×ÒÑÔˆÝð 	JðJØ—	’	‘”��øÝÔ&ð Jð Jð JÝ”kÐ"HÑIÔIÐIðJøøøõ �—’‘”Ô"¥SÐ(JÐ(J¸a¿iºi¹k¼kÐ(JÑ(JÔ(JÑ%JÔ%JÑJÑKÔKØòð ð ð õ �—’‘”Ô$¥sÐ*NÐ*NÀ!Ç)Â)Á+Ä+Ð*NÑ*NÔ*NÑ'NÔ'NÑNÑOÔOØòð ð ð ð ð s	   �2 ²$Ac                 ó<  — t          j        ¦   «         }|                     ¦   «         d d…         \  }}|                     ¦   «         }|dk    sJ ‚|dk    sJ ‚d gdz  }|                     ¦   «         d d…         \  }}|                     ¦   «         }||k    sJ ‚||k    sJ ‚||k    sJ ‚~t          r8|                     ¦   «         }	|	j        |	j        k    sJ ‚|	j        |	j        k    sJ ‚|                     ¦   «         }	|	j	        D ]}
t          |	|
¦  «        dk    sJ ‚Œd S )Nr¥   r   i`ã )r2   r3   Úmemory_infoÚmemory_percentr   ÚrssÚwsetÚvmsÚpagefiler�   r    )r7   rD   Úrss1Úvms1Úpercent1ÚmemarrÚrss2Úvms2Úpercent2Úmemr~   s              r;   Útest_memory_infozTestProcess.test_memory_infoG  sD  € åŒNÑÔˆð —]’]‘_”_ R a RÔ(‰
ˆˆdØ×#Ò#Ñ%Ô%ˆØ�aŠxˆxˆxˆxØ�aŠxˆxˆxˆxð �˜'Ñ!ˆà—]’]‘_”_ R a RÔ(‰
ˆˆdØ×#Ò#Ñ%Ô%ˆð �dŠ{ˆ{ˆ{ˆ{Ø�tŠ|ˆ|ˆ|ˆ|Ø˜(Ò"Ð"Ð"Ð"Øåð 	+Ø—-’-‘/”/ˆCØ”7˜cœhÒ&Ð&Ð&Ð&Ø”7˜cœlÒ*Ð*Ð*Ð*à�mŠm‰oŒoˆØ”Kð 	+ð 	+ˆDÝ˜3 Ñ%Ô%¨Ò*Ð*Ð*Ð*Ð*ð	+ð 	+rP   c                 óŒ  — t          j        ¦   «         }t          j        ¦   «         j        }|                     ¦   «         }|j        D ]7}t          ||¦  «        }|dk    sJ ‚|dk    rt          st          rŒ/||k    sJ ‚Œ8t          st          st          r|j        dk    sJ ‚t          r|j        dk    sJ ‚|j        dk    sJ ‚d S d S )Nr   r2  )r2   r3   Úvirtual_memoryÚtotalÚmemory_full_infor�   r    r   r   r   r   ÚussÚpssÚswap)r7   rD   r?  r;  r~   rà   s         r;   Útest_memory_full_infoz!TestProcess.test_memory_full_infof  sÛ   € ÝŒNÑÔˆÝÔ%Ñ'Ô'Ô-ˆØ× Ò Ñ"Ô"ˆØ”Kð 	"ð 	"ˆDÝ˜C Ñ&Ô&ˆEØ˜A’:�:�:�:Ø˜’�¥#�­%�ØØ˜E’>�>�>�>�>Ýð 	 •Gð 	 �uð 	 Ø”7˜a’<�<�<�<Ýð 	!Ø”7˜a’<�<�<�<Ø”8˜q’=�=�=�=ð	!ð 	!à �=rP   c                 óâ  — t          j        ¦   «         }|                     ¦   «         }t          |¦  «        t          t	          |¦  «        ¦  «        k    sJ ‚|                     d¬¦  «        }|D �] }|j                             d¦  «        rŒt          r|j        dk    rŒ1t          j         	                    |j        ¦  «        sJ |j        ¦   «         ‚t          rº	 t          j                             |j        ¦  «        s3t          j                             |j        ¦  «        sJ |j        ¦   «         ‚ŒÄ# t          $ rT t          s‚ t          d¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   |j        › d�|vr‚ Y �Œ!w xY wdt          j                             |j        ¦  «        vrU	 t          j        |j        ¦  «        }t%          j        |j        ¦  «        sJ |j        ¦   «         ‚�Œ�# t*          $ r Y �Œœw xY w�Œ¢|D ][}|j        D ]Q}t/          ||¦  «        }	|dk    rŒ|d	v r|	s
J |	¦   «         ‚Œ*t1          |	t2          ¦  «        sJ ‚|	d
k    s
J |	¦   «         ‚ŒRŒ\d S )NF)Úgroupedú[Úpvclockz/proc/self/smapsz
 (deleted)Ú64r½   >   ÚaddrÚpermsr   )r2   r3   Úmemory_mapsrÓ   Úsetr½   rø   r   r?   Úisabsr   ÚexistsÚislinkÚAssertionErrorr   r   rÉ   ÚbasenameÚstatÚS_ISREGÚst_modeÚFileNotFoundErrorr�   r    rŒ   Úint)
r7   rD   ÚmapsÚext_mapsÚntrÕ   ÚdataÚstÚfnamerà   s
             r;   Útest_memory_mapszTestProcess.test_memory_mapsv  sè  € åŒNÑÔˆØ�}Š}‰ŒˆÝ�4‰yŒy�C¥ D¡	¤	™NœNÒ*Ð*Ð*Ð*Ø—=’=¨�=Ñ/Ô/ˆàð 	=ñ 	=ˆBØŒw×!Ò! #Ñ&Ô&ð ØÝð �r”w )Ò+Ð+ØÝ”7—=’= ¤Ñ)Ô)Ð2Ð2¨2¬7Ñ2Ô2Ð2åð =ðÝœ7Ÿ>š>¨"¬'Ñ2Ô2ð µb´g·n²nØœñ7ô 7ð ð à”wñô ð øøõ &ð ð ð Ý ð Øå"Ð#5Ñ6Ô6ð (¸!Ø Ÿvšv™xœx˜ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (àœ'Ð-Ð-Ð-°TÐ9Ð9Øð :Ñ9ðøøøð �RœW×-Ò-¨b¬gÑ6Ô6Ð6Ð6ð=Ýœ ¤Ñ)Ô)�Bõ  œ<¨¬
Ñ3Ô3Ð<Ð<°R´WÑ<Ô<Ð<Ñ<øõ )ð ð ð Ø‘Dðøøøñ 7ð ð 		-ð 		-ˆBØœð -ð -�Ý  EÑ*Ô*�Ø˜F’?�?ØØÐ-Ð-Ð-Ø Ð'Ð' %Ñ'Ô'Ð'Ð'å% e­SÑ1Ô1Ð1Ð1Ð1Ø  Aš:˜:˜: u™:œ:˜:˜:ð-ð		-ð 		-sI   ÃAD3Ä3!FÅE5Å)FÅ5E9Å9FÅ<E9Å=FÆFÆ;G>Ç>
HÈHc                 óâ   ‡— t          j        ¦   «         }t          ¦   «         5 }d„ Šˆfd„|                     ¦   «         D ¦   «         } ‰|¦  «        |v sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 óz   — t           j                             t           j                             | ¦  «        ¦  «        S r0   )r?   r½   r¾   Únormcase©rD   s    r;   Únormpathz8TestProcess.test_memory_maps_lists_lib.<locals>.normpath­  s(   € Ý”w×'Ò'­¬×(8Ò(8¸Ñ(;Ô(;Ñ<Ô<Ð<rP   c                 ó0   •— g | ]} ‰|j         ¦  «        ‘ŒS © )r½   )rú   r¦   rc  s     €r;   rû   z:TestProcess.test_memory_maps_lists_lib.<locals>.<listcomp>°  s%   ø€ ÐBÐBÐB¨Q˜˜ ¤Ñ(Ô(ÐBÐBÐBrP   )r2   r3   r!   rL  )r7   rD   r½   Úlibpathsrc  s       @r;   Útest_memory_maps_lists_libz&TestProcess.test_memory_maps_lists_lib§  sÎ   ø€ õ ŒNÑÔˆÝ Ñ"Ô"ð 	. dð=ð =ð =ð CÐBÐBÐB°!·-²-±/´/ÐBÑBÔBˆHØ�8˜D‘>”> XÐ-Ð-Ð-Ð-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.s   £3A$Á$A(Á+A(c                 ó<  — t          j        ¦   «         }|                     ¦   «          t          j        t
          ¦  «        5  |                     d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          st          st          r|                     d¬¦  «         d S d S )Nz?!?)ÚmemtyperA  )	r2   r3   r/  r%   rA   r   r   r   r   rC   s     r;   Útest_memory_percentzTestProcess.test_memory_percent³  sÚ   € ÝŒNÑÔˆØ	×ÒÑÔÐÝŒ]�:Ñ&Ô&ð 	,ð 	,Ø×Ò UÐÑ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,åð 	,•Eð 	,�Wð 	,Ø×Ò UÐÑ+Ô+Ð+Ð+Ð+ð	,ð 	,s   ÁA$Á$A(Á+A(c                 ó.  — |                       ¦   «         }|                     ¦   «         sJ ‚|                     ¦   «         sJ ‚|                     ¦   «          |                     ¦   «          |                     ¦   «         rJ ‚|                     ¦   «         rJ ‚d S r0   )r<   Ú
is_runningrG   rH   rC   s     r;   Útest_is_runningzTestProcess.test_is_running»  sƒ   € Ø×ÒÑÔˆØ�|Š|‰~Œ~ÐÐÐØ�|Š|‰~Œ~ÐÐÐØ	�Š‰ŒˆØ	�Š‰ŒˆØ—<’<‘>”>Ð!Ð!Ð!Ø—<’<‘>”>Ð!Ð!Ð!Ð!Ð!rP   c                 óR  — |                       ¦   «         }|                     ¦   «         }	 |t          k    sJ ‚nÕ# t          $ rÈ t          rVt          |¦  «        t          t          ¦  «        k    r1t          j        j        } ||¦  «         |t          ¦  «        k    sJ ‚nht          j
        d         › dt          j
        d         › �}	 |                     |d¦  «        t          j        |d¦  «        k    sJ ‚n# t          $ r Y nw xY wY nw xY wt          |ddg¦  «        }|dk    sJ ‚d S )Nr   ú.re   Ú rb   zimport os; print('hey')Úhey)r<   Úexer   rQ  r   rÓ   r?   r½   ra  ÚsysÚversion_infoÚreplacer)   )r7   rD   rr  ra  ÚverÚouts         r;   Útest_exezTestProcess.test_exeÄ  sE  € Ø×ÒÑÔˆØ�eŠe‰gŒgˆð	Ø�*Ò$Ð$Ð$Ð$Ð$øÝð 	ð 	ð 	Ýð �3˜s™8œ8¥s­:¡¤Ò6Ð6åœ7Ô+�Ø�x ‘}”}¨¨µÑ(<Ô(<Ò<Ð<Ð<Ð<Ð<õ Ô)¨!Ô,ÐDÐD­sÔ/?ÀÔ/BÐDÐD�ðØŸ;š; s¨BÑ/Ô/µ:Ô3EÀcÈ2Ñ3NÔ3NÒNÐNÐNÐNÐNøÝ%ð ð ð à�Dðøøøøøð	øøøõ& �#�tÐ6Ð7Ñ8Ô8ˆØ�eŠ|ˆ|ˆ|ˆ|ˆ|ˆ|s4   ª8 ¸BD
Ã/C7Ã6D
Ã7
DÄD
ÄDÄD
Ä	D
c                 ó¬  — t           ddg}|                      |¦  «        }t          r,|                     ¦   «         g k    rt	          j        d¦  «        ‚t          st          st          r'|                     ¦   «         d         t           k    sJ ‚d S t          r~t          rw|                     ¦   «         d         }|t           k    rRd 
                    |                     ¦   «         dd …         ¦  «        d 
                    |dd …         ¦  «        k    sJ ‚d S d 
                    |                     ¦   «         ¦  «        d 
                    |¦  «        k    sJ ‚d S )Nrb   ú2import time; [time.sleep(0.1) for x in range(100)]úOPENBSD: returned EBUSYr   ú re   )r   r<   r	   Úcmdliner%   rÀ   r
   r   r   r   Újoin)r7   r}  rD   Úpyexes       r;   Útest_cmdlinezTestProcess.test_cmdlineß  s5  € åØØ@ð
ˆð
 ×Ò˜gÑ&Ô&ˆåð 	9�a—i’i‘k”k RÒ'Ð'å”+Ð7Ñ8Ô8Ð8õ ð 	>•Wð 	>¥ð 	>Ø—9’9‘;”;˜q”>¥ZÒ/Ð/Ð/Ð/Ð/Ð/åð �ð ØŸ	š	™œ Aœ�Ø�JÒ&Ð&ØŸ8š8 A§I¢I¡K¤K°°°¤OÑ4Ô4¸¿ºÀÈÈÈÄÑ8MÔ8MÒMÐMÐMÐMØ�FØ—8’8˜AŸIšI™KœKÑ(Ô(¨C¯HªH°WÑ,=Ô,=Ò=Ð=Ð=Ð=Ð=Ð=rP   zbroken on PYPYc                 ó°  — t           g}|                     dgdz  ¦  «         |                     ddg¦  «         |                      |¦  «        }t          rD	 |                     ¦   «         |k    sJ ‚d S # t
          j        $ r t          j        d¦  «        ‚w xY w|                     ¦   «         }t          r|g k    rt          j        d¦  «        ‚||k    sJ ‚d S )Nz-vé2   rb   rz  z#OPENBSD: process turned into zombier{  )
r   Úextendr<   r
   r}  r2   ÚZombieProcessr%   rÀ   r	   )r7   r}  rD   r  s       r;   Útest_long_cmdlinezTestProcess.test_long_cmdlineú  sö   € å�,ˆØ�Š˜�v ‘{Ñ#Ô#Ð#Ø�ŠØÐGÐHñ	
ô 	
ð 	
ð ×Ò˜gÑ&Ô&ˆÝð 	"ðIØ—y’y‘{”{ gÒ-Ð-Ð-Ð-Ð-Ð-øÝÔ'ð Ið Ið IÝ”kÐ"GÑHÔHÐHðIøøøð —)’)‘+”+ˆCÝð =˜# š)˜)å”kÐ";Ñ<Ô<Ð<Ø˜'’>�>�>�>�>�>s   ÁA2 Á2$Bc                 ól  — |                       ¦   «         }|                     ¦   «                              ¦   «         }t          j                             t          j                             t          j        ¦  «        ¦  «                             ¦   «         }| 	                    |¦  «        sJ ||f¦   «         ‚d S r0   )
r<   r~   Úlowerr?   r½   rR  r¾   rs  Ú
executablerø   )r7   rD   r~   r  s       r;   Ú	test_namezTestProcess.test_name  s‰   € Ø×ÒÑÔˆØ�vŠv‰xŒx�~Š~ÑÔˆÝ”× Ò ¥¤×!1Ò!1µ#´.Ñ!AÔ!AÑBÔB×HÒHÑJÔJˆØ×Ò Ñ%Ô%Ð4Ð4¨¨t }Ñ4Ô4Ð4Ð4Ð4rP   zunreliable on PYPYc                 ó€  — t          |                      t          j        dz  ¬¦  «        ¦  «        }|ddg}|                      |¦  «        }t
          rµ	 |                     ¦   «         t          j         	                    |¦  «        k    sJ ‚d S # t          $ rn |                     ¦   «         t          j        k    rGt          j         	                    |¦  «                             |                     ¦   «         ¦  «        sJ ‚n‚ Y d S w xY w|                     ¦   «         t          j         	                    |¦  «        k    sJ ‚d S )Nr¥   )Úsuffixrb   rz  )r#   rÐ   ÚstringÚdigitsr<   r
   r~   r?   r½   rR  rQ  Ústatusr2   ÚSTATUS_ZOMBIErø   )r7   r  r}  rD   s       r;   Útest_long_namezTestProcess.test_long_name  s+  € å˜dŸošoµV´]ÀQÑ5F˜oÑGÔGÑHÔHˆàØØ@ð
ˆð
 ×Ò˜gÑ&Ô&ˆÝð 	7ðØ—v’v‘x”x¥2¤7×#3Ò#3°EÑ#:Ô#:Ò:Ð:Ð:Ð:Ð:Ð:øÝ!ð ð ð Ø—8’8‘:”:¥Ô!5Ò5Ð5Ýœ7×+Ò+¨EÑ2Ô2×=Ò=¸a¿fºf¹h¼hÑGÔGÐGÐGÐGÐGàð HÐGÐGðøøøð —6’6‘8”8�rœw×/Ò/°Ñ6Ô6Ò6Ð6Ð6Ð6Ð6Ð6s   Á7B ÂA4DÄDc                 óD  — t          j        ¦   «         }|                     ¦   «         \  }}}|t          j        ¦   «         k    sJ ‚|t          j        ¦   «         k    sJ ‚t          t          d¦  «        r+t          j        ¦   «         |                     ¦   «         k    sJ ‚d S d S ©NÚ	getresuid)r2   r3   Úuidsr?   ÚgetuidÚgeteuidÚhasattrr“  ©r7   rD   ÚrealÚ	effectiveÚ_saveds        r;   Ú	test_uidszTestProcess.test_uidsD  ó”   € åŒNÑÔˆØ"#§&¢&¡(¤(Ñˆˆi˜à•r”y‘{”{Ò"Ð"Ð"Ð"à�BœJ™LœLÒ(Ð(Ð(Ð(õ •2�{Ñ#Ô#ð 	.Ý”<‘>”> Q§V¢V¡X¤XÒ-Ð-Ð-Ð-ð	.ð 	.Ø-Ð-rP   c                 óD  — t          j        ¦   «         }|                     ¦   «         \  }}}|t          j        ¦   «         k    sJ ‚|t          j        ¦   «         k    sJ ‚t          t          d¦  «        r+t          j        ¦   «         |                     ¦   «         k    sJ ‚d S d S r’  )r2   r3   Úgidsr?   ÚgetgidÚgetegidr—  Ú	getresgidr˜  s        r;   Ú	test_gidszTestProcess.test_gidsQ  r�  rP   c                 óˆ  ‡— ˆfd„}t          j        ¦   «         Št          j        t          ¦  «        5  ‰                     d¦  «         d d d ¦  «         n# 1 swxY w Y   ‰                     ¦   «         }|                      ||¦  «         t          rùd }t           j        t           j	        t           j
        t           j        t           j        t           j        fD ]°}|                      |¬¦  «        5  	 ‰                     |¦  «         ‰                     ¦   «         }|t           j        t           j        t           j        hv r||k    s|€
|}||k    sJ ‚n||k    sJ ‚n# t           j        $ r Y nw xY wd d d ¦  «         n# 1 swxY w Y   Œ±d S 	 t!          t"          d¦  «        rHt#          j        t"          j        t#          j        ¦   «         ¦  «        ‰                     ¦   «         k    sJ ‚‰                     d¦  «         ‰                     ¦   «         dk    sJ ‚t!          t"          d¦  «        rHt#          j        t"          j        t#          j        ¦   «         ¦  «        ‰                     ¦   «         k    sJ ‚t*          s/‰                     d¦  «         ‰                     ¦   «         dk    sJ ‚d S d S # t           j        $ r Y d S w xY w)Nc                 ó`   •— 	 ‰                      | ¦  «         d S # t          j        $ r Y d S w xY wr0   )Únicer2   r_   )rÞ   rD   s    €r;   rá   z&TestProcess.test_nice.<locals>.cleanup_  s@   ø€ ðØ—’�t‘”���øÝÔ&ð ð ð Ø��ðøøøs   ƒ š-¬-Ústr)ÚprioÚgetpriorityre   r   )r2   r3   r%   rA   ró   r¦  rë   r   ÚIDLE_PRIORITY_CLASSÚBELOW_NORMAL_PRIORITY_CLASSÚNORMAL_PRIORITY_CLASSÚABOVE_NORMAL_PRIORITY_CLASSÚHIGH_PRIORITY_CLASSÚREALTIME_PRIORITY_CLASSÚsubTestr_   r—  r?   r©  ÚPRIO_PROCESSr@   r   )r7   rá   rÞ   Úhighest_prior¨  Únew_priorD   s         @r;   Ú	test_nicezTestProcess.test_nice^  s@  ø€ ð	ð 	ð 	ð 	ð 	õ ŒNÑÔˆÝŒ]�9Ñ%Ô%ð 	ð 	Ø�FŠF�5‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�vŠv‰xŒxˆØ�Š˜ Ñ&Ô&Ð&åð 3	ØˆLåÔ*ÝÔ2ÝÔ,ÝÔ2ÝÔ*ÝÔ.ðð 4ð 4�ð —\’\ t�\Ñ,Ô,ð 4ð 4ð4ØŸš˜t™œ˜ð $%§6¢6¡8¤8˜ð
  Ý"Ô>Ý"Ô6Ý"Ô:ð$ð ð ð
  (¨4Ò/Ð/°<Ð3GØ/3 Ø'/°<Ò'?Ð'?Ð'?Ð'?øà#+¨tÒ#3Ð#3Ð#3Ð#3Ð#3øõ# "Ô.ð ð ð Ø˜ðøøøð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4øð4ð 4ð<Ý�2˜}Ñ-Ô-ð åœ¥r¤½¼	¹¼ÑDÔDØŸ6š6™8œ8ò$ð $ð $ð $ð —’�q‘	”	�	Ø—v’v‘x”x 1’}�}�}�}Ý�2˜}Ñ-Ô-ð åœ¥r¤½¼	¹¼ÑDÔDØŸ6š6™8œ8ò$ð $ð $ð $õ
 ð )Ø—F’F˜1‘I”I�IØŸ6š6™8œ8 qš=˜=˜=˜=ð)ð )à(˜=øÝÔ&ð ð ð Ø��ðøøøs[   ³AÁAÁAÃ/E<Ã1EÄAE<ÅE-Å*E<Å,E-Å-E<Å<F 	ÆF 	ÆDJ. Ê.KË Kc                 ót   — t          j        ¦   «         }|                     ¦   «         t           j        k    sJ ‚d S r0   )r2   r3   rŽ  ÚSTATUS_RUNNINGrC   s     r;   Útest_statuszTestProcess.test_status   s1   € ÝŒNÑÔˆØ�xŠx‰zŒz�VÔ2Ò2Ð2Ð2Ð2Ð2Ð2rP   c                 ó¢  — |                       ¦   «         }|                     ¦   «         }t          r†|                     d¦  «        \  }}t	          j        ¦   «         }|                     d¦  «        rt          j        d¦  «        ‚||k    sJ ‚dt          j
        v r|t          j
        d         k    sJ ‚d S d S |t	          j        ¦   «         k    sJ ‚d S )Nú\ú$zrunning as service accountÚ
USERDOMAIN)r<   Úusernamer   ÚsplitÚgetpassÚgetuserÚendswithr%   rÀ   r?   Úenviron)r7   rD   r¼  ÚdomainÚgetpass_users        r;   Útest_usernamezTestProcess.test_username¤  sØ   € Ø×ÒÑÔˆØ—:’:‘<”<ˆÝð 	1Ø'Ÿ~š~¨dÑ3Ô3ÑˆF�HÝ"œ?Ñ,Ô,ˆLØ×$Ò$ SÑ)Ô)ð @õ ”kÐ">Ñ?Ô?Ð?Ø˜|Ò+Ð+Ð+Ð+Ø�rœzÐ)Ð)Ø¥¤¨LÔ!9Ò9Ð9Ð9Ð9ð *Ð)Ø9Ð9à�wœÑ0Ô0Ò0Ð0Ð0Ð0Ð0Ð0rP   c                 ó„   — |                       ¦   «         }|                     ¦   «         t          j        ¦   «         k    sJ ‚d S r0   )r<   Úcwdr?   ÚgetcwdrC   s     r;   Útest_cwdzTestProcess.test_cwdµ  s8   € Ø×ÒÑÔˆØ�uŠu‰wŒw�"œ)™+œ+Ò%Ð%Ð%Ð%Ð%Ð%rP   c                 ój   ‡— t           ddg}|                      |¦  «        Št          ˆfd„¦  «         d S )Nrb   zFimport os, time; os.chdir('..'); [time.sleep(0.1) for x in range(100)]c                  ó�   •— ‰                       ¦   «         t          j                             t          j        ¦   «         ¦  «        k    S r0   )rÆ  r?   r½   ÚdirnamerÇ  rb  s   €r;   ú<lambda>z(TestProcess.test_cwd_2.<locals>.<lambda>Ã  s(   ø€ ˜1Ÿ5š5™7œ7¥b¤g§o¢oµb´i±k´kÑ&BÔ&BÒB€ rP   )r   r<   r    )r7   ri   rD   s     @r;   Ú
test_cwd_2zTestProcess.test_cwd_2¹  sH   ø€ åØðð	
ˆð ×Ò˜cÑ"Ô"ˆÝÐBÐBÐBÐBÑCÔCÐCÐCÐCrP   c           	      óD  — t          j        ¦   «         }|                     ¦   «         }|s
J |¦   «         ‚|                      |j        |¦  «         t	          t
          d¦  «        r,|t          t          j        |j        ¦  «        ¦  «        k    sJ ‚t          |¦  «        t          t          |¦  «        ¦  «        k    sJ ‚t          t          t          t          j        d¬¦  «        ¦  «        ¦  «        ¦  «        }|D ]È}|                     |g¦  «         |                     ¦   «         |gk    sJ ‚t	          t
          d¦  «        r>|                     ¦   «         t          t          j        |j        ¦  «        ¦  «        k    sJ ‚t	          |d¦  «        r2|                     ¦   «         d         |                     ¦   «         k    sJ ‚ŒÉ|                     g ¦  «         t          r2|                     ¦   «         |j                             ¦   «         k    sJ ‚n|                     ¦   «         |k    sJ ‚t	          t
          d¦  «        r>|                     ¦   «         t          t          j        |j        ¦  «        ¦  «        k    sJ ‚t#          j        t&          ¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                     |¦  «         |                     t          |¦  «        ¦  «         |                     t)          |¦  «        ¦  «         d S )NÚsched_getaffinityT©ÚpercpuÚnum_cpur   re   )r2   r3   Úcpu_affinityrë   r—  r?   ÚlistrÏ  r4   rÓ   rM  r‹   rŠ   rÒ  r   Ú_procÚ_get_eligible_cpusr%   rA   ró   rì   )r7   rD   ÚinitialÚall_cpusÚns        r;   Útest_cpu_affinityzTestProcess.test_cpu_affinityÅ  s÷  € åŒNÑÔˆØ—.’.Ñ"Ô"ˆØÐÐ˜ÑÔÐØ�Š˜œ¨Ñ0Ô0Ð0å•2Ð*Ñ+Ô+ð 	@Ø�d¥2Ô#7¸¼Ñ#>Ô#>Ñ?Ô?Ò?Ð?Ð?Ð?Ý�7‰|Œ|�s¥3 w¡<¤<Ñ0Ô0Ò0Ð0Ð0Ð0å��c¥&Ô"4¸DÐ"AÑ"AÔ"AÑBÔBÑCÔCÑDÔDˆØð 	:ð 	:ˆAØ�NŠN˜A˜3ÑÔÐØ—>’>Ñ#Ô#¨ sÒ*Ð*Ð*Ð*Ý•rÐ.Ñ/Ô/ð MØ—~’~Ñ'Ô'­4µÔ0DÀQÄUÑ0KÔ0KÑ+LÔ+LÒLÐLÐLÐLå�q˜)Ñ$Ô$ð :Ø—~’~Ñ'Ô'¨Ô*¨a¯iªi©k¬kÒ9Ð9Ð9Ð9øð
 	
�Š�rÑÔÐÝð 	0Ø—>’>Ñ#Ô# q¤w×'AÒ'AÑ'CÔ'CÒCÐCÐCÐCÐCà—>’>Ñ#Ô# xÒ/Ð/Ð/Ð/Ý•2Ð*Ñ+Ô+ð 	IØ—>’>Ñ#Ô#¥t­BÔ,@ÀÄÑ,GÔ,GÑ'HÔ'HÒHÐHÐHÐHåŒ]�9Ñ%Ô%ð 	ð 	Ø�NŠN˜1ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à	�Š�wÑÔÐà	�Š•s˜8‘}”}Ñ%Ô%Ð%Ø	�Š•u˜X‘”Ñ'Ô'Ð'Ð'Ð's   ÊJ<Ê<K ËK c                 óÞ  — |                       ¦   «         }t          t          j        d¬¦  «        ¦  «        dz   g}t	          j        t          ¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        t          ¦  «        5  |                     t          dd¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        t          t          f¦  «        5  |                     ddg¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        t          ¦  «        5  |                     ddg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NTrÐ  é
   i'  iø*  r   Ú1r}   )
r<   rÓ   r2   r—   r%   rA   r   rÓ  r‹   ró   )r7   rD   Úinvalid_cpus      r;   Útest_cpu_affinity_errsz"TestProcess.test_cpu_affinity_errsì  s8  € à×ÒÑÔˆÝ�6Ô+°4Ð8Ñ8Ô8Ñ9Ô9¸BÑ>Ð?ˆÝŒ]�:Ñ&Ô&ð 	(ð 	(Ø�NŠN˜;Ñ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(åŒ]�:Ñ&Ô&ð 	0ð 	0Ø�NŠN�5 ¨Ñ.Ô.Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0åŒ]�I¥zÐ2Ñ3Ô3ð 	%ð 	%Ø�NŠN˜A˜s˜8Ñ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%åŒ]�:Ñ&Ô&ð 	$ð 	$Ø�NŠN˜A˜r˜7Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$sH   ÁA6Á6A:Á=A:Â$C
Ã
CÃCÃ5DÄDÄ DÄ=E"Å"E&Å)E&c                 ó$  — t          j        ¦   «         }|                     ¦   «         }|s
J |¦   «         ‚|                      |j        |¦  «         t	          |¦  «        dk    r
|d d…         }g }t          t	          |¦  «        dz   ¦  «        D ]4}|                     d„ t          j        ||¦  «        D ¦   «         ¦  «         Œ5|D ]K}|                     |¦  «         t          |                     ¦   «         ¦  «        t          |¦  «        k    sJ ‚ŒLd S )Né   re   c              3   ó8   K  — | ]}|¯t          |¦  «        V — Œd S r0   )rÔ  )rú   Úsubsets     r;   r)  zATestProcess.test_cpu_affinity_all_combinations.<locals>.<genexpr>  sB   è è € ð ð àØðÝ�V‘”ðð ð ð ð ð rP   )
r2   r3   rÓ  rë   rÓ   r‹   rƒ  Ú	itertoolsÚcombinationsÚsorted)r7   rD   r×  Úcombosr×   Úcombos         r;   Ú"test_cpu_affinity_all_combinationsz.TestProcess.test_cpu_affinity_all_combinationsù  s,  € åŒNÑÔˆØ—.’.Ñ"Ô"ˆØÐÐ˜ÑÔÐØ�Š˜œ¨Ñ0Ô0Ð0õ ˆw‰<Œ<˜"ÒÐØ˜c˜r˜c”lˆGØˆÝ•s˜7‘|”| aÑ'Ñ(Ô(ð 	ð 	ˆAØ�MŠMð ð å'Ô4°W¸aÑ@Ô@ðñ ô ñ ô ð ð ð ð 	=ð 	=ˆEØ�NŠN˜5Ñ!Ô!Ð!Ý˜!Ÿ.š.Ñ*Ô*Ñ+Ô+­v°e©}¬}Ò<Ð<Ð<Ð<Ð<ð	=ð 	=rP   zbroken on BSDc                 ó  ‡‡— t          j        ¦   «         Š|                      ¦   «         }‰                     ¦   «         Š|‰vsJ ‚t	          |d¦  «        5 }|                     d¦  «         |                     ¦   «          t          ˆˆfd„¦  «         ‰                     ¦   «         Šd„ ‰D ¦   «         }t          j	         
                    |¦  «        |v sJ ‚t          r‰D ]}|j	        |k    r|j        dk    sJ ‚Œd d d ¦  «         n# 1 swxY w Y   ‰D ]0}t          j	                             |j	        ¦  «        s
J |¦   «         ‚Œ1d|› d�}|                      t          d|g¦  «        Št!          d	¦  «        D ]:}d
„ ‰                     ¦   «         D ¦   «         }||v r n8t#          j        d¦  «         Œ;t          j	         
                    |¦  «        |v sJ ‚|D ]+}t          j	                             |¦  «        s
J |¦   «         ‚Œ,d S )NrÅ   s   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc                  óh   •— t          ‰                     ¦   «         ¦  «        t          ‰ ¦  «        k    S r0   )rÓ   Ú
open_files)ÚfilesrD   s   €€r;   rÌ  z-TestProcess.test_open_files.<locals>.<lambda>  s"   ø€ �s 1§<¢<¡>¤>Ñ2Ô2µc¸%±j´jÒ@€ rP   c                 óV   — g | ]&}t           j                             |j        ¦  «        ‘Œ'S re  ©r?   r½   ra  rù   s     r;   rû   z/TestProcess.test_open_files.<locals>.<listcomp>  s*   € ÐAÐAÐA°a�œ×)Ò)¨!¬&Ñ1Ô1ÐAÐAÐArP   r  zimport time; f = open(r'z/', 'r'); [time.sleep(0.1) for x in range(100)];rb   rˆ   c                 óV   — g | ]&}t           j                             |j        ¦  «        ‘Œ'S re  rï  rù   s     r;   rû   z/TestProcess.test_open_files.<locals>.<listcomp>-  s*   € ÐJÐJÐJ°a�œ×)Ò)¨!¬&Ñ1Ô1ÐJÐJÐJrP   ru   )r2   r3   rÐ   rì  rÈ   rÑ   Úflushr    r?   r½   ra  r   ÚpositionÚisfiler<   r   r‹   r‚   Úsleep)	r7   r  rÕ   Ú	filenamesÚfiler}  r¦   rí  rD   s	          @@r;   Útest_open_fileszTestProcess.test_open_files  st  øø€ åŒNÑÔˆØ—’Ñ"Ô"ˆØ—’‘”ˆØ˜UÐ"Ð"Ð"Ð"Ý�&˜$ÑÔð 	5 1Ø�GŠG�KÑ Ô Ð Ø�GŠG‰IŒIˆIåÐ@Ð@Ð@Ð@Ð@ÑAÔAÐAØ—L’L‘N”NˆEØAÐA¸5ÐAÑAÔAˆIÝ”7×#Ò# FÑ+Ô+¨yÐ8Ð8Ð8Ð8Ýð 5Ø!ð 5ð 5�DØ”y FÒ*Ð*Ø#œ}°Ò4Ð4Ð4Ð4øð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð ð 	3ð 	3ˆDÝ”7—>’> $¤)Ñ,Ô,Ð2Ð2¨dÑ2Ô2Ð2Ð2ð vð ð ð ð 	ð ×Ò�z¨4°Ð9Ñ:Ô:ˆå�s‘”ð 	9ð 	9ˆAØJÐJ¸1¿<º<¹>¼>ÐJÑJÔJˆIØ˜Ð"Ð"Ø�ÝŒJ�tÑÔÐÐå”7×#Ò# FÑ+Ô+¨yÐ8Ð8Ð8Ð8Øð 	.ð 	.ˆDÝ”7—>’> $Ñ'Ô'Ð-Ð-¨Ñ-Ô-Ð-Ð-ð	.ð 	.s   ÁB$DÄDÄDc                 ó8  — t          j        ¦   «         }t          j        j        }|                      ¦   «         }t          |d¦  «        5 }|                     ¦   «         D ]C} ||j        ¦  «         ||j        ¦  «        k    s|j	        | 
                    ¦   «         k    r n+ŒD|                      d|                     ¦   «         ›�¦  «        ‚ ||j        ¦  «         ||j        ¦  «        k    sJ ‚t          r|j	        dk    sJ ‚n|j	        | 
                    ¦   «         k    sJ ‚|                     ¦   «         d         }|d         |j        k    sJ ‚|d         |j	        k    sJ ‚|j        |                     ¦   «         vsJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )NÚwzno file found; files=r}   r   re   )r2   r3   r?   r½   ra  rÐ   rÈ   rì  r~   ÚfdÚfilenorƒ   r   )r7   rD   ra  r  Úfileobjrö  Úntuples          r;   Útest_open_files_2zTestProcess.test_open_files_27  sÚ  € õ ŒNÑÔˆÝ”7Ô#ˆØ—’Ñ"Ô"ˆÝ�&˜#ÑÔð 	6 'ØŸš™œð Lð L�à�H˜TœYÑ'Ô'¨8¨8°G´LÑ+AÔ+AÒAÐAØ”w '§.¢.Ñ"2Ô"2Ò2Ð2à�Eð 3ð —i’iÐ J¸¿º¹¼Ð JÐ JÑKÔKÐKØ�8˜DœIÑ&Ô&¨(¨(°7´<Ñ*@Ô*@Ò@Ð@Ð@Ð@Ýð 3Ø”w "’}�}�}�}�}à”w '§.¢.Ñ"2Ô"2Ò2Ð2Ð2Ð2à—\’\‘^”^ AÔ&ˆFØ˜!”9 ¤Ò+Ð+Ð+Ð+Ø˜!”9 ¤	Ò)Ð)Ð)Ð)à”< q§|¢|¡~¤~Ð5Ð5Ð5Ð5Ð5ð'	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð 	6ð 	6s   Á	D8FÆFÆFc                 ó"  — t          j        ¦   «         }|                      ¦   «         }|                     ¦   «         }t	          |d¦  «        }|                      |j        ¦  «         |                     ¦   «         |dz   k    sJ ‚t          j        ¦   «         }|                      |j        ¦  «         |                     ¦   «         |dz   k    sJ ‚|                     ¦   «          |                     ¦   «          |                     ¦   «         |k    sJ ‚d S )Nrù  re   r¥   )r2   r3   rÐ   Únum_fdsrÈ   rë   ÚcloseÚsocket)r7   rD   r  Ústartrö  Úsocks         r;   Útest_num_fdszTestProcess.test_num_fdsR  sà   € åŒNÑÔˆØ—’Ñ"Ô"ˆØ—	’	‘”ˆÝ�F˜CÑ Ô ˆØ�Š˜œ
Ñ#Ô#Ð#Ø�yŠy‰{Œ{˜e a™iÒ'Ð'Ð'Ð'ÝŒ}‰ŒˆØ�Š˜œ
Ñ#Ô#Ð#Ø�yŠy‰{Œ{˜e a™iÒ'Ð'Ð'Ð'Ø�
Š
‰ŒˆØ�
Š
‰ŒˆØ�yŠy‰{Œ{˜eÒ#Ð#Ð#Ð#Ð#Ð#rP   z not reliable on OPENBSD & NETBSDc                 ó4  — t          j        ¦   «         }t          |                     ¦   «         ¦  «        }t	          d¦  «        D ]@}t          j        d¦  «         t          |                     ¦   «         ¦  «        }||k    r d S ŒA|                      d¦  «        ‚)Nr¥   gš™™™™™©?z2num ctx switches still the same after 2 iterations)r2   r3   r+  Únum_ctx_switchesr‹   r‚   rô  rƒ   )r7   rD   ÚbeforerŽ   Úafters        r;   Útest_num_ctx_switchesz!TestProcess.test_num_ctx_switchesa  s�   € õ
 ŒNÑÔˆÝ�Q×'Ò'Ñ)Ô)Ñ*Ô*ˆÝ�q‘”ð 	ð 	ˆAÝŒJ�tÑÔÐÝ˜×*Ò*Ñ,Ô,Ñ-Ô-ˆEØ�vŠ~ˆ~Ø��ð à�iŠiÐLÑMÔMÐMrP   c                 ó*  — t          j        ¦   «         }t          t          d¦  «        r+|                     ¦   «         t          j        ¦   «         k    sJ ‚|                      ¦   «         }|                     ¦   «         t          j        ¦   «         k    sJ ‚d S )NÚgetppid)r2   r3   r—  r?   Úppidr  r<   r@   rC   s     r;   Ú	test_ppidzTestProcess.test_ppido  sv   € ÝŒNÑÔˆÝ•2�yÑ!Ô!ð 	,Ø—6’6‘8”8�rœz™|œ|Ò+Ð+Ð+Ð+Ø×ÒÑÔˆØ�vŠv‰xŒx�2œ9™;œ;Ò&Ð&Ð&Ð&Ð&Ð&rP   c                 ó  — |                       ¦   «         }|                     ¦   «         j        t          j        ¦   «         k    sJ ‚t          j        ¦   «         d         }t          j        |¦  «                             ¦   «         �J ‚d S rÛ   )r<   Úparentr4   r?   r@   r2   Úpidsr3   )r7   rD   Ú
lowest_pids      r;   Útest_parentzTestProcess.test_parentv  sl   € Ø×ÒÑÔˆØ�xŠx‰zŒzŒ~¥¤¡¤Ò,Ð,Ð,Ð,å”[‘]”] 1Ô%ˆ
ÝŒ~˜jÑ)Ô)×0Ò0Ñ2Ô2Ð:Ð:Ð:Ð:Ð:rP   c                 óÂ   — t          j        ¦   «         }|                      ¦   «         \  }}|                     ¦   «         |k    sJ ‚|                     ¦   «         |k    sJ ‚d S r0   )r2   r3   rv   r  ©r7   r  rw   rx   s       r;   Útest_parent_multizTestProcess.test_parent_multi}  sa   € Ý”Ñ!Ô!ˆØ ×4Ò4Ñ6Ô6ÑˆˆzØ× Ò Ñ"Ô" eÒ+Ð+Ð+Ð+Ø�|Š|‰~Œ~ Ò'Ð'Ð'Ð'Ð'Ð'rP   c                 óF  — t          j        ¦   «         }|                     ¦   «         sJ ‚|                      ¦   «         \  }}|                     ¦   «         d         |k    sJ ‚|                     ¦   «         d         |k    sJ ‚|                     ¦   «         d         |k    sJ ‚d S r¯   )r2   r3   Úparentsrv   r  s       r;   Útest_parentszTestProcess.test_parentsƒ  s£   € å”Ñ!Ô!ˆØ�~Š~ÑÔÐÐÐØ ×4Ò4Ñ6Ô6ÑˆˆzØ�}Š}‰Œ˜qÔ! VÒ+Ð+Ð+Ð+Ø×!Ò!Ñ#Ô# AÔ&¨%Ò/Ð/Ð/Ð/Ø×!Ò!Ñ#Ô# AÔ&¨&Ò0Ð0Ð0Ð0Ð0Ð0rP   c                 óº  — t          j        ¦   «         }|                     ¦   «         rJ ‚|                     d¬¦  «        rJ ‚|                      d¬¦  «        }|                     ¦   «         }|                     d¬¦  «        }||fD ]T}t	          |¦  «        dk    sJ ‚|d         j        |j        k    sJ ‚|d                              ¦   «         |j        k    sJ ‚ŒUd S )NT©Ú	recursiver   )Úcreationflagsre   )r2   r3   Úchildrenr<   rÓ   r4   r  )r7   r  rw   Ú	children1Ú	children2r  s         r;   Útest_childrenzTestProcess.test_childrenŒ  sí   € Ý”Ñ!Ô!ˆØ—?’?Ñ$Ô$Ð$Ð$Ð$Ø—?’?¨T�?Ñ2Ô2Ð2Ð2Ð2ð ×!Ò!°Ð!Ñ2Ô2ˆØ—O’OÑ%Ô%ˆ	Ø—O’O¨d�OÑ3Ô3ˆ	Ø" IÐ.ð 	4ð 	4ˆHÝ�x‘=”= AÒ%Ð%Ð%Ð%Ø˜A”;”? e¤iÒ/Ð/Ð/Ð/Ø˜A”;×#Ò#Ñ%Ô%¨¬Ò3Ð3Ð3Ð3Ð3ð	4ð 	4rP   c                 óL  — t          j        ¦   «         }|                      ¦   «         \  }}|                     ¦   «         |gk    sJ ‚|                     d¬¦  «        ||gk    sJ ‚|                     ¦   «          |                     ¦   «          |                     d¬¦  «        rJ ‚d S )NTr  )r2   r3   rv   r  rR   rH   r  s       r;   Útest_children_recursivez#TestProcess.test_children_recursive›  s§   € õ ”Ñ!Ô!ˆØ ×4Ò4Ñ6Ô6ÑˆˆzØ�ŠÑ Ô  U GÒ+Ð+Ð+Ð+Ø�Š¨ˆÑ.Ô.°5¸*Ð2EÒEÐEÐEÐEð 	�ŠÑÔÐØ�
Š
‰ŒˆØ—?’?¨T�?Ñ2Ô2Ð2Ð2Ð2Ð2Ð2rP   c                 óJ  — t          j        t          ¦  «        }t          j        ¦   «         D ]:}	 ||                     ¦   «         xx         dz  cc<   Œ&# t          j        $ r Y Œ7w xY wt          |                     ¦   «         d„ ¬¦  «        d         }t          r|dk    rt          j        d¦  «        ‚t          j        |¦  «        }	 |                     d¬¦  «        }t          |¦  «        t          t          |¦  «        ¦  «        k    sJ ‚d S # t          j        $ r Y d S w xY w)Nre   c                 ó   — | d         S )Nre   re  )r¦   s    r;   rÌ  z6TestProcess.test_children_duplicates.<locals>.<lambda>±  s
   € ¨q°¬t€ rP   )Úkeyr   zPID 0Tr  )ÚcollectionsÚdefaultdictrW  r2   Úprocess_iterr  ÚErrorÚmaxÚitemsr   r%   rÀ   r3   r  rÓ   rM  r_   )r7   ÚtablerD   r4   Úcs        r;   Útest_children_duplicatesz$TestProcess.test_children_duplicates¨  s-  € åÔ'­Ñ,Ô,ˆÝÔ$Ñ&Ô&ð 	ð 	ˆAðØ�a—f’f‘h”h��” 1Ñ$��‘�øÝ”<ð ð ð Ø�ðøøøõ �%—+’+‘-”- ^ ^Ð4Ñ4Ô4°QÔ7ˆÝð 	'�S˜A’X�XÝ”+˜gÑ&Ô&Ð&ÝŒN˜3ÑÔˆð	)Ø—
’
 T�
Ñ*Ô*ˆAõ �q‘6”6�S¥ Q¡¤™[œ[Ò(Ð(Ð(Ð(Ð(Ð(øõ Ô"ð 	ð 	ð 	ØˆDˆDð	øøøs#   °"AÁA%Á$A%ÃD ÄD"Ä!D"c                 óH  — t          j        ¦   «         }|                      ¦   «         \  }}|                     d¬¦  «        }t	          |¦  «        dk    sJ ‚|d         |k    sJ ‚|d         |k    sJ ‚|                     ¦   «         }|d         |k    sJ ‚|d         |k    sJ ‚d S )NTr  r¥   r   re   )r2   r3   rv   r  rÓ   r  )r7   r  rw   rx   r  r  s         r;   Útest_parents_and_childrenz%TestProcess.test_parents_and_children¼  sº   € Ý”Ñ!Ô!ˆØ ×4Ò4Ñ6Ô6Ñˆˆzà—?’?¨T�?Ñ2Ô2ˆÝ�8‰}Œ} Ò!Ð!Ð!Ð!Ø˜Œ{˜eÒ#Ð#Ð#Ð#Ø˜Œ{˜jÒ(Ð(Ð(Ð(à×$Ò$Ñ&Ô&ˆØ�qŒz˜UÒ"Ð"Ð"Ð"Ø�qŒz˜VÒ#Ð#Ð#Ð#Ð#Ð#rP   c                 óZ  — |                       ¦   «         }|                     ¦   «          t          d¦  «        D ]:}|                     ¦   «         t          j        k    r nt          j        d¦  «         Œ;|                     ¦   «          |                     ¦   «         t          j        k    sJ ‚d S )Nrˆ   ru   )	r<   rq   r‹   rŽ  r2   ÚSTATUS_STOPPEDr‚   rô  rr   )r7   rD   rŽ   s      r;   Útest_suspend_resumezTestProcess.test_suspend_resumeÉ  s’   € Ø×ÒÑÔˆØ	�	Š	‰ŒˆÝ�s‘”ð 	ð 	ˆAØ�xŠx‰zŒz�VÔ2Ò2Ð2Ø�ÝŒJ�tÑÔÐÐØ	�Š‰
Œ
ˆ
Ø�xŠx‰zŒz�VÔ2Ò2Ð2Ð2Ð2Ð2Ð2rP   c                 ó  — t          j        t          ¦  «        5  t          j        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          ¦  «        5  t          j        d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÝ  r}   )r%   rA   ró   r2   r3   r   )r7   s    r;   Útest_invalid_pidzTestProcess.test_invalid_pidÓ  sû   € ÝŒ]�9Ñ%Ô%ð 	 ð 	 ÝŒN˜3ÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 åŒ]�:Ñ&Ô&ð 	ð 	ÝŒN˜2ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   š;»?Á?ÁBÂBÂBc                 óV  — t          j        ¦   «         }|                     ddg¬¦  «        }t          |                     ¦   «         ¦  «        ddgk    sJ ‚t          j        t          t          j        ¦   «         ¦  «        ¦  «        }|                     dgd¬¦  «        }t          |d         t          ¦  «        s|d         dk    sJ ‚t          j
        ddt           j        ¬	¦  «        5  |                     d
gd¬¦  «        d
dik    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j
        ddt          j        |j        d¦  «        ¬	¦  «        5  t          j        t           j        ¦  «        5  |                     d
g¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          j
        ddt          j        |j        d¦  «        ¬	¦  «        5  |                     d
gd¬¦  «        d
dik    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j
        ddt"          ¬	¦  «        5  |                     ¦   «         }d
t          |                     ¦   «         ¦  «        vsJ ‚t          j        t"          ¦  «        5  |                     d
g¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          j        t$          ¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t&          ¦  «        5  |                     dg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t&          ¦  «        5  |                     ddg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrr  r~   )ÚattrsÚnet_connectionsÚfoo)r8  Úad_valuezpsutil.Process.niceT)Úcreater[   r¦  re   Úbar)r2   r3   Úas_dictræ  ÚkeysÚminr  rŒ   rÔ  r   r\   r_   r5   r4   r%   rA   r„  ÚNotImplementedErrorró   r   )r7   rD   Úds      r;   Útest_as_dictzTestProcess.test_as_dictÙ  sÊ  € ÝŒNÑÔˆØ�IŠI˜U F˜OˆIÑ,Ô,ˆÝ�a—f’f‘h”hÑÔ E¨6 ?Ò2Ð2Ð2Ð2åŒN�3�vœ{™}œ}Ñ-Ô-Ñ.Ô.ˆØ�IŠIÐ.Ð/¸%ˆIÑ@Ô@ˆÝ˜!Ð-Ô.µÑ5Ô5ð 	1ØÐ&Ô'¨5Ò0Ð0Ð0Ð0õ ŒZØ!¨$½FÔ<Oð
ñ 
ô 
ð 	Hð 	Hð —9’9 F 8°a�9Ñ8Ô8¸VÀQ¸KÒGÐGÐGÐGÐGð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hõ ŒZØ!ØÝÔ,¨Q¬U°FÑ;Ô;ð
ñ 
ô 
ð 	*ð 	*õ
 ”�vÔ3Ñ4Ô4ð *ð *Ø—	’	  �	Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*õ ŒZØ!ØÝÔ,¨Q¬U°FÑ;Ô;ð
ñ 
ô 
ð 	Pð 	Pð
 —9’9 F 8°e�9Ñ<Ô<ÀÈÀÒOÐOÐOÐOÐOð	Pð 	Pð 	Pñ 	Pô 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pøøøð 	Pð 	Pð 	Pð 	Põ ŒZØ!¨$Õ<Oð
ñ 
ô 
ð 	*ð 	*ð —	’	‘”ˆAØ¥ a§f¢f¡h¤h¡¤Ð/Ð/Ð/Ð/å”Õ2Ñ3Ô3ð *ð *Ø—	’	  �	Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*õ Œ]�9Ñ%Ô%ð 	ð 	Ø�IŠI�fÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]�:Ñ&Ô&ð 	ð 	Ø�IŠI�u�gÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]�:Ñ&Ô&ð 	&ð 	&Ø�IŠI�u˜e�nÑ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&sÇ   Ã)!DÄDÄDÅF+Å0FÆF+ÆF	ÆF+ÆF	ÆF+Æ+F/Æ2F/Ç%!HÈHÈHÈ:AKÊJ1Ê%KÊ1J5	Ê5KÊ8J5	Ê9KËKËKË,LÌLÌLÌ2MÍMÍMÍ9NÎN"Î%N"c                 ó
  — t          j        ¦   «         }t          j        d¦  «        5 }|                     ¦   «         5  |                     ¦   «          |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        d¦  «        5 }|                     ¦   «          |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |j        dk    sJ ‚d S )Nú$psutil._psplatform.Process.cpu_timesre   r¥   ©r2   r3   r   r\   Úoneshotr—   Ú
call_count©r7   rD   r”   s      r;   Útest_oneshotzTestProcess.test_oneshot  s¡  € ÝŒNÑÔˆÝŒZÐ>Ñ?Ô?ð 	%À1Ø—’‘”ð ð Ø—’‘”�Ø—’‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ”< 1Ò$Ð$Ð$Ð$Ð$ð		%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%õ ŒZÐ>Ñ?Ô?ð 	À1Ø�KŠK‰MŒMˆMØ�KŠK‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð Œ|˜qÒ Ð Ð Ð Ð Ð sF   ¨B½)A2Á&BÁ2A6	Á6BÁ9A6	Á:BÂBÂBÂ6)C+Ã+C/Ã2C/c           	      ó$  — t          j        ¦   «         }t          j        d¦  «        5 }t          j        d¦  «        5 }|                     ¦   «         5  |                     ¦   «          |                     ¦   «          |                     ¦   «         5  |                     ¦   «          |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |j        dk    sJ ‚|j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          j        d¦  «        5 }|                     ¦   «          |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |j        dk    sJ ‚d S )NrE  z(psutil._psplatform.Process.oneshot_enterre   r¥   rF  )r7   rD   Úm1Úm2r”   s        r;   Útest_oneshot_twicezTestProcess.test_oneshot_twice  s–  € õ ŒNÑÔˆÝŒZÐ>Ñ?Ô?ð 		*À2Ý”ÐFÑGÔGð *È2Ø—Y’Y‘[”[ð &ð &Ø—K’K‘M”M�MØ—K’K‘M”M�MØŸš™œð &ð &ØŸš™œ˜ØŸš™œ˜ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð ”}¨Ò)Ð)Ð)Ð)Ø”}¨Ò)Ð)Ð)Ð)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð		*ð 		*ð 		*ñ 		*ô 		*ð 		*ð 		*ð 		*ð 		*ð 		*ð 		*øøøð 		*ð 		*ð 		*ð 		*õ ŒZÐ>Ñ?Ô?ð 	À1Ø�KŠK‰MŒMˆMØ�KŠK‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð Œ|˜qÒ Ð Ð Ð Ð Ð sŽ   ¨D$½DÁ=CÂ)C	Â8CÃCÃCÃCÃCÃDÃCÃDÃ"CÃ#DÄD$ÄD	ÄD$ÄD	ÄD$Ä$D(Ä+D(Å)E8Å8E<Å?E<c                 ó  — |                       ¦   «         \  }}|                     ¦   «         }|                     ¦   «         }||k    sJ ‚|                     ¦   «         5  |                     ¦   «         |k    sJ ‚|                     ¦   «         |k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         5  |                     ¦   «         |k    sJ ‚|                     ¦   «         |k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S r0   )rv   r  rG  )r7   Úp1Úp2Úp1_ppidÚp2_ppids        r;   Útest_oneshot_cachezTestProcess.test_oneshot_cache.  s…  € ð ×)Ò)Ñ+Ô+‰ˆˆBØ—'’'‘)”)ˆØ—'’'‘)”)ˆØ˜'Ò!Ð!Ð!Ð!Ø�ZŠZ‰\Œ\ð 	(ð 	(Ø—7’7‘9”9 Ò'Ð'Ð'Ð'Ø—7’7‘9”9 Ò'Ð'Ð'Ð'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð �ZŠZ‰\Œ\ð 	(ð 	(Ø—7’7‘9”9 Ò'Ð'Ð'Ð'Ø—7’7‘9”9 Ò'Ð'Ð'Ð'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s$   Á5BÂB"Â%B"Â=5D Ä DÄDc                 ó^  ‡ ‡— ˆ fd„}‰                       ¦   «         Š‰                     ¦   «          ‰                     ¦   «          t          rt	          ˆfd„¦  «         ‰                      ‰¦  «         t          ‰¦  «        }|                     |j        ¦  «        D ]\  }} |||¦  «         Œd S )Nc                 óî   •— 	  | ¦   «         }t           r|dv rd S ‰                     | ›d|›d�¦  «        ‚# t          j        $ r ‚ t          j        $ r Y d S t          j        $ r t          r|dv rY d S ‚ w xY w)N>   rr  r~   z didn't raise NSP and returned z instead>   r!  r  )r   rƒ   r2   r„  r5   r_   r
   )ÚfunÚfun_namer  r7   s      €r;   Úassert_raises_nspzFTestProcess.test_halfway_terminated_process.<locals>.assert_raises_nspE  sÇ   ø€ ðØ�c‘e”e�õ ð ˜x¨?Ð:Ð:Ø�FØ—i’iØÐLÐL¸SÐLÐLÐLñô ð øõ Ô'ð ð ð ØÝÔ'ð ð ð Ø��ÝÔ&ð ð ð Ýð ˜xÐ+EÐEÐEØ�F�FØðøøøs   ƒ
5 µA4ÁA4Á2A4c                  ó8   •— ‰ j         t          j        ¦   «         vS r0   )r4   r2   r  rb  s   €r;   rÌ  z=TestProcess.test_halfway_terminated_process.<locals>.<lambda>\  s   ø€ ˜qœu­F¬K©M¬MÐ9€ rP   )	r<   rR   rH   r   r    rL   r$   ÚiterÚall)r7   rY  ÚnsrW  r~   rD   s   `    @r;   Útest_halfway_terminated_processz+TestProcess.test_halfway_terminated_process=  sÊ   øø€ ð	ð 	ð 	ð 	ð 	ð& ×ÒÑÔˆØ	�Š‰ŒˆØ	�Š‰ŒˆÝð 	;ÝÐ9Ð9Ð9Ð9Ñ:Ô:Ð:Ø×Ò˜qÑ!Ô!Ð!å˜qÑ!Ô!ˆØŸš ¤™œð 	)ð 	)‰IˆC�ØÐ˜c 4Ñ(Ô(Ð(Ð(ð	)ð 	)rP   c                 ó^   — |                       ¦   «         \  }}|                      |¦  «         d S r0   )Úspawn_zombieÚassertProcessZombie)r7   Ú_parentÚzombies      r;   Útest_zombie_processzTestProcess.test_zombie_processc  s1   € à×+Ò+Ñ-Ô-‰ˆ�Ø× Ò  Ñ(Ô(Ð(Ð(Ð(rP   c                 óî   — t          j        ¦   «         }t          j        dt          j        d¦  «        ¬¦  «        5 }|                     ¦   «         sJ ‚|j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nzpsutil.Processr   rZ   )r2   r3   r   r\   r„  rl  r“   rI  s      r;   Ú$test_zombie_process_is_running_w_excz0TestProcess.test_zombie_process_is_running_w_exch  s»   € õ ŒNÑÔˆÝŒZØ­&Ô*>¸qÑ*AÔ*Að
ñ 
ô 
ð 	àØ—<’<‘>”>Ð!Ð!Ð!Ø”8ˆOˆOˆOˆOð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ¼ A*Á*A.Á1A.c                 ó
  — t          j        ¦   «         }t          j        dt          j        d¦  «        ¬¦  «        5 }|                     ¦   «         t           j        k    sJ ‚|j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nz!psutil._psplatform.Process.statusr   rZ   )r2   r3   r   r\   r„  rŽ  r�  r“   rI  s      r;   Ú test_zombie_process_status_w_excz,TestProcess.test_zombie_process_status_w_excs  sÆ   € õ ŒNÑÔˆÝŒZØ/ÝÔ,¨QÑ/Ô/ð
ñ 
ô 
ð 	ð Ø—8’8‘:”:¥Ô!5Ò5Ð5Ð5Ð5Ø”8ˆOˆOˆOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ¼.A8Á8A<Á?A<c                 ó(  — |                       ¦   «         }t          j        |j        ¦  «        }|j        |                     ¦   «         dz   f|_        t          t          j        ¦   «         ¦  «         |j        t          j        v sJ ‚| 	                    ¦   «         rJ ‚t          j                             t          j        dd¦  «        5  t          j        t!          j        ¦   «         ¦  «        5 }t          t          j        ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d|j        › �|                     ¦   «         v sJ ‚|j        t          j        vsJ ‚|t          j        |j        ¦  «        k    sJ ‚d}t'          |¦  «        }|                     |j        |j        z   d¬¦  «        D ]u\  }}|                      |¬¦  «        5  t1          j        t          j        |¬	¦  «        5   |¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   Œvd
t7          |¦  «        v sJ ‚d
t9          |¦  «        v sJ ‚t1          j        t          j        |¬	¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t1          j        t          j        |¬	¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t1          j        t          j        |¬	¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t1          j        t          j        |¬	¦  «        5  |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nrˆ   ÚPSUTIL_DEBUGTz+refreshing Process instance for reused PID z4process no longer exists and its PID has been reusedF)Úclear_cache)r~   ræ   zterminated + PID reused)!r1   r2   r3   r4   rµ   Ú_identrÔ  r)  Ú_pmaprl  r   r\   ÚobjectÚ_commonÚ
contextlibÚredirect_stderrÚioÚStringIOÚgetvaluer$   r[  ÚsettersÚkillersr°  r%   rA   r5   r§  Úreprr  r  r  r  )r7   ÚsubprD   rÕ   Úmsgr]  rW  r~   s           r;   Útest_reused_pidzTestProcess.test_reused_pid  s  € à×"Ò"Ñ$Ô$ˆÝŒN˜4œ8Ñ$Ô$ˆØ”E˜1Ÿ=š=™?œ?¨SÑ0Ð1ˆŒå�VÔ Ñ"Ô"Ñ#Ô#Ð#ØŒu�œÐ$Ð$Ð$Ð$Ø—<’<‘>”>Ð!Ð!Ð!õ ŒZ×Ò�vœ~¨~¸tÑDÔDð 	,ð 	,ÝÔ+­B¬K©M¬MÑ:Ô:ð ,¸aÝ•VÔ(Ñ*Ô*Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð B¸!¼%ÐAÐAØ�zŠz‰|Œ|ðð ð ð ð Œu�FœLÐ(Ð(Ð(Ð(à•F”N 4¤8Ñ,Ô,Ò,Ð,Ð,Ð,ØDˆÝ˜qÑ!Ô!ˆØŸš ¤¨b¬jÑ!8Àe˜ÑLÔLð 	ð 	‰IˆC�Ø—’ 4�Ñ(Ô(ð ð Ý”]¥6Ô#7¸sÐCÑCÔCð ð Ø�C‘E”E�Eðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øð )­C°©F¬FÐ2Ð2Ð2Ð2Ø(­D°©G¬GÐ3Ð3Ð3Ð3åŒ]�6Ô/°sÐ;Ñ;Ô;ð 	ð 	Ø�FŠF‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]�6Ô/°sÐ;Ñ;Ô;ð 	ð 	Ø�HŠH‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]�6Ô/°sÐ;Ñ;Ô;ð 	ð 	Ø�IŠI‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]�6Ô/°sÐ;Ñ;Ô;ð 	ð 	Ø�JŠJ‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s´   Ã&D1Ã-!DÄD1ÄD	ÄD1Ä!D	Ä"D1Ä1D5Ä8D5Ç !H/ÈHÈH/ÈHÈH/ÈHÈ H/È/H3	È6H3	ÊJ"Ê"J&Ê)J&ËK.Ë.K2Ë5K2ÌL:Ì:L>ÍL>Í%NÎNÎNc                 óx  — dt          j        ¦   «         vrŽt          j        t           j        ¦  «        5  t          j        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d¦  «        rJ ‚t          j        d¦  «                             ¦   «         dk    sJ ‚d S t          j        d¦  «        }t          rt           j	        nt          }t          j        |¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «        5  |                     t"          j        ¦  «         d d d ¦  «         n# 1 swxY w Y   t'          |¦  «        }|                     |j        |j        z   ¦  «        D ]u\  }}	  |¦   «         }|dv r|j        dk    sJ ‚Œ"|dk    r&t          rdnd}|                     ¦   «         |k    sJ ‚ŒN|dk    r|s
J |¦   «         ‚Œa# t           j	        $ r Y Œrw xY wt2          s-dt          j        ¦   «         v sJ ‚t          j        d¦  «        sJ ‚d S d S )Nr   re   >   rŸ  r”  r¼  zNT AUTHORITY\SYSTEMÚrootr~   )r2   r  r%   rA   r5   r3   Ú
pid_existsr  r   r_   r   rH   rR   rq   rr   rG   rU   rI   rJ   r$   r[  Úgettersru  r™  r¼  r
   )r7   rD   r  r]  rW  r~   r  r˜   s           r;   Ú
test_pid_0zTestProcess.test_pid_0¨  sÌ  € à•F”K‘M”MÐ!Ð!Ý”�vÔ3Ñ4Ô4ð "ð "Ý”˜qÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "õ Ô(¨Ñ+Ô+Ð+Ð+Ð+Ý”> !Ñ$Ô$×)Ò)Ñ+Ô+¨qÒ0Ð0Ð0Ð0ØˆFåŒN˜1ÑÔˆÝ%,Ð<�fÔ!Ð!µ*ˆÝŒ]˜3ÑÔð 	ð 	Ø�FŠF‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]˜3ÑÔð 	ð 	Ø�KŠK‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]˜3ÑÔð 	ð 	Ø�IŠI‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]˜3ÑÔð 	ð 	Ø�HŠH‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]˜3ÑÔð 	ð 	Ø�FŠF‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]˜3ÑÔð 	*ð 	*Ø�MŠM�&œ.Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*õ ˜qÑ!Ô!ˆØŸš ¤¨b¬jÑ!8Ñ9Ô9ð 	&ð 	&‰IˆC�ð&Ø�c‘e”e�ð Ð+Ð+Ð+Øœ8 qš=˜=˜=˜=˜=Ø˜ZÒ'Ð'Ý5<ÐHÐ1Ð1À&�DØŸ:š:™<œ<¨4Ò/Ð/Ð/Ð/Ð/Ø˜V’^�^ØÐ%Ð% Ñ%Ô%Ð%øøõ Ô&ð ð ð Ø�ðøøøõ ð 	(Ø�œ™œÐ%Ð%Ð%Ð%ÝÔ$ QÑ'Ô'Ð'Ð'Ð'ð	(ð 	(à'Ð's�   ´AÁAÁAÃ&DÄDÄDÄ&EÅEÅEÅ&FÆFÆFÆ&GÇGÇGÇ&HÈHÈHÈ& IÉIÉIÊ
K/Ë/LÌ Lc                 óü   — d„ }d | _         t          j        ¦   «         } ||                     ¦   «         ¦  «        } |t          j                             ¦   «         ¦  «        }t          st          r
||k    sJ ‚d S d S d S )Nc                 ó¸   — g d¢}t           r|                     g d¢¦  «         |D ]}|                      |d ¦  «         Œd„ |                      ¦   «         D ¦   «         S )N)ÚPLATÚHOMEÚPYTEST_CURRENT_TESTÚPYTEST_VERSION)Ú__CF_USER_TEXT_ENCODINGÚVERSIONER_PYTHON_PREFER_32_BITÚVERSIONER_PYTHON_VERSIONrˆ  c                 óº   — i | ]X\  }}|                      d d¦  «                              dd¦  «        |                      d d¦  «                              dd¦  «        “ŒYS )úrp  ú
)ru  )rú   ÚkÚvs      r;   ú
<dictcomp>z@TestProcess.test_environ.<locals>.clean_dict.<locals>.<dictcomp>ã  sp   € ð ð ð ñ �A�qð —	’	˜$ Ñ#Ô#×+Ò+¨D°"Ñ5Ô5°q·y²yØ˜"ñ8ô 8ç’'˜$ Ñ#Ô#ðð ð rP   )r   rƒ  Úpopr,  )rB  Úexcluder~   s      r;   Ú
clean_dictz,TestProcess.test_environ.<locals>.clean_dictØ  s�   € ØOÐOÐOˆGÝð Ø—’ð  ð  ð  ñ ô ð ð  ð "ð "�Ø—’�d˜DÑ!Ô!Ð!Ð!ðð ð ŸGšG™IœIð	ñ ô ð rP   )ÚmaxDiffr2   r3   rÁ  r?   Úcopyr   r   )r7   r‘  rD   Úd1Úd2s        r;   Útest_environzTestProcess.test_environÖ  sŽ   € ð	ð 	ð 	ð$ ˆŒÝŒNÑÔˆØˆZ˜Ÿ	š	™œÑ$Ô$ˆØˆZ�œ
ŸšÑ)Ô)Ñ*Ô*ˆÝð 	•~ð 	Ø˜’8�8�8�8ð	ð 	ð 	ð 	Ø�8rP   z<macOS 11+ can't get another process environment, issue #2084z(sometimes fails on `assert is_running()`c                 ó†  — t          j        d¦  «        }t          |                      ¦   «         |¬¦  «        }|                      |gt
          j        t
          j        ¬¦  «        }t          j        |j	        ¦  «        }t          |j	        ¦  «         |                     ¦   «         sJ ‚|j                             ¦   «         dk    sJ ‚t          r3t          r,	 |                     ¦   «         }n*# t          j        $ r Y d S w xY w|                     ¦   «         }|dddœk    sJ ‚|                     ¦   «          |j        dk    sJ ‚d S )	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)Ústdinrd   rP   rÝ  Ú3)ÚAÚCr   )ÚtextwrapÚdedentr"   rÐ   r1   rg   rh   r2   r3   r4   r,   rl  rd   rÉ   r   r   rÁ  r_   ÚcommunicateÚ
returncode)r7   rN   Úcexer:   rD   Úenvs         r;   Útest_weird_environzTestProcess.test_weird_environñ  sS  € õ Œð  ñ ô ˆõ ˜DŸOšOÑ-Ô-°dÐ;Ñ;Ô;ˆØ×#Ò#ØˆF�*œ/µ*´/ð $ñ 
ô 
ˆõ ŒN˜5œ9Ñ%Ô%ˆÝ�Q”UÑÔÐØ�|Š|‰~Œ~ÐÐÐàŒ|× Ò Ñ"Ô" cÒ)Ð)Ð)Ð)Ýð 	•Zð 	ðØ—i’i‘k”k��øÝÔ&ð ð ð ð ��ðøøøð
 —)’)‘+”+ˆCØ˜C cÐ*Ð*Ò*Ð*Ð*Ð*Ø×ÒÑÔÐØÔ 1Ò$Ð$Ð$Ð$Ð$Ð$s   ÃC+ Ã+C>Ã=C>N)hÚ__name__Ú
__module__Ú__qualname__Ú__doc__r<   rE   rO   rS   rW   r%   ÚmarkÚskipifr   r`   rj   r	   rs   r{   r€   r…   r�   r•   r¢   r­   r   r³   r¹   rÁ   r   r+   r   rØ   r   rí   r   rô   r   r  r  r  r  r  r  r  r   r&  r(   r*   r   r,  r<  rD  r   r^  rg  rj  rm  rx  r€  r   r…  r‰  r�  rœ  r£  r´  r·  rÄ  rÈ  rÍ  r   rÚ  rß  ré  r   r÷  rþ  r  r
   r
  r  r  r  r  r!  r#  r/  r1  r4  r6  rC  rJ  rN  rT  r^  rd  rf  rh  rz  r  r   r–  r   r£  re  rP   r;   r.   r.   I   sÖ
  € € € € € Ø)Ð)ðð ð ðð ð ð"ð "ð "ð"ð "ð "ð	"ð 	"ð 	"ð „[×Ò˜E˜	¨+ÐÑ6Ô6ð
#ð 
#ñ 7Ô6ð
#ð"ð "ð "ð6 „[×Ò˜Ð'8ÐÑ9Ô9ð.ð .ñ :Ô9ð.ð2/ð /ð /ð.ð ð ð"ð "ð "ð(	'ð 	'ð 	'ðð ð ð
Lð 
Lð 
Lð>ð >ð >ð „[×ÒÐ,Ð,°_ÐÑEÔEð8ð 8ñ FÔEð8ðLð Lð Lð$ „[×Ò˜E˜	¨,ÐÑ7Ô7ð	'ð 	'ñ 8Ô7ð	'ð „[×ÒÐ0Ð0¸ÐÑIÔIØÐ UÐ+Ñ+Ô+ð$ð $ñ ,Ô+ñ JÔIð$ðL „[×Ò˜J˜¨ÐÑ?Ô?Ø„[×Ò˜E˜	¨,ÐÑ7Ô7ð)ð )ñ 8Ô7ñ @Ô?ð)ðV „[×Ò˜J˜¨ÐÑ?Ô?Ø„[×ÒØˆÐ?ð ñ ô ð-ð -ñô ñ @Ô?ð-ð4 „[×Ò˜J˜¨ÐÑ?Ô?ð$ð $ñ @Ô?ð$ð. „[×Ò˜J˜¨ÐÑ?Ô?ð
6ð 
6ñ @Ô?ð
6ð „[×Ò˜J˜¨ÐÑ?Ô?ðAð Añ @Ô?ðAð$ „[×Ò˜J˜¨ÐÑ?Ô?ðAð Añ @Ô?ðAð „[×Ò˜J˜¨ÐÑ?Ô?ð	4ð 	4ñ @Ô?ð	4ð&ð &ð &ð" „[×Ò˜G˜¨NÐÑ;Ô;ð#ð #ñ <Ô;ð#ð
 „[×Ò˜K˜°ÐÑ@Ô@ð5ð 5ñ AÔ@ð5ð& ÐÑÔØÐ 5Ð)Ñ)Ô)Ø„[×Ò˜K˜°ÐÑ@Ô@ð
ð 
ñ AÔ@ñ *Ô)ñ Ôð
ð  ÐÑÔð+ð +ñ Ôð+ð<!ð !ð !ð  „[×Ò˜OÐ+°OÐÑDÔDð.-ð .-ñ EÔDð.-ð` „[×Ò˜OÐ+°OÐÑDÔDð	.ð 	.ñ EÔDð	.ð,ð ,ð ,ð"ð "ð "ðð ð ð6>ð >ð >ð6 „[×Ò˜Ð%5ÐÑ6Ô6ð"ð "ñ 7Ô6ð"ð*5ð 5ð 5ð „[×Ò˜Ð%9ÐÑ:Ô:ð7ð 7ñ ;Ô:ð7ðZ „[×Ò˜E˜	¨,ÐÑ7Ô7ð
.ð 
.ñ 8Ô7ð
.ð „[×Ò˜E˜	¨,ÐÑ7Ô7ð
.ð 
.ñ 8Ô7ð
.ð@ð @ð @ðD3ð 3ð 3ð1ð 1ð 1ð"&ð &ð &ð
Dð 
Dð 
Dð „[×ÒÐ,Ð,°_ÐÑEÔEð$(ð $(ñ FÔEð$(ðL „[×ÒÐ,Ð,°_ÐÑEÔEð
$ð 
$ñ FÔEð
$ð „[×ÒÐ,Ð,°_ÐÑEÔEð=ð =ñ FÔEð=ð, „[×Ò˜ OÐÑ4Ô4ð#.ð #.ñ 5Ô4ð#.ðL „[×Ò˜ OÐÑ4Ô4ð6ð 6ñ 5Ô4ð6ð4 „[×Ò˜E˜	¨,ÐÑ7Ô7ð$ð $ñ 8Ô7ð$ð Ð UÐ+Ñ+Ô+Ø„[×ÒØÐ�6Ð"Dð ñ ô ðNð Nñô ñ ,Ô+ðNð'ð 'ð 'ð;ð ;ð ;ð(ð (ð (ð ÐÑÔð1ð 1ñ Ôð1ð4ð 4ð 4ð3ð 3ð 3ð)ð )ð )ð($ð $ð $ð3ð 3ð 3ðð ð ð2&ð 2&ð 2&ðh!ð !ð !ð!ð !ð !ð((ð (ð (ð$)ð $)ð $)ðL „[×Ò˜E˜	¨,ÐÑ7Ô7ð)ð )ñ 8Ô7ð)ð „[×Ò˜E˜	¨,ÐÑ7Ô7ðð ñ 8Ô7ðð „[×Ò˜E˜	¨,ÐÑ7Ô7ð	ð 	ñ 8Ô7ð	ð'ð 'ð 'ðR,(ð ,(ð ,(ð\ „[×Ò˜K˜°ÐÑ@Ô@ðð ñ AÔ@ðð4 „[×Ò˜K˜°ÐÑ@Ô@Ø„[×Ò˜E˜	¨,ÐÑ7Ô7Ø„[×ÒØØMð ñ ô ð „[×ÒØÐAð ñ ô ð%%ð %%ñô ñ	ô ñ 8Ô7ñ AÔ@ð%%ð %%ð %%rP   r.   c                   ó@   — e Zd ZdZed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z	dS )Ú	TestPopenzTests for psutil.Popen class.c                 ó"   — t          ¦   «          d S r0   r&   )Úclss    r;   ÚtearDownClasszTestPopen.tearDownClass*  s   € å‰ŒˆˆˆrP   c                 ól  — t           ddg}t          j        |t          j        t          j        t
          ¬¦  «        5 }|                     ¦   «          |                     ¦   «          |j         t          |¦  «        sJ ‚t          j        t          ¦  «        5  |j         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          r(|                     d¦  «        t"          j         k    sJ ‚d S |                     d¦  «        t"          j        k    sJ ‚d S )Nrb   ú3import time; [time.sleep(0.1) for x in range(100)];©Ústdoutrd   r¢  rf   )r   r2   ÚPopenrg   rh   r   r~   r—   r™  rý   r%   rA   rB   r:  rR   r   rH   rI   rJ   ©r7   ri   Úprocs      r;   Ú	test_misczTestPopen.test_misc.  s–  € õ
 ØØAð
ˆõ
 Œ\ØÝ”?Ý”?Ýð	
ñ 
ô 
ð 	ð
 Ø�IŠI‰KŒKˆKØ�NŠNÑÔÐØŒJˆJÝ�t‘9”9ÐÐÐÝ”�~Ñ.Ô.ð ð Ø”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à�NŠNÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ ð 	2Ø—9’9˜Q‘<”<¥F¤N ?Ò2Ð2Ð2Ð2Ð2Ð2à—9’9˜Q‘<”<¥6¤>Ò1Ð1Ð1Ð1Ð1Ð1s6   ¼ACÂB*ÂCÂ*B.	Â.CÂ1B.	Â2CÃCÃCc                 óR  — t          j        t          dgt          j        t          j        t          j        t
          ¬¦  «        5 }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |j        j        sJ ‚|j	        j        sJ ‚|j
        j        sJ ‚|j        dk    sJ ‚d S )Nz-V)r²  rd   r™  r¢  r   )r2   r³  r   rg   rh   r   rŸ  r²  Úclosedrd   r™  r   )r7   rµ  s     r;   Útest_ctx_managerzTestPopen.test_ctx_managerI  sè   € ÝŒ\Ý˜ÐÝ”?Ý”?Ý”/Ýð
ñ 
ô 
ð 	ð Ø×ÒÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð Œ{Ô!Ð!Ð!Ð!ØŒ{Ô!Ð!Ð!Ð!ØŒzÔ Ð Ð Ð ØŒ !Ò#Ð#Ð#Ð#Ð#Ð#s   ÁA%Á%A)Á,A)c                 ó2  — t           ddg}t          j        |t          j        t          j        t
          ¬¦  «        5 }|                     ¦   «          |                     ¦   «          t          j	        t          j
        ¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j	        t          j
        ¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          j	        t          j
        ¦  «        5  |                     t          j        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          rªt          j	        t          j
        ¦  «        5  |                     t          j        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        t          j
        ¦  «        5  |                     t          j        ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S ©Nrb   r°  r±  )r   r2   r³  rg   rh   r   rR   rH   r%   rA   r5   rG   rU   rI   rJ   r   ÚCTRL_C_EVENTÚCTRL_BREAK_EVENTr´  s      r;   Útest_kill_terminatezTestPopen.test_kill_terminateW  s/  € õ
 ØØAð
ˆõ
 Œ\ØÝ”?Ý”?Ýð	
ñ 
ô 
ð 	>ð
 Ø�NŠNÑÔÐØ�IŠI‰KŒKˆKÝ”�vÔ3Ñ4Ô4ð !ð !Ø—’Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !å”�vÔ3Ñ4Ô4ð ð Ø—	’	‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å”�vÔ3Ñ4Ô4ð 1ð 1Ø× Ò ¥¤Ñ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1åð >Ý”]¥6Ô#7Ñ8Ô8ð :ð :Ø×$Ò$¥VÔ%8Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :å”]¥6Ô#7Ñ8Ô8ð >ð >Ø×$Ò$¥VÔ%<Ñ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð#	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>ð 	>ð 	>sÆ   ¼AHÂB$ÂHÂ$B(	Â(HÂ+B(	Â,!HÃC.Ã"HÃ.C2	Ã2HÃ5C2	Ã6!HÄ EÄ7HÅE	ÅHÅ
E	Å(HÅ3 FÆHÆF#	Æ#HÆ&F#	Æ'!HÇ G4Ç(HÇ4G8	Ç8HÇ;G8	Ç<HÈHÈHc                 ón  — t           ddg}t          j        |t          j        t          j        t
          ¬¦  «        5 }|                     ¦   «          |                     ¦   «          t          j	        t          ¦  «        5  |j         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S r»  )r   r2   r³  rg   rh   r   rR   rH   r%   rA   rB   r:  r´  s      r;   Útest__getattribute__zTestPopen.test__getattribute__t  s(  € åØØAð
ˆõ
 Œ\ØÝ”?Ý”?Ýð	
ñ 
ô 
ð 		ð
 Ø�NŠNÑÔÐØ�IŠI‰KŒKˆKÝ”�~Ñ.Ô.ð ð Ø”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð		ð 		ð 		ñ 		ô 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		øøøð 		ð 		ð 		ð 		ð 		ð 		s6   ¼AB*Á>BÂB*ÂB	ÂB*ÂB	ÂB*Â*B.Â1B.N)
r¤  r¥  r¦  r§  Úclassmethodr®  r¶  r¹  r¾  rÀ  re  rP   r;   r«  r«  '  so   € € € € € Ø'Ð'àðð ñ „[ðð2ð 2ð 2ð6$ð $ð $ð>ð >ð >ð:ð ð ð ð rP   r«  )>r§  r'  rp  r  r¾  rr  rä  r?   rI   r  rS  rŒ  rg   rs  r�  r‚   Úunittestr   r2   r   r   r   r   r	   r
   r   r   r   Úpsutil._commonr   Úpsutil.testsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r'   r(   r)   r*   r+   r,   r.   r«  re  rP   r;   ú<module>rÅ     sê  ðð &Ð %à Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø #Ð #Ð #Ð #Ð #Ð #Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø )Ð )Ð )Ð )Ð )Ð )Ø $Ð $Ð $Ð $Ð $Ð $Ø #Ð #Ð #Ð #Ð #Ð #Ø (Ð (Ð (Ð (Ð (Ð (Ø )Ð )Ð )Ð )Ð )Ð )Ø -Ð -Ð -Ð -Ð -Ð -Ø #Ð #Ð #Ð #Ð #Ð #Ø $Ð $Ð $Ð $Ð $Ð $Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø %Ð %Ð %Ð %Ð %Ð %Ø &Ð &Ð &Ð &Ð &Ð &Ø *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø %Ð %Ð %Ð %Ð %Ð %ðV%ð V%ð V%ð V%ð V%�.ñ V%ô V%ð V%ð|.\ð \ð \ð \ð \�ñ \ô \ð \ð \ð \rP   