§
    ç·j�  ã                   óž   — 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m	Z	m
Z
 	 d dlZn# e$ r dZY nw xY wd dlmZmZ dZd„ Zd„ Zd„ ZdS )	é    N)Úsupport)ÚTESTFN_UNDECODABLEÚFS_NONASCII)Úsetup_unraisable_hookÚsetup_threading_excepthookÚPYTHONREGRTEST_UNICODE_GUARDc                 óî  — 	 t           j                             ¦   «         }t          j        d|¬¦  «         g }t          t          d¦  «        r|                     t          j        ¦  «         t          t          d¦  «        r|                     t          j	        ¦  «         |D ]}t          j
        |d|¬¦  «         Œn# t          t          f$ r d }Y nw xY wt          ¦   «          t          ¦   «          t          j        t           j        ¦  «         | j        rBt           j                             dt*          j                             | j        ¦  «        ¦  «         t           j                             ¦   «         D ]�}t          |d¦  «        rAt3          |j        ¦  «        D ],\  }}t*          j                             |¦  «        |j        |<   Œ-t7          |dd ¦  «        r)t*          j                             |j        ¦  «        |_        ŒŽ| j        rd	t<          j        _         | j!        �t          j"        | j!        ¦  «         | j#        �tI          j%        | j#        ¦  «         t          j&        | j'        o
| j'        d
k    ¦  «         | j(        t          _(        t          t           d¦  «        rd„ }t          j)        |¦  «         tU          ¦   «          tW          ¦   «          | j,        �üt[          t          j.        | j,        dz  ¦  «        t          _.        t[          t          j/        | j,        dz  ¦  «        t          _/        ta          t          j1        | j,        ¦  «        t          _1        ta          t          j2        | j,        ¦  «        t          _2        ta          t          j.        | j,        ¦  «        t          _.        ta          t          j/        | j,        ¦  «        t          _/        | j3        rddl4m5} d|_6        tn          rJt*          j8        r>t*          j9         :                    tv           <                    ¦   «         tn          ¦  «         d S tz          r,t*          j>         :                    tv          tz          ¦  «         d S d S )NT)Úall_threadsÚfileÚSIGALRMÚSIGUSR1)Úchainr   r   Ú__path__Ú__file__Fé   Úaddaudithookc                 ó   — d S ©N© )ÚnameÚargss     ú-/usr/lib/python3.11/test/libregrtest/setup.pyÚ_test_audit_hookz%setup_tests.<locals>._test_audit_hookT   s   € ØˆDó    é(   é   )ÚRegressionTestResult)?ÚsysÚ
__stderr__ÚfilenoÚfaulthandlerÚenableÚhasattrÚsignalÚappendr   r   ÚregisterÚ
ValueErrorÚAttributeErrorÚ_adjust_resource_limitsÚreplace_stdoutr   Úrecord_original_stdoutÚstdoutÚtestdirÚpathÚinsertÚosÚabspathÚmodulesÚvaluesÚ	enumerater   Úgetattrr   Ú
huntrleaksÚunittestÚBaseTestSuiteÚ_cleanupÚmemlimitÚset_memlimitÚ	thresholdÚgcÚset_thresholdÚsuppress_msvcrt_assertsÚverboseÚuse_resourcesr   r   r   ÚtimeoutÚmaxÚSHORT_TIMEOUTÚLONG_TIMEOUTÚminÚLOOPBACK_TIMEOUTÚINTERNET_TIMEOUTÚxmlpathÚtest.support.testresultr   ÚUSE_XMLr   Úsupports_bytes_environÚenvironbÚ
setdefaultÚUNICODE_GUARD_ENVÚencoder   Úenviron)	ÚnsÚ	stderr_fdÚsignalsÚsignumÚmoduleÚindexr.   r   r   s	            r   Úsetup_testsrX      sÌ  € ðFÝ”N×)Ò)Ñ+Ô+ˆ	õ 	Ô¨°9Ð=Ñ=Ô=Ð=ð ˆÝ•6˜9Ñ%Ô%ð 	+Ø�NŠN�6œ>Ñ*Ô*Ð*Ý•6˜9Ñ%Ô%ð 	+Ø�NŠN�6œ>Ñ*Ô*Ð*Øð 	Fð 	FˆFÝÔ! &°¸9ÐEÑEÔEÐEÐEð	Føõ! �Ð'ð ð ð ð
 ˆ	ˆ	ˆ	ðøøøõ& ÑÔÐÝÑÔÐÝÔ"¥3¤:Ñ.Ô.Ð.à	„zð 8õ 	Œ�Š˜�2œ7Ÿ?š?¨2¬:Ñ6Ô6Ñ7Ô7Ð7õ ”+×$Ò$Ñ&Ô&ð ?ð ?ˆÝ�6˜:Ñ&Ô&ð 	?Ý(¨¬Ñ9Ô9ð ?ð ?‘��tÝ)+¬¯ª¸Ñ)>Ô)>�” Ñ&Ð&Ý�6˜: tÑ,Ô,ð 	?Ý œgŸošo¨f¬oÑ>Ô>ˆFŒOøà	„}ð 0Ø*/�ÔÔ'à	„{ÐÝÔ˜Rœ[Ñ)Ô)Ð)à	„|ÐÝ
Ô˜œÑ&Ô&Ð&åÔ# B¤JÐ$B°2´:À²?ÑCÔCÐCàÔ,…GÔå�s�NÑ#Ô#ð +ð	ð 	ð 	åÔÐ)Ñ*Ô*Ð*åÑÔÐÝÑ Ô Ð à	„zÐå #¥GÔ$9¸2¼:È¹?Ñ KÔ K�ÔÝ"¥7Ô#7¸¼Àa¹ÑHÔH�Ôõ $'¥wÔ'?ÀÄÑ#LÔ#L�Ô Ý#&¥wÔ'?ÀÄÑ#LÔ#L�Ô Ý #¥GÔ$9¸2¼:Ñ FÔ F�ÔÝ"¥7Ô#7¸¼ÑDÔD�Ôà	„zð ,Ø@Ð@Ð@Ð@Ð@Ð@Ø'+ÐÔ$õ ð >�bÔ7ð >Ý
Œ×ÒÕ0×7Ò7Ñ9Ô9Õ;MÑNÔNÐNÐNÐNÝ	ð >Ý
Œ
×ÒÕ/µÑ=Ô=Ð=Ð=Ð=ð>ð >s   ‚B= Â=CÃCc                  óè   ‡— t           j        Š	 ‰                     ¦   «         } n# t          $ r Y dS w xY wt	          | d‰j        ddd¬¦  «        t           _        ˆfd„}t          j        |¦  «         dS )zˆSet stdout encoder error handler to backslashreplace (as stderr error
    handler) to avoid UnicodeEncodeError when printing a tracebackNÚwÚbackslashreplaceFú
)ÚencodingÚerrorsÚclosefdÚnewlinec                  ó\   •— t           j                             ¦   «          ‰ t           _        d S r   )r   r,   Úclose)r,   s   €r   Úrestore_stdoutz&replace_stdout.<locals>.restore_stdout†   s"   ø€ ÝŒ
×ÒÑÔÐØ�Œ
ˆ
ˆ
r   )r   r,   r    r'   Úopenr]   Úatexitr&   )Úfdrc   r,   s     @r   r*   r*   r   sŸ   ø€ õ ŒZ€FðØ�]Š]‰_Œ_ˆˆøÝð ð ð ð 	ˆˆðøøøõ �b˜#Ø”Ø!ØØð	ñ ô …C„Jðð ð ð ð õ „O�NÑ#Ô#Ð#Ð#Ð#s   �$ ¤
2±2c            
      ó„  — 	 ddl } ddl m}m} n# t          $ r Y dS w xY w|                      |¦  «        \  }}d}||k     r~||k     rzt          ||¦  «        }	 |                      |||f¦  «         t          d|› d|› �¦  «         dS # t          t          f$ r$}t          d|› d|› d	|› d
�¦  «         Y d}~dS d}~ww xY wdS dS )z5Adjust the system resource limits (ulimit) if needed.r   N)ÚRLIMIT_NOFILEÚRLIM_INFINITYi   zRaised RLIMIT_NOFILE: z -> z#Unable to raise RLIMIT_NOFILE from z to z: ú.)
Úresourcerh   ri   ÚImportErrorÚ	getrlimitrF   Ú	setrlimitÚprintr'   ÚOSError)rk   rh   ri   Úfd_limitÚmax_fdsÚdesired_fdsÚnew_fd_limitÚerrs           r   r)   r)   Œ   sg  € ðØˆˆˆØ9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9øÝð ð ð Øˆˆðøøøà ×*Ò*¨=Ñ9Ô9Ñ€Hˆgð €KØ�+ÒÐ (¨WÒ"4Ð"4Ý˜;¨Ñ0Ô0ˆð	-Ø×Ò˜}¨|¸WÐ.EÑFÔFÐFÝÐG¨8ÐGÐG¸ÐGÐGÑHÔHÐHÐHÐHøÝ�GÐ$ð 	-ð 	-ð 	-Ýð ,¸ð ,ð ,Ø!ð,ð ,Ø%(ð,ð ,ð ,ñ -ô -ð -ð -ð -ð -ð -ð -ð -øøøøð	-øøøð ÐÐ"4Ð"4s$   ‚ �
œÁ-B ÂB;ÂB6Â6B;)re   r!   r0   r$   r   r7   Útestr   Útest.support.os_helperr   r   r=   rl   Útest.libregrtest.utilsr   r   rO   rX   r*   r)   r   r   r   ú<module>ry      s  ðØ €€€Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BðØ€I€I€I€IøØð ð ð Ø	€B€B€Bðøøøð@ð @ð @ð @ð @ð @ð @ð @ð 3Ð ðZ>ð Z>ð Z>ðz$ð $ð $ð4-ð -ð -ð -ð -s   ¨- ­7¶7