§
    ±Ûg¢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m
Z
 ddl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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  G d(„ d)e¦  «        Z2 G d*„ d+e¦  «        Z3 G d,„ d-e¦  «        Z4 G d.„ d/e¦  «        Z5 G d0„ d1e¦  «        Z6e&j7         8                    d2¬3¦  «         G d4„ d5e¦  «        ¦   «         Z9 G d6„ d7e¦  «        Z: G d8„ d9e¦  «        Z; G d:„ d;e¦  «        Z<dS )<z1Tests for testing utils (psutil.tests namespace).é    N)Úmock)ÚFREEBSD)ÚNETBSD)ÚPOSIX)Úopen_binary)Ú	open_text)Úsupports_ipv6)Ú
CI_TESTING)ÚCOVERAGE)ÚHAS_NET_CONNECTIONS_UNIX)ÚHERE)Ú
PYTHON_EXE)ÚPYTHON_EXE_ENV)ÚPsutilTestCase)ÚTestMemoryLeak)Úbind_socket)Úbind_unix_socket©Ú
call_until)Úchdir)Úcreate_sockets)Úfake_pytest)Úfilter_proc_net_connections)Úget_free_port)Úis_namedtuple)Úprocess_namespace)Úpytest)Úreap_children)Úretry)Úretry_on_failure)Ú
safe_mkdir)Úsafe_rmpath)Úsystem_namespace)Útcp_socketpair)Ú	terminate)Úunix_socketpair)Úwait_for_file)Úwait_for_pidc                   ó:  — e Zd Z ej        d¦  «        d„ ¦   «         Z ej        d¦  «        d„ ¦   «         Z ej        d¦  «        d„ ¦   «         Z ej        d¦  «        d„ ¦   «         Z ej        d¦  «        d„ ¦   «         Z	 ej        d¦  «        d„ ¦   «         Z
dS )	ÚTestRetryDecoratorz
time.sleepc                 ó´   ‡— t          ddd ¬¦  «        ˆfd„¦   «         }t          t          d¦  «        ¦  «        Š |¦   «         dk    sJ ‚|j        dk    sJ ‚d S )Né   é   ©ÚretriesÚintervalÚlogfunc                  óB   •— ‰ r‰                       ¦   «          ddz   ‰ °dS ©Nr-   r   ©Úpop©Úqueues   €úQ/granary/edev/quantum/lib/python3.11/site-packages/psutil/tests/test_testutils.pyÚfooz2TestRetryDecorator.test_retry_success.<locals>.fooF   ó2   ø€ àð Ø—	’	‘”�Ø�A‘�ð ð ð �1ó    é   )r   ÚlistÚrangeÚ
call_count©ÚselfÚsleepr9   r7   s      @r8   Útest_retry_successz%TestRetryDecorator.test_retry_successB   sx   ø€ õ 
�q 1¨TÐ	2Ñ	2Ô	2ð	ð 	ð 	ð 	ñ 
3Ô	2ð	õ •U˜1‘X”X‘”ˆØˆs‰uŒu˜ŠzˆzˆzˆzØÔ 1Ò$Ð$Ð$Ð$Ð$Ð$r;   c                 ó
  ‡— t          ddd ¬¦  «        ˆfd„¦   «         }t          t          d¦  «        ¦  «        Št          j        t
          ¦  «        5   |¦   «          d d d ¦  «         n# 1 swxY w Y   |j        dk    sJ ‚d S )Nr,   r-   r.   c                  óB   •— ‰ r‰                       ¦   «          ddz   ‰ °dS r3   r4   r6   s   €r8   r9   z2TestRetryDecorator.test_retry_failure.<locals>.fooT   r:   r;   é   )r   r=   r>   r   ÚraisesÚZeroDivisionErrorr?   r@   s      @r8   Útest_retry_failurez%TestRetryDecorator.test_retry_failureQ   sÖ   ø€ õ 
�q 1¨TÐ	2Ñ	2Ô	2ð	ð 	ð 	ð 	ñ 
3Ô	2ð	õ •U˜1‘X”X‘”ˆÝŒ]Õ,Ñ-Ô-ð 	ð 	ØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	àÔ 1Ò$Ð$Ð$Ð$Ð$Ð$s   ÁA+Á+A/Á2A/c                 óÔ   — t          t          d¬¦  «        d„ ¦   «         }t          j        t          ¦  «        5   |¦   «          d d d ¦  «         n# 1 swxY w Y   |j        dk    sJ ‚d S )Nr-   )Ú	exceptionr0   c                  ó   — t           ‚©N)Ú	TypeError© r;   r8   r9   z2TestRetryDecorator.test_exception_arg.<locals>.foob   s   € åˆOr;   r   )r   Ú
ValueErrorr   rG   rN   r?   ©rA   rB   r9   s      r8   Útest_exception_argz%TestRetryDecorator.test_exception_arg`   sµ   € å	�¨aÐ	0Ñ	0Ô	0ð	ð 	ñ 
1Ô	0ð	õ Œ]�9Ñ%Ô%ð 	ð 	ØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	àÔ 1Ò$Ð$Ð$Ð$Ð$Ð$s   ¹AÁAÁAc                 óÌ   — t          dd d ¬¦  «        d„ ¦   «         }t          j        t          ¦  «        5   |¦   «          d d d ¦  «         n# 1 swxY w Y   |j        dk    sJ ‚d S )Nr,   r.   c                  ó   — ddz   d S r3   rO   rO   r;   r8   r9   z4TestRetryDecorator.test_no_interval_arg.<locals>.foon   ó   € à�‰EˆEˆEˆEr;   r   ©r   r   rG   rH   r?   rQ   s      r8   Útest_no_interval_argz'TestRetryDecorator.test_no_interval_argj   sº   € õ 
�q 4°Ð	5Ñ	5Ô	5ð	ð 	ñ 
6Ô	5ð	õ Œ]Õ,Ñ-Ô-ð 	ð 	ØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	àÔ 1Ò$Ð$Ð$Ð$Ð$Ð$ó   µAÁAÁAc                 óÌ   — t          ddd ¬¦  «        d„ ¦   «         }t          j        t          ¦  «        5   |¦   «          d d d ¦  «         n# 1 swxY w Y   |j        dk    sJ ‚d S )Nr,   r-   r.   c                  ó   — ddz   d S r3   rO   rO   r;   r8   r9   z0TestRetryDecorator.test_retries_arg.<locals>.foox   rU   r;   rV   rQ   s      r8   Útest_retries_argz#TestRetryDecorator.test_retries_argv   s¸   € å	�q 1¨TÐ	2Ñ	2Ô	2ð	ð 	ñ 
3Ô	2ð	õ Œ]Õ,Ñ-Ô-ð 	ð 	ØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	àÔ 1Ò$Ð$Ð$Ð$Ð$Ð$rX   c                 óŒ   — t          j        t          ¦  «        5  t          dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr,   r-   )r/   Útimeout)r   rG   rP   r   )rA   rB   s     r8   Útest_retries_and_timeout_argsz0TestRetryDecorator.test_retries_and_timeout_args€   s‰   € åŒ]�:Ñ&Ô&ð 	(ð 	(Ý˜! QÐ'Ñ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s   š9¹=Á =N)Ú__name__Ú
__module__Ú__qualname__r   ÚpatchrC   rI   rR   rW   r[   r^   rO   r;   r8   r*   r*   A   s  € € € € € Ø€T„Z�ÑÔð%ð %ñ Ôð%ð €T„Z�ÑÔð%ð %ñ Ôð%ð €T„Z�ÑÔð%ð %ñ Ôð%ð €T„Z�ÑÔð	%ð 	%ñ Ôð	%ð €T„Z�ÑÔð%ð %ñ Ôð%ð €T„Z�ÑÔð(ð (ñ Ôð(ð (ð (r;   r*   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestSyncTestUtilsc                 ó�  — t          t          j        ¦   «         ¦  «         t          t	          j        ¦   «         ¦  «        dz   }t          j        dt          dg¦  «        ¬¦  «        5  t          j
        t          j        ¦  «        5  t          |¦  «         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 )NiŸ† úpsutil.tests.retry.__iter__r   ©Úreturn_value)r(   ÚosÚgetpidÚmaxÚpsutilÚpidsr   rb   Úiterr   rG   ÚNoSuchProcess)rA   Únopids     r8   Útest_wait_for_pidz#TestSyncTestUtils.test_wait_for_pid‡   s&  € Ý•R”Y‘[”[Ñ!Ô!Ð!Ý•F”K‘M”MÑ"Ô" UÑ*ˆÝŒZÐ5ÅDÈ!ÈÁIÄIÐNÑNÔNð 	$ð 	$Ý”�vÔ3Ñ4Ô4ð $ð $Ý˜UÑ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$s6   Á(B;ÂB#ÂB;Â#B'	Â'B;Â*B'	Â+B;Â;B?ÃB?c                 ó  — |                       ¦   «         }t          |d¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          |¦  «         t          j                             |¦  «        rJ ‚d S )NÚwr9   ©Ú
get_testfnÚopenÚwriter'   ri   ÚpathÚexists©rA   ÚtestfnÚfs      r8   Útest_wait_for_filez$TestSyncTestUtils.test_wait_for_fileŽ   s°   € Ø—’Ñ"Ô"ˆÝ�&˜#ÑÔð 	 !Ø�GŠG�E‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	å�fÑÔÐÝ”7—>’> &Ñ)Ô)Ð)Ð)Ð)Ð)Ð)ó   ¥AÁAÁAc                 óä   — |                       ¦   «         }t          |d¦  «        5  	 d d d ¦  «         n# 1 swxY w Y   t          |d¬¦  «         t          j                             |¦  «        rJ ‚d S )Nrs   T)Úempty)ru   rv   r'   ri   rx   ry   ©rA   r{   s     r8   Útest_wait_for_file_emptyz*TestSyncTestUtils.test_wait_for_file_empty•   s¬   € Ø—’Ñ"Ô"ˆÝ�&˜#ÑÔð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	å�f DÐ)Ñ)Ô)Ð)Ý”7—>’> &Ñ)Ô)Ð)Ð)Ð)Ð)Ð)s   ¥3³7º7c                 ó(  — |                       ¦   «         }t          j        dt          dg¦  «        ¬¦  «        5  t	          j        t          ¦  «        5  t          |¦  «         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 )Nrf   r   rg   )ru   r   rb   rn   r   rG   ÚOSErrorr'   r�   s     r8   Útest_wait_for_file_no_filez,TestSyncTestUtils.test_wait_for_file_no_fileœ   s  € Ø—’Ñ"Ô"ˆÝŒZÐ5ÅDÈ!ÈÁIÄIÐNÑNÔNð 	&ð 	&Ý”�wÑ'Ô'ð &ð &Ý˜fÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&s5   ¹BÁA/Á#BÁ/A3	Á3BÁ6A3	Á7BÂBÂBc                 ó  — |                       ¦   «         }t          |d¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          |d¬¦  «         t          j                             |¦  «        sJ ‚d S )Nrs   r9   F)Údeletert   rz   s      r8   Útest_wait_for_file_no_deletez.TestSyncTestUtils.test_wait_for_file_no_delete¢   sµ   € Ø—’Ñ"Ô"ˆÝ�&˜#ÑÔð 	 !Ø�GŠG�E‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	å�f UÐ+Ñ+Ô+Ð+ÝŒw�~Š~˜fÑ%Ô%Ð%Ð%Ð%Ð%Ð%r~   c                 ó&   — t          d„ ¦  «         d S )Nc                  ó   — dS ©Nr-   rO   rO   r;   r8   ú<lambda>z3TestSyncTestUtils.test_call_until.<locals>.<lambda>ª   s   € ˜1€ r;   r   ©rA   s    r8   Útest_call_untilz!TestSyncTestUtils.test_call_until©   s   € Ý�9�9ÑÔÐÐÐr;   N)	r_   r`   ra   rq   r}   r‚   r…   rˆ   rŽ   rO   r;   r8   rd   rd   †   sn   € € € € € ð$ð $ð $ð*ð *ð *ð*ð *ð *ð&ð &ð &ð&ð &ð &ðð ð ð ð r;   rd   c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestFSTestUtilsc                 ó|   — t          t          ¦  «        5 }|j        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )NÚr)r   Ú__file__Úmode©rA   r|   s     r8   Útest_open_textzTestFSTestUtils.test_open_text¯   s‚   € Ý•xÑ Ô ð 	! AØ”6˜S’=�=�=�=�=ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ó   •1±5¸5c                 ó|   — t          t          ¦  «        5 }|j        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )NÚrb)r   r“   r”   r•   s     r8   Útest_open_binaryz TestFSTestUtils.test_open_binary³   s‚   € Ý�Ñ"Ô"ð 	" aØ”6˜T’>�>�>�>�>ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"r—   c                 óî   — |                       ¦   «         }t          |¦  «         t          j                             |¦  «        sJ ‚t          |¦  «         t          j                             |¦  «        sJ ‚d S rM   )ru   r!   ri   rx   Úisdirr�   s     r8   Útest_safe_mkdirzTestFSTestUtils.test_safe_mkdir·   sg   € Ø—’Ñ"Ô"ˆÝ�6ÑÔÐÝŒw�}Š}˜VÑ$Ô$Ð$Ð$Ð$Ý�6ÑÔÐÝŒw�}Š}˜VÑ$Ô$Ð$Ð$Ð$Ð$Ð$r;   c                 óš  — |                       ¦   «         }t          |d¦  «                             ¦   «          t          |¦  «         t          j                             |¦  «        rJ ‚t          |¦  «         t	          j        |¦  «         t          |¦  «         t          j                             |¦  «        rJ ‚t          j	        dt          t          j        d¦  «        ¬¦  «        5 }t          j        t          ¦  «        5  t          |¦  «         d d d ¦  «         n# 1 swxY w Y   |j        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nrs   zpsutil.tests.os.statÚ )Úside_effect)ru   rv   Úcloser"   ri   rx   ry   Úmkdirr   rb   r„   ÚerrnoÚEINVALr   rG   Úcalled)rA   r{   Úms      r8   Útest_safe_rmpathz TestFSTestUtils.test_safe_rmpath¾   s¥  € à—’Ñ"Ô"ˆÝˆV�SÑÔ×ÒÑ!Ô!Ð!Ý�FÑÔÐÝ”7—>’> &Ñ)Ô)Ð)Ð)Ð)å�FÑÔÐå
Œ�ÑÔÐÝ�FÑÔÐÝ”7—>’> &Ñ)Ô)Ð)Ð)Ð)åŒZØ"µ½¼ÀbÑ0IÔ0Ið
ñ 
ô 
ð 	àÝ”�wÑ'Ô'ð $ð $Ý˜FÑ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $à”8ˆOˆOˆOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s6   Ã(E ÄDÄE ÄD"	Ä"E Ä%D"	Ä&E Å EÅEc                 ól  — |                       ¦   «         }t          j        ¦   «         }t          j        |¦  «         t	          |¦  «        5  t          j        ¦   «         t          j                             ||¦  «        k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        ¦   «         |k    sJ ‚d S rM   )ru   ri   Úgetcwdr¢   r   rx   Újoin)rA   r{   Úbases      r8   Ú
test_chdirzTestFSTestUtils.test_chdirÒ   sÔ   € Ø—’Ñ"Ô"ˆÝŒy‰{Œ{ˆÝ
Œ�ÑÔÐÝ�6‰]Œ]ð 	=ð 	=Ý”9‘;”;¥"¤'§,¢,¨t°VÑ"<Ô"<Ò<Ð<Ð<Ð<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=åŒy‰{Œ{˜dÒ"Ð"Ð"Ð"Ð"Ð"s   Á8BÂBÂBN)r_   r`   ra   r–   rš   r�   r§   r¬   rO   r;   r8   r�   r�   ®   s_   € € € € € ð!ð !ð !ð"ð "ð "ð%ð %ð %ðð ð ð(#ð #ð #ð #ð #r;   r�   c                   ól   — e Zd Zd„ Zd„ Zej                             e d¬¦  «        d„ ¦   «         Z	d„ Z
dS )ÚTestProcessUtilsc                 ó   — |                       ¦   «         }t          j        |j        ¦  «        }|                     ¦   «         sJ ‚t          ¦   «          |                     ¦   «         rJ ‚t          j        j        rJ ‚t          j        j        rJ ‚d S rM   )	Úspawn_testprocrl   ÚProcessÚpidÚ
is_runningr   ÚtestsÚ_pids_startedÚ_subprocesses_started)rA   ÚsubpÚps      r8   Útest_reap_childrenz#TestProcessUtils.test_reap_childrenÜ   s}   € Ø×"Ò"Ñ$Ô$ˆÝŒN˜4œ8Ñ$Ô$ˆØ�|Š|‰~Œ~ÐÐÐÝ‰ŒˆØ—<’<‘>”>Ð!Ð!Ð!Ý”<Ô-Ð-Ð-Ð-Ý”<Ô5Ð5Ð5Ð5Ð5Ð5r;   c                 óð  — |                       ¦   «         \  }}|j        |j        k    sJ ‚|                     ¦   «         sJ ‚|                     ¦   «         sJ ‚t          j        ¦   «                              ¦   «         }||gk    sJ ‚t          j        ¦   «                              d¬¦  «        }t          |¦  «        dk    sJ ‚||v sJ ‚||v sJ ‚|                     ¦   «         t          j	        ¦   «         k    sJ ‚|                     ¦   «         |j        k    sJ ‚t          |¦  «         |                     ¦   «         rJ ‚|                     ¦   «         sJ ‚t          |¦  «         |                     ¦   «         rJ ‚d S )NT)Ú	recursiveé   )Úspawn_children_pairr²   r³   rl   r±   ÚchildrenÚlenÚppidri   rj   r%   )rA   ÚchildÚ
grandchildr¾   s       r8   Útest_spawn_children_pairz)TestProcessUtils.test_spawn_children_pairå   s†  € Ø ×4Ò4Ñ6Ô6ÑˆˆzØŒy˜JœNÒ*Ð*Ð*Ð*Ø×ÒÑ!Ô!Ð!Ð!Ð!Ø×$Ò$Ñ&Ô&Ð&Ð&Ð&Ý”>Ñ#Ô#×,Ò,Ñ.Ô.ˆØ˜E˜7Ò"Ð"Ð"Ð"Ý”>Ñ#Ô#×,Ò,°tÐ,Ñ<Ô<ˆÝ�8‰}Œ} Ò!Ð!Ð!Ð!Ø˜Ð Ð Ð Ð Ø˜XÐ%Ð%Ð%Ð%Ø�zŠz‰|Œ|�rœy™{œ{Ò*Ð*Ð*Ð*Ø�ŠÑ Ô  E¤IÒ-Ð-Ð-Ð-å�%ÑÔÐØ×#Ò#Ñ%Ô%Ð%Ð%Ð%Ø×$Ò$Ñ&Ô&Ð&Ð&Ð&å�*ÑÔÐØ×(Ò(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*r;   ú
POSIX only©Úreasonc                 ó|   — |                       ¦   «         \  }}|                     ¦   «         t          j        k    sJ ‚d S rM   )Úspawn_zombieÚstatusrl   ÚSTATUS_ZOMBIE)rA   Ú_parentÚzombies      r8   Útest_spawn_zombiez"TestProcessUtils.test_spawn_zombieú   s9   € à×+Ò+Ñ-Ô-‰ˆ�Ø�}Š}‰Œ¥&Ô"6Ò6Ð6Ð6Ð6Ð6Ð6r;   c                 óÐ  — |                       ¦   «         }t          |¦  «         |                      |j        ¦  «         t          |¦  «         t	          j        |                       ¦   «         j        ¦  «        }t          |¦  «         |                      |j        ¦  «         t          |¦  «         t          ddg}t	          j        |t          j	        t          j	        t          ¬¦  «        }t          |¦  «         |                      |j        ¦  «         t          |¦  «         |                       ¦   «         j        }t          |¦  «         |                      |j        ¦  «         t          |¦  «         t          rk|                      ¦   «         \  }}t          |¦  «         t          |¦  «         |                      |j        ¦  «         |                      |j        ¦  «         d S d S )Nz-cz3import time; [time.sleep(0.1) for x in range(100)];)ÚstdoutÚstderrÚenv)r°   r%   ÚassertPidGoner²   rl   r±   r   ÚPopenÚ
subprocessÚPIPEr   r   rÈ   )rA   r¸   Úcmdr²   ÚparentrÌ   s         r8   Útest_terminatezTestProcessUtils.test_terminateÿ   s¦  € à×ÒÑ!Ô!ˆÝ�!‰ŒˆØ×Ò˜1œ5Ñ!Ô!Ð!Ý�!‰ŒˆåŒN˜4×.Ò.Ñ0Ô0Ô4Ñ5Ô5ˆÝ�!‰ŒˆØ×Ò˜1œ5Ñ!Ô!Ð!Ý�!‰Œˆõ ØØAð
ˆõ
 ŒLØÝ”?Ý”?Ýð	
ñ 
ô 
ˆõ 	�!‰ŒˆØ×Ò˜1œ5Ñ!Ô!Ð!Ý�!‰Œˆà×!Ò!Ñ#Ô#Ô'ˆÝ�#‰ŒˆØ×Ò˜1œ5Ñ!Ô!Ð!Ý�#‰Œˆåð 	+Ø!×.Ò.Ñ0Ô0‰NˆF�FÝ�fÑÔÐÝ�fÑÔÐØ×Ò˜vœzÑ*Ô*Ð*Ø×Ò˜vœzÑ*Ô*Ð*Ð*Ð*ð	+ð 	+r;   N)r_   r`   ra   r¹   rÃ   r   ÚmarkÚskipifr   rÍ   rØ   rO   r;   r8   r®   r®   Û   st   € € € € € ð6ð 6ð 6ð+ð +ð +ð* „[×Ò˜E˜	¨,ÐÑ7Ô7ð7ð 7ñ 8Ô7ð7ð%+ð %+ð %+ð %+ð %+r;   r®   c                   ó   — e Zd Zd„ Zej                             e d¬¦  «        d„ ¦   «         Zd„ Z	ej                             e d¬¦  «        ej                             e
ped¬¦  «        d„ ¦   «         ¦   «         Zd„ Zd	S )
ÚTestNetUtilsc                 óº   — t          ¦   «         }t          d|f¬¦  «        5 }|                     ¦   «         d         |k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )NrŸ   ©Úaddrr-   )r   r   Úgetsockname)rA   ÚportÚss      r8   r   zTestNetUtils.bind_socket(  s¢   € Ý‰ŒˆÝ˜r 4˜jÐ)Ñ)Ô)ð 	.¨QØ—=’=‘?”? 1Ô%¨Ò-Ð-Ð-Ð-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.s   ¡!AÁAÁArÄ   rÅ   c                 ój  — |                       ¦   «         }t          |¦  «        5 }|j        t          j        k    sJ ‚|j        t          j        k    sJ ‚|                     ¦   «         |k    sJ ‚t          j	         
                    |¦  «        sJ ‚t          j        t          j        |¦  «        j        ¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   |                       ¦   «         }t          |t          j        ¬¦  «        5 }|j        t          j        k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )N)Útype)ru   r   ÚfamilyÚsocketÚAF_UNIXrä   ÚSOCK_STREAMrà   ri   rx   ry   ÚstatÚS_ISSOCKÚst_modeÚ
SOCK_DGRAM)rA   ÚnameÚsocks      r8   Útest_bind_unix_socketz"TestNetUtils.test_bind_unix_socket-  s˜  € à�ŠÑ Ô ˆÝ˜dÑ#Ô#ð 	8 tØ”;¥&¤.Ò0Ð0Ð0Ð0Ø”9¥Ô 2Ò2Ð2Ð2Ð2Ø×#Ò#Ñ%Ô%¨Ò-Ð-Ð-Ð-Ý”7—>’> $Ñ'Ô'Ð'Ð'Ð'Ý”=¥¤¨¡¤Ô!6Ñ7Ô7Ð7Ð7Ð7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð �ŠÑ Ô ˆÝ˜d­Ô):Ð;Ñ;Ô;ð 	2¸tØ”9¥Ô 1Ò1Ð1Ð1Ð1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð 	2ð 	2s$   ¤BCÃCÃCÄD(Ä(D,Ä/D,c                 ój  — dt          ¦   «         f}t          t          j        |¬¦  «        \  }}|5  |5  |                     ¦   «         |k    sJ ‚|                     ¦   «         |k    sJ ‚|                     ¦   «         |k    s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 )Nz	127.0.0.1rÞ   )r   r$   ræ   ÚAF_INETrà   Úgetpeername)rA   rß   ÚserverÚclients       r8   Útest_tcp_socketpairz TestNetUtils.test_tcp_socketpair;  sF  € Ø�]™_œ_Ð-ˆÝ'­¬¸TÐBÑBÔB‰ˆ�Øð 	0ð 	0�Vð 	0ð 	0à×%Ò%Ñ'Ô'¨4Ò/Ð/Ð/Ð/Ø×%Ò%Ñ'Ô'¨4Ò/Ð/Ð/Ð/Ø×%Ò%Ñ'Ô'¨4Ò/Ð/Ð/Ð/Ð/ð		0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0s5   ±B(´ABÂB(ÂB	ÂB(ÂB	ÂB(Â(B,Â/B,z*/var/run/log UNIX socket opened by defaultc                 óB  — t          j        ¦   «         }|                     ¦   «         }t          |                     d¬¦  «        ¦  «        rJ ‚|                      ¦   «         }t          |¦  «        \  }}	 t          j         	                    |¦  «        sJ ‚t          j        t          j
        |¦  «        j        ¦  «        sJ ‚|                     ¦   «         |z
  dk    sJ ‚t          t          |                     d¬¦  «        ¦  «        ¦  «        dk    sJ ‚|                     ¦   «         |k    sJ ‚|                     ¦   «         |k    sJ ‚	 |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)NÚunix)Úkindr¼   )rl   r±   Únum_fdsr   Únet_connectionsru   r&   ri   rx   ry   ré   rê   rë   r¿   rà   rò   r¡   )rA   r¸   rù   rí   ró   rô   s         r8   Útest_unix_socketpairz!TestNetUtils.test_unix_socketpairD  s‚  € õ
 ŒNÑÔˆØ—)’)‘+”+ˆÝ.¨q×/@Ò/@ÀfÐ/@Ñ/MÔ/MÑNÔNÐNÐNÐNØ�ŠÑ Ô ˆÝ(¨Ñ.Ô.‰ˆ�ð	Ý”7—>’> $Ñ'Ô'Ð'Ð'Ð'Ý”=¥¤¨¡¤Ô!6Ñ7Ô7Ð7Ð7Ð7Ø—9’9‘;”; Ñ(¨AÒ-Ð-Ð-Ð-åÝ/°×0AÒ0AÀvÐ0AÑ0NÔ0NÑOÔOñô ð òð ð ð ð
 ×%Ò%Ñ'Ô'¨4Ò/Ð/Ð/Ð/Ø×%Ò%Ñ'Ô'¨4Ò/Ð/Ð/Ð/Ð/à�LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNˆNøð �LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNøøøs   Á4CE4 Å4*Fc                 ó†  — t          ¦   «         5 }t          j        t          ¦  «        }t          j        t          ¦  «        }|D ]O}||j        xx         dz  cc<   ||                     t          j        t          j        ¦  «        xx         dz  cc<   ŒP|t          j	                 dk    sJ ‚t          ¦   «         r|t          j                 dk    sJ ‚t          rt          r|t          j                 dk    sJ ‚|t          j                 dk    sJ ‚|t          j                 dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr-   r¼   )r   ÚcollectionsÚdefaultdictÚintrå   Ú
getsockoptræ   Ú
SOL_SOCKETÚSO_TYPErñ   r	   ÚAF_INET6r   r   rç   rè   rì   )rA   ÚsocksÚfamsÚtypesrâ   s        r8   Útest_create_socketsz TestNetUtils.test_create_sockets^  sƒ  € ÝÑÔð 	1 ÝÔ*­3Ñ/Ô/ˆDÝÔ+­CÑ0Ô0ˆEØð Lð L�Ø�Q”X��” !Ñ#��‘à�a—l’l¥6Ô#4µf´nÑEÔEÐFÐFÔFÈ!ÑKÐFÐFÑFÐFØ�œÔ'¨1Ò,Ð,Ð,Ð,Ý‰Œð 2Ø�FœOÔ,°Ò1Ð1Ð1Ð1Ýð 1Õ1ð 1Ø�FœNÔ+¨qÒ0Ð0Ð0Ð0Ø�Ô+Ô,°Ò1Ð1Ð1Ð1Ø�Ô*Ô+¨qÒ0Ð0Ð0Ð0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1s   �DD6Ä6D:Ä=D:N)r_   r`   ra   r   r   rÙ   rÚ   r   rï   rõ   r   r   rû   r  rO   r;   r8   rÜ   rÜ   '  sÖ   € € € € € ð.ð .ð .ð
 „[×Ò˜E˜	¨,ÐÑ7Ô7ð2ð 2ñ 8Ô7ð2ð0ð 0ð 0ð „[×Ò˜E˜	¨,ÐÑ7Ô7Ø„[×ÒØÐ�'Ð"Nð ñ ô ðð ñô ñ 8Ô7ðð,1ð 1ð 1ð 1ð 1r;   rÜ   Úserial©rí   c                   óú   — e Zd Z e¦   «         d„ ¦   «         Zd„ Z e¦   «         ej                             e	d¬¦  «        ej                             e
d¬¦  «        d„ ¦   «         ¦   «         ¦   «         Zd„ Zd„ Zd	„ Zd
S )ÚTestMemLeakClassc                 óf   ‡— ˆfd„}ddiŠ|                       |dd¬¦  «         ‰d         dk    sJ ‚d S )Nc                  ó(   •— ‰ dxx         dz  cc<   d S )NÚcntr-   rO   )r  s   €r8   Úfunz(TestMemLeakClass.test_times.<locals>.funs  s   ø€ Ø�ˆJˆJŒJ˜!‰OˆJˆJ‰JˆJˆJr;   r  r   é
   é   )ÚtimesÚwarmup_timesé   )Úexecute)rA   r  r  s     @r8   Ú
test_timeszTestMemLeakClass.test_timesq  sZ   ø€ ð	ð 	ð 	ð 	ð 	ð �aˆjˆØ�Š�S °ˆÑ4Ô4Ð4Ø�5Œz˜RÒÐÐÐÐÐr;   c                 óâ  — t          j        t          ¦  «        5  |                      d„ d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |                      d„ d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |                      d„ d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |                      d„ d¬	¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |                      d
„ d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ó   — dS ©Nr   rO   rO   r;   r8   rŒ   z1TestMemLeakClass.test_param_err.<locals>.<lambda>|  ó   €  € r;   r   ©r  c                  ó   — dS r  rO   rO   r;   r8   rŒ   z1TestMemLeakClass.test_param_err.<locals>.<lambda>~  r  r;   éÿÿÿÿc                  ó   — dS r  rO   rO   r;   r8   rŒ   z1TestMemLeakClass.test_param_err.<locals>.<lambda>€  r  r;   )r  c                  ó   — dS r  rO   rO   r;   r8   rŒ   z1TestMemLeakClass.test_param_err.<locals>.<lambda>‚  r  r;   )Ú	tolerancec                  ó   — dS r  rO   rO   r;   r8   rŒ   z1TestMemLeakClass.test_param_err.<locals>.<lambda>„  r  r;   )r/   )r   rG   rP   r  r�   s    r8   Útest_param_errzTestMemLeakClass.test_param_errz  s‚  € ÝŒ]�:Ñ&Ô&ð 	-ð 	-Ø�LŠL˜˜¨!ˆLÑ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-åŒ]�:Ñ&Ô&ð 	.ð 	.Ø�LŠL˜˜¨"ˆLÑ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.åŒ]�:Ñ&Ô&ð 	5ð 	5Ø�LŠL˜˜°ˆLÑ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5åŒ]�:Ñ&Ô&ð 	2ð 	2Ø�LŠL˜˜¨bˆLÑ1Ô1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2åŒ]�:Ñ&Ô&ð 	0ð 	0Ø�LŠL˜˜¨BˆLÑ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0sW   š?¿AÁAÁ#BÂBÂBÂ,CÃCÃCÃ5DÄDÄ!DÄ>E$Å$E(Å+E(zskipped on CIrÅ   zskipped during test coveragec                 ó¸   — g }|fd„}	 t          j        t          d¬¦  «        5  |                      |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   ~d S # ~w xY w)Nc                 ó6   — |                       ddz  ¦  «         d S )NÚøxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxé   ©Úappend©Úlss    r8   r  z+TestMemLeakClass.test_leak_mem.<locals>.funŒ  s   € Ø�IŠI�i $Ñ&Ñ'Ô'Ð'Ð'Ð'r;   z	extra-mem©Úmatchéd   r  )r   rG   ÚAssertionErrorr  )rA   r*  r  s      r8   Útest_leak_memzTestMemLeakClass.test_leak_mem†  s¹   € ð ˆàð 	(ð 	(ð 	(ð 	(ð	å”�~°[ÐAÑAÔAð -ð -Ø—’˜S¨�Ñ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð ��ø�ˆFˆFˆFˆFs-   ‰A ¤A¼A ÁAÁA ÁAÁA ÁAc                 óÈ   ‡ ‡— ˆˆ fd„}g Št           rdnd}t          j        t          d|z   ¬¦  «        5  ‰                      |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  óŽ   •— t          t          ¦  «        } ‰                     | j        ¦  «         ‰                     | ¦  «         d S rM   )rv   r“   Ú
addCleanupr¡   r(  )r|   ÚboxrA   s    €€r8   r  z1TestMemLeakClass.test_unclosed_files.<locals>.fun—  s5   ø€ Ý•X‘”ˆAØ�OŠO˜AœGÑ$Ô$Ð$Ø�JŠJ�q‰MŒMˆMˆMˆMr;   ÚfdÚhandlez	unclosed r+  )r   r   rG   r.  r  )rA   r  rø   r3  s   `  @r8   Útest_unclosed_filesz$TestMemLeakClass.test_unclosed_files–  sÇ   øø€ ð	ð 	ð 	ð 	ð 	ð 	ð
 ˆÝÐ*ˆtˆt (ˆÝŒ]�>°¸tÑ1CÐDÑDÔDð 	ð 	Ø�LŠL˜ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ´AÁAÁAc                 ó|   ‡— ˆfd„}g Šd}|                       ||dd¬¦  «         t          ‰¦  «        |dz   k    sJ ‚d S )Nc                  ó8   •— ‰                       ddz  ¦  «         d S )NÚxxxxxxxxxxxxxxxxxxxxxxxxr&  r'  r)  s   €r8   r  z,TestMemLeakClass.test_tolerance.<locals>.fun¢  s   ø€ Ø�IŠI�h ‘oÑ&Ô&Ð&Ð&Ð&r;   r-  r   i  €)r  r  r   r-   )r  r¿   )rA   r  r  r*  s      @r8   Útest_tolerancezTestMemLeakClass.test_tolerance¡  sp   ø€ ð	'ð 	'ð 	'ð 	'ð 	'ð ˆØˆØ�ŠØ�u¨1Ð8Ið 	ñ 	
ô 	
ð 	
õ �2‰wŒw˜% !™)Ò#Ð#Ð#Ð#Ð#Ð#r;   c                 óz  — d„ }|                       t          |¦  «         t          j        t          ¦  «        5  |                       t          |¦  «         d d d ¦  «         n# 1 swxY w Y   d„ }t          j        t
          ¦  «        5  |                       t          |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ó   — ddz   d S r3   rO   rO   r;   r8   Úfun_1z2TestMemLeakClass.test_execute_w_exc.<locals>.fun_1­  s   € Ø�‰EˆEˆEˆEr;   c                  ó   — d S rM   rO   rO   r;   r8   Úfun_2z2TestMemLeakClass.test_execute_w_exc.<locals>.fun_2´  s   € ØˆDr;   )Úexecute_w_excrH   r   rG   r„   r.  )rA   r=  r?  s      r8   Útest_execute_w_excz#TestMemLeakClass.test_execute_w_exc¬  sB  € ð	ð 	ð 	ð 	×ÒÕ,¨eÑ4Ô4Ð4ÝŒ]Õ,Ñ-Ô-ð 	/ð 	/Ø×Ò�w¨Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð	ð 	ð 	õ Œ]�>Ñ*Ô*ð 	9ð 	9Ø×ÒÕ0°%Ñ8Ô8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð 	9ð 	9s#   ¸A Á A$Á'A$ÂB0Â0B4Â7B4N)r_   r`   ra   r    r  r"  r   rÙ   rÚ   r
   r   r/  r6  r:  rA  rO   r;   r8   r  r  o  sÚ   € € € € € àÐÑÔð ð  ñ Ôð ð
0ð 
0ð 
0ð ÐÑÔØ„[×Ò˜
¨?ÐÑ;Ô;Ø„[×Ò˜Ð)GÐÑHÔHðð ñ IÔHñ <Ô;ñ Ôðð	ð 	ð 	ð	$ð 	$ð 	$ð9ð 9ð 9ð 9ð 9r;   r  c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestFakePytestc                 ó¦   — t          j        ¦   «         }|                     |¦  «         t          j        ¦   «         }|                     |¦  «        }|S rM   )ÚunittestÚ	TestSuiteÚaddTestÚTextTestRunnerÚrun)rA   ÚklassÚsuiteÚrunnerÚresults        r8   Úrun_test_classzTestFakePytest.run_test_class¼  sF   € ÝÔ"Ñ$Ô$ˆØ�Š�eÑÔÐÝÔ(Ñ*Ô*ˆØ—’˜EÑ"Ô"ˆØˆr;   c                 ó  — t          j        t          ¦  «        5 }ddz   d d d ¦  «         n# 1 swxY w Y   t          |j        t          ¦  «        sJ ‚t          j        t
          d¬¦  «        5 }t          d¦  «        ‚# 1 swxY w Y   	 t          j        t
          d¬¦  «        5 }t          d¦  «        ‚# 1 swxY w Y   	 |                      d¦  «        ‚# t          $ r }t          |¦  «        dk    sJ ‚Y d }~d S d }~ww xY w)Nr-   r   r9   r+  Úbarúexception not raisedz"foo" does not match "bar")	r   rG   rH   Ú
isinstanceÚvaluerP   Úfailr.  Ústr)rA   ÚcmÚerrs      r8   Útest_raiseszTestFakePytest.test_raisesÃ  s˜  € ÝÔÕ 1Ñ2Ô2ð 	°bØ�‰EˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	å˜"œ(Õ$5Ñ6Ô6Ð6Ð6Ð6åÔ¥
°%Ð8Ñ8Ô8ð 	$¸BÝ˜UÑ#Ô#Ð#ð	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð	4ÝÔ#¥J°eÐ<Ñ<Ô<ð (ÀÝ  Ñ'Ô'Ð'ð(ð (ð (ð (øøøð (ð (ð (ð (ð (ð
 —)’)Ð2Ñ3Ô3Ð3øõ ð 	<ð 	<ð 	<Ý�s‘8”8Ð;Ò;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;øøøøð	<øøøsT   š,¬0³0Á.A>Á>BÂBÂ
C Â%B5Â5B9Â9C Â<B9Â=C Ã
D Ã C;Ã;D c                 ó"  — t           j                             d¬¦  «        d„ ¦   «         } |¦   «         dk    sJ ‚t           j                             d¬¦  «         G d„ d¦  «        ¦   «         } |¦   «                              ¦   «         dk    sJ ‚d S )Nr  r	  c                  ó   — dS r‹   rO   rO   r;   r8   r9   z%TestFakePytest.test_mark.<locals>.fooÔ  s   € à�1r;   r-   c                   ó   — e Zd Zd„ ZdS )ú%TestFakePytest.test_mark.<locals>.Fooc                 ó   — dS r‹   rO   r�   s    r8   rP  z)TestFakePytest.test_mark.<locals>.Foo.barÜ  s   € Ø�qr;   N)r_   r`   ra   rP  rO   r;   r8   ÚFoor\  Ú  s#   € € € € € ðð ð ð ð r;   r^  )r   rÙ   Úxdist_grouprP  )rA   r9   r^  s      r8   Ú	test_markzTestFakePytest.test_markÓ  s³   € Ý	Ô	×	%Ò	%¨8Ð	%Ñ	4Ô	4ð	ð 	ñ 
5Ô	4ð	ð ˆs‰uŒu˜Šzˆzˆzˆzå	Ô	×	%Ò	%¨8Ð	%Ñ	4Ô	4ð	ð 	ð 	ð 	ð 	ñ 	ô 	ñ 
5Ô	4ð	ð ˆs‰uŒu�yŠy‰{Œ{˜aÒÐÐÐÐÐr;   c                 óÐ  —  G d„ dt           j        ¦  «        }|                       |d¦  «        ¦  «        }|                     ¦   «         sJ ‚t	          |j        ¦  «        dk    sJ ‚|j        d         d         dk    sJ ‚ G d„ dt           j        ¦  «        }|                       |d¦  «        ¦  «        }|                     ¦   «         sJ ‚t	          |j        ¦  «        dk    sJ ‚d S )Nc                   óX   — e Zd Zej                             dd¬¦  «        d„ ¦   «         ZdS )ú,TestFakePytest.test_skipif.<locals>.TestCaseTrÆ   rÅ   c                 ó   — ddk    sJ ‚d S r‹   rO   r�   s    r8   r9   z0TestFakePytest.test_skipif.<locals>.TestCase.fooã  ó   € à˜A’v�v�v�v�v�vr;   N©r_   r`   ra   r   rÙ   rÚ   r9   rO   r;   r8   ÚTestCaserc  â  sD   € € € € € ØÔ×$Ò$ T°(Ð$Ñ;Ô;ðð ñ <Ô;ðð ð r;   rg  r9   r-   r   rÆ   c                   óX   — e Zd Zej                             dd¬¦  «        d„ ¦   «         ZdS )rc  FrÆ   rÅ   c                 ó   — ddk    sJ ‚d S r‹   rO   r�   s    r8   r9   z0TestFakePytest.test_skipif.<locals>.TestCase.fooí  re  r;   Nrf  rO   r;   r8   rg  z,TestFakePytest.test_skipif.<locals>.TestCaseì  sD   € € € € € ØÔ×$Ò$ U°8Ð$Ñ<Ô<ðð ñ =Ô<ðð ð r;   ©rE  rg  rN  ÚwasSuccessfulr¿   Úskipped©rA   rg  rM  s      r8   Útest_skipifzTestFakePytest.test_skipifá  s  € ð	ð 	ð 	ð 	ð 	•xÔ(ñ 	ô 	ð 	ð
 ×$Ò$ X X¨e¡_¤_Ñ5Ô5ˆØ×#Ò#Ñ%Ô%Ð%Ð%Ð%Ý�6”>Ñ"Ô" aÒ'Ð'Ð'Ð'ØŒ~˜aÔ  Ô# xÒ/Ð/Ð/Ð/ð	ð 	ð 	ð 	ð 	•xÔ(ñ 	ô 	ð 	ð
 ×$Ò$ X X¨e¡_¤_Ñ5Ô5ˆØ×#Ò#Ñ%Ô%Ð%Ð%Ð%Ý�6”>Ñ"Ô" aÒ'Ð'Ð'Ð'Ð'Ð'r;   c                 ó  —  G d„ dt           j        ¦  «        }|                       |d¦  «        ¦  «        }|                     ¦   «         sJ ‚t	          |j        ¦  «        dk    sJ ‚|j        d         d         dk    sJ ‚d S )Nc                   ó   — e Zd Zd„ ZdS )ú*TestFakePytest.test_skip.<locals>.TestCasec                 ó>   — t          j        d¦  «         ddk    sJ ‚d S )NrÆ   r-   r   )r   Úskipr�   s    r8   r9   z.TestFakePytest.test_skip.<locals>.TestCase.foo÷  s$   € ÝÔ  Ñ*Ô*Ð*Ø˜A’v�v�v�v�v�vr;   N)r_   r`   ra   r9   rO   r;   r8   rg  rq  ö  s#   € € € € € ðð ð ð ð r;   rg  r9   r-   r   rÆ   rj  rm  s      r8   Ú	test_skipzTestFakePytest.test_skipõ  s¢   € ð	ð 	ð 	ð 	ð 	•xÔ(ñ 	ô 	ð 	ð
 ×$Ò$ X X¨e¡_¤_Ñ5Ô5ˆØ×#Ò#Ñ%Ô%Ð%Ð%Ð%Ý�6”>Ñ"Ô" aÒ'Ð'Ð'Ð'ØŒ~˜aÔ  Ô# xÒ/Ð/Ð/Ð/Ð/Ð/r;   c                 ó:  — |                       t          ¬¦  «        }t          j        |¦  «         t	          t          j                             |d¦  «        d¦  «        5  	 d d d ¦  «         n# 1 swxY w Y   t	          t          j                             |d¦  «        d¦  «        5 }|                     t          j	        d¦  «         
                    ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j                             t          j        d|¦  «        5  |                      t"          d¦  «        5  t%          j        ¦   «         }|                     ¦   «         dk    s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 )	N)Údirz__init__.pyrs   ztest_file.pyz¬                import unittest

                class TestCase(unittest.TestCase):
                    def test_passed(self):
                        pass
                r   zFake pytest module was usedr-   )ru   r   ri   r¢   rv   rx   rª   rw   ÚtextwrapÚdedentÚlstripr   rb   Úobjectrl   r´   ÚassertWarnsRegexÚUserWarningr   ÚmainÚcountTestCases)rA   Útmpdirr|   rK  s       r8   Ú	test_mainzTestFakePytest.test_main   sf  € Ø—’¥T�Ñ*Ô*ˆÝ
Œ�ÑÔÐÝ•"”'—,’,˜v }Ñ5Ô5°sÑ;Ô;ð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	å•"”'—,’,˜v ~Ñ6Ô6¸Ñ<Ô<ð 	ÀØ�GŠG•H”Oð %ñ ô ÷ ’V‘X”Xñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ ŒZ×Ò�vœ|¨V°VÑ<Ô<ð 	3ð 	3Ø×&Ò&ÝÐ:ñô ð 3ð 3õ $Ô(Ñ*Ô*�Ø×+Ò+Ñ-Ô-°Ò2Ð2Ð2Ð2Ð2ð	3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð 	3ð 	3sZ   ÁA,Á,A0Á3A0Â%:C+Ã+C/Ã2C/Ä!FÄ=.E8Å,FÅ8E<	Å<FÅ?E<	Æ FÆFÆFc                 ó  — t          j        t          ¦  «        5  t          j        dt          d¬¦  «         d d d ¦  «         n# 1 swxY w Y   	 t          j        t          ¦  «        5  t          j        dt
          d¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                      d¦  «        ‚# t          $ r Y nw xY wt          j        t          d¬¦  «        5  t          j        dt          d¬¦  «         d d d ¦  «         n# 1 swxY w Y   	 t          j        t          d¬¦  «        5  t          j        dt          d¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                      d¦  «        ‚# t          $ r Y d S w xY w)Nr9   r-   )Ú
stacklevelrQ  r+  rP  )r   Úwarnsr|  ÚwarningsÚwarnÚDeprecationWarningrT  r.  r�   s    r8   Ú
test_warnszTestFakePytest.test_warns  sŸ  € åÔ�{Ñ+Ô+ð 	<ð 	<ÝŒM˜%¥¸Ð;Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð	4ÝÔ"¥;Ñ/Ô/ð Gð GÝ”˜eÕ%7ÀAÐFÑFÔFÐFðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gð
 —)’)Ð2Ñ3Ô3Ð3øõ ð 	ð 	ð 	ØˆDð	øøøõ Ô�{°%Ð8Ñ8Ô8ð 	<ð 	<ÝŒM˜%¥¸Ð;Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð	4ÝÔ"¥;°eÐ<Ñ<Ô<ð @ð @Ý”˜e¥[¸QÐ?Ñ?Ô?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @ð
 —)’)Ð2Ñ3Ô3Ð3øõ ð 	ð 	ð 	ØˆDˆDð	øøøs�   šAÁAÁ
AÁB1 Á(BÂB1 ÂBÂB1 ÂBÂB1 Â1
B>Â=B>ÃDÄD	ÄD	ÄE5 Ä,EÅ	E5 ÅEÅE5 ÅEÅE5 Å5
FÆFN)
r_   r`   ra   rN  rX  r`  rn  rt  r€  r‡  rO   r;   r8   rC  rC  »  s}   € € € € € ðð ð ð4ð 4ð 4ð  ð  ð  ð(ð (ð (ð(	0ð 	0ð 	0ð3ð 3ð 3ð(4ð 4ð 4ð 4ð 4r;   rC  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestTestingUtilsc                 ó$  — t          j        ¦   «         }t          |¦  «        }|                     ¦   «          t	          d„ |                     |j        ¦  «        D ¦   «         ¦  «        d         } |¦   «         |                     ¦   «         k    sJ ‚d S )Nc              3   ó2   K  — | ]}|d          dk    ¯|V — ŒdS )r-   rÀ   NrO   ©Ú.0Úxs     r8   ú	<genexpr>z:TestTestingUtils.test_process_namespace.<locals>.<genexpr>5  s*   è è € ÐDÐD˜°Q°q´T¸V²^°^�1°^°^°^°^ÐDÐDr;   r   )rl   r±   r   ÚtestÚnextrn   ÚgettersrÀ   )rA   r¸   Únsr  s       r8   Útest_process_namespacez'TestTestingUtils.test_process_namespace1  s}   € ÝŒNÑÔˆÝ˜qÑ!Ô!ˆØ
�Š‰	Œ	ˆ	ÝÐDÐD˜bŸgšg b¤jÑ1Ô1ÐDÑDÔDÑDÔDÀQÔGˆØˆs‰uŒu˜Ÿš™œÒ Ð Ð Ð Ð Ð r;   c                 óÒ   — t          ¦   «         }t          d„ |                     |j        ¦  «        D ¦   «         ¦  «        d         } |¦   «         t	          j        ¦   «         k    sJ ‚d S )Nc              3   ó2   K  — | ]}|d          dk    ¯|V — ŒdS )r-   Únet_if_addrsNrO   rŒ  s     r8   r�  z9TestTestingUtils.test_system_namespace.<locals>.<genexpr>:  s0   è è € ÐLÐL˜°Q°q´T¸^Ò5KÐ5K�1Ð5KÐ5KÐ5KÐ5KÐLÐLr;   r   )r#   r‘  rn   r’  rl   r—  )rA   r“  r  s      r8   Útest_system_namespacez&TestTestingUtils.test_system_namespace8  sb   € ÝÑÔˆÝÐLÐL˜bŸgšg b¤jÑ1Ô1ÐLÑLÔLÑLÔLÈQÔOˆØˆs‰uŒu�Ô+Ñ-Ô-Ò-Ð-Ð-Ð-Ð-Ð-r;   N)r_   r`   ra   r”  r˜  rO   r;   r8   r‰  r‰  0  s2   € € € € € ð!ð !ð !ð.ð .ð .ð .ð .r;   r‰  c                   ó   — e Zd Zd„ ZdS )ÚTestOtherUtilsc                 óž   — t           t          j        dd¦  «        ddd¦  «        ¦  «        sJ ‚t          t          ¦   «         ¦  «        rJ ‚d S )Nr9   za b cr-   r¼   r<   )r   rý   Ú
namedtupleÚtupler�   s    r8   Útest_is_namedtuplez!TestOtherUtils.test_is_namedtuple?  sP   € ÝÐC�[Ô3°E¸7ÑCÔCÀAÀqÈ!ÑLÔLÑMÔMÐMÐMÐMÝ ¥¡¤Ñ)Ô)Ð)Ð)Ð)Ð)Ð)r;   N)r_   r`   ra   rž  rO   r;   r8   rš  rš  >  s#   € € € € € ð*ð *ð *ð *ð *r;   rš  )=Ú__doc__rý   r£   ri   ræ   ré   rÔ   rw  rE  r„  r   rl   Úpsutil.testsr   r   r   Úpsutil._commonr   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®   rÜ   rÙ   r_  r  rC  r‰  rš  rO   r;   r8   ú<module>r¢     sæ  ðð 8Ð 7à Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð à €€€Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø $Ð $Ð $Ð $Ð $Ð $Ø (Ð (Ð (Ð (Ð (Ð (Ø #Ð #Ð #Ð #Ð #Ð #Ø !Ð !Ð !Ð !Ð !Ð !Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø $Ð $Ð $Ð $Ð $Ð $Ø )Ð )Ð )Ð )Ð )Ð )Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø $Ð $Ð $Ð $Ð $Ð $Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø &Ð &Ð &Ð &Ð &Ð &Ø &Ð &Ð &Ð &Ð &Ð &Ø *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø #Ð #Ð #Ð #Ð #Ð #Ø $Ð $Ð $Ð $Ð $Ð $Ø )Ð )Ð )Ð )Ð )Ð )Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø "Ð "Ð "Ð "Ð "Ð "Ø (Ð (Ð (Ð (Ð (Ð (Ø &Ð &Ð &Ð &Ð &Ð &Ø %Ð %Ð %Ð %Ð %Ð %ðB(ð B(ð B(ð B(ð B(˜ñ B(ô B(ð B(ðJ$ð $ð $ð $ð $˜ñ $ô $ð $ðP*#ð *#ð *#ð *#ð *#�nñ *#ô *#ð *#ðZI+ð I+ð I+ð I+ð I+�~ñ I+ô I+ð I+ðXE1ð E1ð E1ð E1ð E1�>ñ E1ô E1ð E1ðP „×Ò˜hÐÑ'Ô'ðH9ð H9ð H9ð H9ð H9�~ñ H9ô H9ñ (Ô'ðH9ðVr4ð r4ð r4ð r4ð r4�^ñ r4ô r4ð r4ðj.ð .ð .ð .ð .�~ñ .ô .ð .ð*ð *ð *ð *ð *�^ñ *ô *ð *ð *ð *r;   