
    h                         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==== 69%% 	+NN6>***69%% 	+NN6>*** 	F 	FF!&9EEEEE	F! '   
 			& "3:...	z 8 	27??2:66777 +$$&& ? ?6:&& 	?(99 ? ?t)+)>)>&&6:t,, 	? goofo>>FO	} 0*/'	{R[)))	|
&&&#BJ$B2:?CCC,GsN## +	 	 	)***   	z #G$92:? K K"7#7aHH $'w'?#L#L #&w'?#L#L  #G$92: 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 )zSet 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     ZF]]__    	 b#!	  CJ     ON#####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Hg K+(W"4"4;00	-}|W.EFFFG8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IIII   	BBB@ @ @ @ @ @ @ @ 3 Z> Z> Z>z$ $ $4- - - - -s   - 77