
    daf                    |   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mZ d dlmZmZ d dlmZ d dlmZ d dlZd dlZd dlZ	 d dlmZ d Zd	Z G d
 dej6                        Z G d dej6                        Z G d dej6                        Z G d dej6                        Zej                  j@                   G d dej6                               Z!ej                  j@                   G d dej6                               Z"e#dk(  r ejH                          yy# e$ r dZY w xY w)    N)support)	os_helper)assert_python_okassert_python_failure)threading_helper)import_helper)interpretersc                 J    t        j                  t        d u d      } ||       S )NzTest requires subinterpreters)unittestskipIfr	   )funcdecos     (/root/Python-3.12.4/Lib/test/test_sys.pyrequires_subinterpretersr      s$    ??<4/46D:    n2BI2nc                       e Zd Zd Zd Zd Zy)DisplayHookTestc                    t         j                  }t        j                         5 } |d       d d d        | j	                  j                         d       | j	                  t        j                  d       t        `t        j                         5 } |d        d d d        | j	                  |j                         d       | j                  t        t        d              | j                  t        |       t         j                  }	 t         `| j                  t        |d       |t         _        y # 1 sw Y   xY w# 1 sw Y   xY w# |t         _        w xY w)N*   z42
 _)sys__displayhook__r   captured_stdoutassertEqualgetvaluebuiltinsr   
assertTruehasattrassertRaises	TypeErrorstdoutRuntimeError)selfdhoutr#   s       r   test_original_displayhookz)DisplayHookTest.test_original_displayhook&   s     $$& 	#rF	 	0R(J$$& 	#tH	 	,GHc223 	)R(	 
lB3CJ-	 		 	  CJs#   	D1	D>E
 1D;>E
Ec                     t         j                  }	 t         `t        ddd      }| j                  t        t
        |       |t         _        y # |t         _        w xY w)N42<string>single)r   displayhookcompiler!   r$   eval)r%   r-   codes      r   test_lost_displayhookz%DisplayHookTest.test_lost_displayhookA   sD    oo	*4X6DlD$7)COkCOs   .A Ac                     d }t        j                  t        d|      5  t        ddd      }| j	                  t
        t        |       d d d        y # 1 sw Y   y xY w)Nc                     t         N
ValueError)objs    r   baddisplayhookz?DisplayHookTest.test_custom_displayhook.<locals>.baddisplayhookK       r   r-   r*   r+   r,   )r   	swap_attrr   r.   r!   r6   r/   )r%   r8   r0   s      r   test_custom_displayhookz'DisplayHookTest.test_custom_displayhookJ   sP    	 sM>B 	64X6Dj$5	6 	6 	6s   )AAN)__name__
__module____qualname__r(   r1   r;    r   r   r   r   $   s     6*6r   r   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)ActiveExceptionTestsc                 L    | j                  t        j                         d       y )N)NNN)r   r   exc_infor%   s    r   test_exc_info_no_exceptionz/ActiveExceptionTests.test_exc_info_no_exceptionS   s    );<r   c                 L    | j                  t        j                         d        y r4   )r   r   	exceptionrD   s    r   test_sys_exception_no_exceptionz4ActiveExceptionTests.test_sys_exception_no_exceptionV   s    $/r   c                 8   d }	  |        | j                  t               | j                  d   t               | j                  |d   |       | j                  |d   |j                         y # t         $ r }|}t        j                         }Y d }~d }~ww xY w)Nc                      t        d      Nr   r5   r?   r   r   fzEActiveExceptionTests.test_exc_info_with_exception_instance.<locals>.fZ       R. r   r         	Exceptionr   rC   assertIsInstancer6   assertIs__traceback__r%   rL   e_erC   s        r   %test_exc_info_with_exception_instancez:ActiveExceptionTests.test_exc_info_with_exception_instanceY   s    	!	&C
 	a,hqk:.hqk1%hqk1??3  	&A||~H	&   A0 0	B9BBc                 8   d }	  |        | j                  t               | j                  d   t               | j                  |d   |       | j                  |d   |j                         y # t         $ r }|}t        j                         }Y d }~d }~ww xY w)Nc                      t         r4   r5   r?   r   r   rL   zAActiveExceptionTests.test_exc_info_with_exception_type.<locals>.fi   r9   r   r   rN   rO   rP   rU   s        r   !test_exc_info_with_exception_typez6ActiveExceptionTests.test_exc_info_with_exception_typeh   s    		&C
 	a,hqk:.hqk1%hqk1??3  	&A||~H	&rY   c                     d }	  |        | j                  t               | j                  |       y # t         $ r }|}t        j                         }Y d }~Md }~ww xY w)Nc                      t        d      rK   r5   r?   r   r   rL   zJActiveExceptionTests.test_sys_exception_with_exception_instance.<locals>.fx   rM   r   rQ   r   rG   rR   r6   rS   r%   rL   rV   rW   excs        r   *test_sys_exception_with_exception_instancez?ActiveExceptionTests.test_sys_exception_with_exception_instancew   sS    	!	"C
 	a,c1  	"A--/C	"   5 	AAAc                     d }	  |        | j                  t               | j                  |       y # t         $ r }|}t        j                         }Y d }~Md }~ww xY w)Nc                      t         r4   r5   r?   r   r   rL   zFActiveExceptionTests.test_sys_exception_with_exception_type.<locals>.f   r9   r   r_   r`   s        r   &test_sys_exception_with_exception_typez;ActiveExceptionTests.test_sys_exception_with_exception_type   sS    		"C
 	a,c1  	"A--/C	"rc   N)	r<   r=   r>   rE   rH   rX   r\   rb   rf   r?   r   r   rA   rA   R   s     =044r   rA   c                       e Zd Zd Zd Zd Zy)ExceptHookTestc                    	 t        d      # t         $ rX}t        j                         5 }t        j                  t        j
                           d d d        n# 1 sw Y   nxY wY d }~nd }~ww xY w| j                  j                         j                  d             | j                  t        t        j                         y )Nr   ValueError: 42
)r6   r   captured_stderrr   __excepthook__rC   r   r   endswithr!   r"   r%   ra   errs      r   test_original_excepthookz'ExceptHookTest.test_original_excepthook   s    	4R.  	4((* 4c""CLLN34 4 4	4 	//0BCD)S%7%78s+    	A.A)%A	A)A!	A))A.c                    t        j                         5  t        j                  dt               	 t	        dd      # t        $ rX}t        j                         5 }t        j                  t        j                           d d d        n# 1 sw Y   nxY wY d }~nd }~ww xY wd d d        n# 1 sw Y   nxY wj                         }| j                  d|       | j                  d|       | j                  |j                  d             y )Nignoremsg)s   bytes_filename{   r   textz%  File "b'bytes_filename'", line 123
z	    text
zSyntaxError: msg
)warningscatch_warningssimplefilterBytesWarningSyntaxErrorr   rk   r   rl   rC   r   assertInr   rm   rn   s      r   test_excepthook_bytes_filenamez-ExceptHookTest.test_excepthook_bytes_filename   s     $$& 	8!!(L98!%)LMM 8,,. 8#&&78 8 88	8 	8 	8 llnBCH&,%9:;sD   B*=	BB%B?	BBBB*BB**B3c                     t         j                  j                  d      5 }t        j                  ddd       d d d        | j                  dj                         v        y # 1 sw Y   +xY w)NstderrrN   1zETypeError: print_exception(): Exception expected for value, str found)testr   captured_outputr   
excepthookr   r   )r%   r~   s     r   test_excepthookzExceptHookTest.test_excepthook   s]    \\))(3 	&vNN1c1%	& ,/5/@A 	B	& 	&s   A""A+N)r<   r=   r>   rp   r|   r   r?   r   r   rh   rh      s    	9<"Br   rh   c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  d        Zd	 Zd
 Z ej"                   eed      d      d        Ze
j                  j*                  d        Zd Zd Zej4                   ej6                         d               Zej4                   ej6                         d               Zd Zd Z ej"                  ej@                  d      d        Z!d Z"d Z#e$d        Z%e$d        Z&d Z'd Z(d Z)d Z*d Z+e
j                  j                  d         Z, ejZ                         d!        Z. ej"                  e/j`                  d"       ej"                   ejb                          e2jf                  d#      k(  d$       ejZ                         d%                      Z4 ejj                  ejl                  ejn                  k7  d&       ejZ                         d'               Z8dBd)Z9d* Z:dCd+Z;d, Z< ejZ                         d-        Z= ejZ                         d.        Z>d/ Z?e
j                  j                  d0        Z@ ej"                   eed1      d2      d3        ZAd4 ZBd5 ZCd6 ZD ej"                   eed7      d8      d9        ZE ejZ                         d:        ZFd; ZG ej"                   eed<      d=      d>        ZH ejZ                         d?        ZId@ ZJdA ZKy()DSysModuleTestc                 @    t         j                  j                          y r4   )r   r   reap_childrenrD   s    r   tearDownzSysModuleTest.tearDown   s    ""$r   c                      j                  t        t        j                  dd        j                  t              5 }t        j                          d d d         j                  j                  j                         t        dd      \  }}} j                  |d        j                  |d        j                  |d        j                  t              5 }t        j                  d       d d d         j                  |j                  j                  d        j                  t              5 }t        j                  d       d d d         j                  |j                  j                  d        j                  t              5 }t        j                  d       d d d         j                  |j                  j                  d        j                  t              5 }t        j                  d       d d d         j                  |j                  j                  d       t        dd	      \  }}} j                  |d
        j                  |d        j                  |d        fd} |dd        |dd        |ddd       y # 1 sw Y   BxY w# 1 sw Y   xY w# 1 sw Y   exY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr   -czimport sys; sys.exit()r   r   )r   exit)      zraise SystemExit(47)/   c                     t        d| fi |\  }}}j                  |d       j                  |d       j                  |j                  |      t	        |      dt	        |             y )Nr   rN   r   z doesn't start with )r   r   r   
startswithascii)r0   expectedenv_varsrcr'   ro   r%   s         r   check_exit_messagez3SysModuleTest.test_exit.<locals>.check_exit_message   sb    0tHxHLBSR#S#&OOCNN84.3Cj%/JLr   z?import sys; sys.stderr.write("unflushed,"); sys.exit("message")s   unflushed,messagez)import sys; sys.exit("surrogates:\uDCFF")s   surrogates:\udcffzimport sys; sys.exit("h\xe9")s   hzlatin-1)PYTHONIOENCODING)r!   r"   r   r   
SystemExitassertIsNonerG   r0   r   r   r   )r%   cmr   r'   ro   r   s   `     r   	test_exitzSysModuleTest.test_exit   sV   )SXXr26 z* 	bHHJ	",,++,'.FGCQc"c" z* 	bHHRL	**B/ z* 	bHHUO	**B/ z* 	bHHV	**F3 z* 	bHHX	**H5 -T3IJCR c"c"	L 	N 	" 	8!	# 	,y	2s	 		 		 	
	 	
	 	s;   JJ3J,J9%KJJ),J69KKc                     | j                  t        t        j                  d       | j	                  t        j                         t
               y rK   )r!   r"   r   getdefaultencodingrR   strrD   s    r   test_getdefaultencodingz%SysModuleTest.test_getdefaultencoding  s3    )S%;%;R@c446<r   c                 f   | j                  t        t        j                         | j                  t        t        j                  d       | j                  t        t        j                  d       | j                  t        t        j                  d       t        j
                         }| j                  |dk  |       	 ddd|fD ];  }t        j                  |       | j                  t        j
                         |       = 	 t        j                  |       y # t        j                  |       w xY w)Nag      g        g      ?gh㈵>g?g      @)r!   r"   r   setswitchintervalr6   getswitchintervalr   assertAlmostEqual)r%   origns      r   test_switchintervalz!SysModuleTest.test_switchinterval	  s    )S%:%:;)S%:%:C@*c&;&;TB*c&;&;SA$$&s
D)	(dC- C%%a(&&s'<'<'>BC !!$'C!!$'s   >AD D0c                     t        j                         }| j                  |t               | j	                  |d       | j                  t        t         j                  d       y )NrN   r   )r   getrecursionlimitrR   intassertGreaterr!   r"   )r%   limits     r   test_getrecursionlimitz$SysModuleTest.test_getrecursionlimit  sH    %%'eS)5!$)S%:%:B?r   c                    t        j                         }	 t        j                  d       | j                  t        j                         d       | j	                  t
        t         j                         | j	                  t        t         j                  d       t        j                  |       y # t        j                  |       w xY w)Ni'  i)r   r   setrecursionlimitr   r!   r"   r6   )r%   	old_limits     r   test_setrecursionlimitz$SysModuleTest.test_setrecursionlimit  s    ))+		-!!&)S224f=i)>)>?j#*?*?E!!),C!!),s   BB. .Cc                     t        t        d      r%t        j                         r| j                  d       t        j                         }fd	 dD ]b  }	 t        j
                  |       | j                  t              5           d d d        | j                  t              5           d d d        d 	 t        j
                  |       y # t        $ r Y w xY w# 1 sw Y   VxY w# 1 sw Y   xY w# t        j
                  |       w xY w)Ngettracez(fatal error if run with a trace functionc                                y r4   r?   )rL   s   r   rL   z5SysModuleTest.test_recursionlimit_recovery.<locals>.f/  s    Cr   )2   K   d        )r    r   r   skipTestr   r   RecursionErrorr!   )r%   r   depthrL   s      @r   test_recursionlimit_recoveryz*SysModuleTest.test_recursionlimit_recovery*  s    3
#MMDE))+			-1 ))%0 &&~6 C&&~6 C  !!), &     !!),s`   C6 C,C6 C	C6 &C*.
C6 	CC6 CC6 C'	#C6 *C3	/C6 6Dc                 J   t        j                         }	 t        j                         }| j	                  t        j                         |      5  t        j
                  |dz          t        j
                  |       | j                  t              5 }t        j
                  |       d d d        d d d        | j                  t        j                        d       t        j
                  |       y # 1 sw Y   LxY w# 1 sw Y   PxY w# t        j
                  |       w xY w)N)r   r   rN   z\cannot set the recursion limit to [0-9]+ at the recursion depth [0-9]+: the limit is too low)r   r   r   get_recursion_depthsubTestr   r!   r   assertRegexr   rG   )r%   r   r   r   s       r   test_setrecursionlimit_to_depthz-SysModuleTest.test_setrecursionlimit_to_depthC  s    
 ))+		-//1EC$9$9$;5I 1%%eai0 %%i0&&~6 1"))%011 S.45
 !!),1 11 1 !!),s<   9D AC?C3(C?0-D 3C<	8C??DD D"c                    t         j                  j                  t        d       t        j                         }| j                  t        |      d       | j                  |d   t               | j                  |d   t               | j                  |d   t               | j                  |d   t               | j                  |d   t               | j                  t        t        j                  |d       | j                  |j                  t               | j                  |j                  t               | j                  |j                   t               | j                  |j"                  t               | j                  |j$                  t               | j                  |j&                  t               | j                  |j(                  t               | j                  |j*                  t               | j                  |j,                  t               | j                  |d   |j                         | j                  |d   |j                         | j                  |d   |j                          | j                  |d   |j"                         | j                  |d   |j$                         t        j                         \  }}}}}y )Ngetwindowsversion   r   rN   rO         )r   r   get_attributer   r   r   lenrR   r   r   r!   
IndexErroroperatorgetitemmajorminorbuildplatformservice_packservice_pack_minorservice_pack_major
suite_maskproduct_type)r%   vmajminbuildnoplatcsds          r   test_getwindowsversionz$SysModuleTest.test_getwindowsversion[  s   ""3(;<!!#Q#adC(adC(adC(adC(adC(*h&6&61=aggs+aggs+aggs+ajj#.annc2a22C8a22C8allC0annc21qww'1qww'1qww'1qzz*1q~~. (+'<'<'>$S'4r   c                 X    | j                  t        t        j                  t        d       y )NrO   )r!   r"   r   call_tracingtyperD   s    r   test_call_tracingzSysModuleTest.test_call_tracingy  s    )S%5%5tQ?r   setdlopenflagsztest needs sys.setdlopenflags()c                    | j                  t        t        d             | j                  t        t        j
                  d       t        j
                         }| j                  t        t        j                         t        j                  |dz          | j                  t        j
                         |dz          t        j                  |       y )Ngetdlopenflagsr   rN   )r   r    r   r!   r"   r   r   r   )r%   oldflagss     r   test_dlopenflagszSysModuleTest.test_dlopenflags|  s     	%567)S%7%7<%%')S%7%788A:&++-xz:8$r   c                    | j                  t        t        j                         t        j                  d       }d a| j                  t        j                  d       |       b| j                  t        j                  d       |       t        t        d      r)| j                  t        j                         t               y y )Ngettotalrefcount)
r!   r"   r   getrefcountr   r   r    rR   r   r   )r%   cs     r   test_refcountzSysModuleTest.test_refcount  s     	)S__5OOD!.2.23*+!!#"6"6"8#> ,r   c                 (   | j                  t        t        j                  dd       | j                  t        t        j                  d       | j                  t        j                  j                  t        j                         j                  u        y )Nr   i 5w)
r!   r"   r   	_getframer6   r   r   test_getframe__code__f_coderD   s    r   r   zSysModuleTest.test_getframe  s_    )S]]B;*cmmZ@''00}}%%&	
r   c                    | j                  t        t        j                                | j                  dt        j                  d             d}t        j                  |      }|rr| j                  |j
                  d   t        j                  |      xs d       |dz  }|j                  }	 t        j                  |      }| j                  ||       |rr| j                  t        j                  |             y # t        $ r Y 0w xY w)Nzunittest.caserN   r   r<   __main__)
r   r<   r   _getframemodulenamer   	f_globalsf_backr6   rS   r   )r%   irL   f2s       r   test_getframemodulenamez%SysModuleTest.test_getframemodulename  s    3#:#:#<=#*A*A!*DEMM!J'''*8j FABMM!$ MM!R   	#11!45  s   /C> >	D
	D
c                 4   dd l dd l}j                         j                         g fd}fdj                  |      }|j	                          j                          	 | j                  t              d       d   }t        j                         }|D ]*  }| j                  |t               | j                  |d       , j                         }| j                  ||       | j                  ||       |j                  |      }| j!                  |t        j"                         u        |j                  |      }|j%                  |      }	t'        |	      D ]  \  }
\  }}}}|dk(  s n | j)                  d       | j                  d       |	
dz      \  }}}}| j                  |d	       | j                  |d
dg       j+                          |j-                          y # j+                          |j-                          w xY w)Nr   c                                y r4   r?   g456s   r   f123z/SysModuleTest.test_current_frames.<locals>.f123      Fr   c                      j                  j                                 j                          j                          y r4   )append	get_identsetwait	entered_gleave_gthread_info	threadings   r   r   z/SysModuleTest.test_current_frames.<locals>.g456  s,    y2245MMOLLNr   targetrN   r   )didn't find f123() on thread's call stackg456()r   zleave_g.wait()zentered_g.set())r  	tracebackEventThreadstartr  r   r   r   _current_framesrR   r   r   r   r{   popr   r   extract_stack	enumeratefailr   join)r%   r  r   t	thread_iddtidmain_idframestackr   filenamelinenofuncname
sourceliner  r   r  r  r  s                  @@@@@r   test_current_framesz!SysModuleTest.test_current_frames  s    	
 OO%	//#		
 D)		(	 S-q1#AI##%A +%%c3/""3*+  ))+GMM'1%MM)Q' EE'NEOOES]]_45
 EE)$E++E2E?H?O G;;Hfh
v%G 		EFZ2 6;1Q3Z2Hfh
Xv.MM*'79J&KL KKMFFH KKMFFHs   0D
G5 ;AG5 5"Hc                 J   dd l dd l}j                         j                         g fd}fdj                  |      }|j	                          j                          	 | j                  t              d       d   }t        j                         }|D ]*  }| j                  |t               | j                  |d       , j                         }| j                  ||       | j                  ||       | j                  d |j                  |             |j                  |      }|j!                  |j"                  j$                        }	t'        |	      D ]  \  }
\  }}}}|dk(  s n | j)                  d       | j                  d       |	
dz      \  }}}}| j                  |d	       | j+                  |j-                  d
             j/                          |j1                          y # j/                          |j1                          w xY w)Nr   c                                y r4   r?   r   s   r   r   z3SysModuleTest.test_current_exceptions.<locals>.f123  r   r   c                      j                  j                                 j                          	 	 t        d      # t        $ r% j	                  t
        j                        rY y Y nw xY w>)Noops)timeout)r   r   r   r6   r  r   LONG_TIMEOUTr  s   r   r   z3SysModuleTest.test_current_exceptions.<locals>.g456  sg    y2245MMO$V,,! ||G,@,@|A B s   > )A,+A,r  rN   r   r	  r
  r   zif leave_g.wait()r  r  r  r  r  r  r   r   r   _current_exceptionsrR   r   r   r   r{   r  r  rT   tb_framer  r  r   r   r   r  )r%   r  r   r  r  r  r  r  	exc_valuer  r   r  r  r  r  r  r   r  r  r  s                  @@@@@r   test_current_exceptionsz%SysModuleTest.test_current_exceptions  s    	
 OO%	//#		 D)		%	 S-q1#AI'')A +%%c3/""3*+  ))+GMM'1%MM)Q'T155>2
 i(I++I,C,C,L,LME?H?O G;;Hfh
v%G 		EFZ2 6;1Q3Z2Hfh
Xv.OOJ112DEF KKMFFH KKMFFHs   0D	H  :A%H   "H"c                    | j                  t        j                  t               | j                  t        j                  t
               t        j                  D ]  }| j                  |t                | j                  t        j                  t
               t        j                  D ]  }| j                  |t                | j                  t        j                  d       | j                  t        j                  t               | j                  t        j                  t               | j                  t        j                  t               | j                  t        j                  t               | j                  t        j                  t               | j!                  t#        t        j$                        d       | j!                  t        j$                  j&                  d       | j!                  t#        t        j(                        d       | j+                  t        j(                  j,                  dz  dk(         | j+                  t        j(                  j.                  dk\         | j1                  t        j(                  j2                  d       | j1                  t        j(                  j4                  d	       | j7                  t        j(                  j2                  t        j(                  j4                         | j!                  t9        t        j(                  j,                        t               | j!                  t9        t        j(                  j.                        t               | j                  t        j(                  j2                  t               | j                  t        j(                  j4                  t               | j                  t        j:                  t               | j!                  t#        t        j<                        d
       | j?                  t        j<                  j@                  dt        j<                  jB                  z         tE        dd	      D ]z  }| j!                  tG        |t        j<                  j@                  dz
  t        j<                  j@                        ddjI                  t        j<                  j@                               | | j                  t        j<                  jJ                  t               | j                  t        j<                  jL                  t               | j                  t        j<                  jN                  t               tQ        jR                  d      }t        j<                  jT                  dv r| j                  t        j<                  jV                  ddh       | j                  t        j<                  jX                  h d       |dk(  r+| j!                  t        j<                  jT                  d       n|dk(  r+| j!                  t        j<                  jT                  d       no|dk(  r+| j!                  t        j<                  jT                  d       n?| j                  t        j<                  jT                  h d       n| j!                  |d       | j1                  t        j<                  jZ                  d       | j?                  t        j<                  jZ                  d       | j                  t        j\                  t               | j                  t        j^                  t               | j!                  t        j^                  d       | j                  t        j`                  t               | j                  t        jb                  t               | j                  t        jd                  t               | j                  t        jf                  t               | j                  t        jh                  t               t        jj                  }| j                  |d d  t               | j!                  t#        |      d       | j                  |d   t               | j                  |d   t               | j                  |d   t               | j                  |d   d       | j                  |d   t               | j                  |jl                  t               | j                  |jn                  t               | j                  |jp                  t               | j                  |jr                  d       | j                  |jt                  t               | j!                  |d   |jl                         | j!                  |d   |jn                         | j!                  |d   |jp                         | j!                  |d   |jr                         | j!                  |d   |jt                         | j+                  |dkD         | j                  t        jv                  t               | j                  t        jv                  d       t        j`                  jy                  d      s%| j                  t        jz                  t               y y )N)littlebig   rO   r   r   r   rN   i  r   	   z'sys.hash_info.modulus {} is a non-primePy_HASH_ALGORITHM>   fnv	siphash13	siphash24    @   >   r4  r5     r3  r1  r   r2     i alphabeta	candidatefinal)rN   r   r   )shortlegacywin)>rR   r   api_versionr   argvlistr   	orig_argvr{   	byteorderbuiltin_module_namestuple	copyrightexec_prefixbase_exec_prefix
executabler   r   
float_inforadixint_infor   bits_per_digitsizeof_digitassertGreaterEqualdefault_max_str_digitsstr_digits_check_thresholdr   r   
hexversion	hash_info
assertLessmoduluswidthrangepowformatinfnanimag	sysconfigget_config_var	algorithm	hash_bits	seed_bitscutoffmaxsize
maxunicoder   prefixbase_prefix
platlibdirversionversion_infor   r   microreleaselevelserialfloat_repr_styler   abiflags)r%   argxalgovis        r   test_attributeszSysModuleTest.test_attributes=  s   coos3chh-88 	,C!!#s+	,cmmT2== 	,C!!#s+	,cmm%67c66>cmmS1coos3c22C8cnnc2S^^,b1--q1S\\*A.33a71<=11Q67 C CSI G GM3<<>><<BB	Dcll99:C@cll778#>cllAA3GcllEEsKcnnc2S]]+Q/--q#--2E2E/EF q# 	AAs}},,Q.0E0EF9@@MM))+	 	cmm//5cmm//5cmm00#6''(;<==""&GGMM#--11B8<MM#--11=Aqy  !8!8+F  !8!8%@  !8!8+Fcmm557XY T1% 4 4a8,,a0ckk3/cnnc22cllC0cjj#.coos3cnnc2ckk3/beU+R!$beS)beS)beS)beDEbeS)bhh,bhh,bhh,boo'NObii-A)A)A)A0A		*W%c22C8c**,?@||&&u-!!#,,4 .r   c                 f   t         j                  }| j                  t        |      d       | j	                  |j
                  d       | j	                  |j                  d       t         j                  j                  d      r| j                  |j
                  d       y t         j                  dk(  r| j                  |j
                  d       y t         j                  dk(  r| j	                  |j
                  dd	h       y t         j                  d
k(  r| j                  |j
                  d	       y y )Nr   )ntpthreadpthread-stubssolarisN)	semaphorez
mutex+condN)linuxfreebsdrw  win32rv  
emscriptenrx  wasi)	r   r  r   r   r{   namelockr   r   )r%   infos     r   test_thread_infozSysModuleTest.test_thread_info  s    TA&dii!TUdii!BC<<""#78TYY	2\\W$TYY-\\\)MM$))i%AB\\V#TYY8 $r   zonly available on Emscriptenc                    | j                  t        t        j                        d       | j	                  t        j                  j
                  t               | j	                  t        j                  j                  t        t        d       f       | j	                  t        j                  j                  t               | j	                  t        j                  j                  t               y )Nr   )r   r   r   _emscripten_inforR   emscripten_versionrF  runtimer   r   pthreadsboolshared_memoryrD   s    r   test_emscripten_infoz"SysModuleTest.test_emscripten_info  s    S112A6c22EEuMc22::S$t*<MNc22;;TBc22@@$Gr   c                     | j                  t        j                  j                  t        j                  j                         y r4   )r   r   
__stdout__encoding
__stderr__rD   s    r   
test_43581zSysModuleTest.test_43581  s(     	00#..2I2IJr   c                    | j                  t        t        j                         dt	        t        j                  dd            z   }| j                  t        j                  |      |u        |j                         j                         }| j                  t        j                  |      |u         G d dt              }| j                  t        t        j                   |d             y )Nnever interned beforer    ʚ;c                       e Zd Zd Zy)$SysModuleTest.test_intern.<locals>.Sc                      y)Nrt   r?   rD   s    r   __hash__z-SysModuleTest.test_intern.<locals>.S.__hash__      r   N)r<   r=   r>   r  r?   r   r   Sr        r   r  abc)	r!   r"   r   internr   random	randranger   swapcase)r%   ss2r  s       r   test_internzSysModuleTest.test_intern  s    )SZZ0#c&*:*:1e*D&EE

1*+ZZ\""$

2!+,	 	 	)SZZ5:r   c                 n   dt        t        j                  dd            z   }t        j                  |      }| j                  ||       t        j                         }|j                  t        j                  d|dt        |       dt        |       dt        |       dt        |       d             y )Nr  r   r  3
            import sys
            t = sys.intern(z)
            assert id(t) != 
, (id(t), )
            )r   r  r  r   r  rS   r	   createruntextwrapdedentidr%   r  r  interps       r   +test_subinterp_intern_dynamically_allocatedz9SysModuleTest.test_subinterp_intern_dynamically_allocated  s    #c&*:*:1e*D&EEJJqMa$$&

8?? (5 !UG:beW 5UG:beW 5	$  	r   c                     d}t        j                  |      }t        d       t        j                         }|j                  t        j                  d|dt        |       dt        |       d             y )N__init__z------------------------r  z)
            assert id(t) == r  r  )	r   r  printr	   r  r  r  r  r  r  s       r   *test_subinterp_intern_statically_allocatedz8SysModuleTest.test_subinterp_intern_statically_allocated  sp     JJqM()$$&

8?? (5 !UG:beW 5$  	r   c           	      <   | j                  t        j                         d}|D ]p  }| j                  t        t        j                  |      |       |dv rt        nt
        }| j                  t        t        t        j                  |            ||       r | j                  t        t        j                               | j                  t        t        j                        t        |             | j                  t        j                  j                  h d       y )N)debuginspectinteractiveoptimizedont_write_bytecodeno_user_siteno_siteignore_environmentverbosebytes_warningquiethash_randomizationisolateddev_mode	utf8_modewarn_default_encoding	safe_pathint_max_str_digits)r  r  >   r   rN   rO   )r   r   flagsr    r  r   r   r   getattrreprr   r{   r  )r%   attrsattr	attr_types       r   test_sys_flagszSysModuleTest.test_sys_flags  s    		"M  	NDOOGCIIt4d; $(A AsIT'#))T":;YM	N 	SYY(SYYU4cii))95r   c                     |}t        |      }| j                  t              5   ||       d d d        | j                  t              5  |j                  ||       d d d        y # 1 sw Y   :xY w# 1 sw Y   y xY wr4   )r   r!   r"   __new__)r%   sys_attrrp  r  s       r   assert_raise_on_new_sys_typez*SysModuleTest.assert_raise_on_new_sys_type  st     N	y) 	cN	y) 	.i-	. 	.	 		. 	.s   	A%	A1%A.1A:c                 B    | j                  t        j                         y r4   )r  r   r  rD   s    r   test_sys_flags_no_instantiationz-SysModuleTest.test_sys_flags_no_instantiation  s    ))#))4r   c                 B    | j                  t        j                         y r4   )r  r   rj  rD   s    r   &test_sys_version_info_no_instantiationz4SysModuleTest.test_sys_version_info_no_instantiation  s    ))#*:*:;r   c                     t         j                  j                  t        d       | j	                  t        j
                                y )Nr   )r   r   r   r   r  r   rD   s    r   +test_sys_getwindowsversion_no_instantiationz9SysModuleTest.test_sys_getwindowsversion_no_instantiation  s.    ""3(;<))#*?*?*ABr   c                 ,    t        j                          y r4   )r   _clear_type_cacherD   s    r   test_clear_type_cachez#SysModuleTest.test_clear_type_cache  s    r   c                 d   t        t        j                        }d|d<   t        j                  t
        j                  ddgt        j                  |      }|j                         d   j                         }dt        j                  z   j                  d      }| j                  ||       d|d<   t        j                  t
        j                  ddgt        j                  |      }|j                         d   j                         }| j                  |d	       d
|d<   t        j                  t
        j                  ddgt        j                  t        j                  |      }|j                         \  }}| j                  |d       | j                  d|       | j                  d|       d|d<   t        j                  t
        j                  ddgt        j                  t        j                  |      }|j                         \  }}| j                  |d       | j                  d|       | j                  d|       d|d<   t        j                  t
        j                  ddgt        j                  |      }|j                         d   j                         }| j                  |d       y )Ncp424r   r   zprint(chr(0xa2))r#   envr      ¢zascii:replace   ?r   )r#   r~   r  r   s   UnicodeEncodeError:s   '\xa2'zascii:z:surrogateescapezprint(chr(0xdcbd))   )dictosenviron
subprocessPopenr   rJ  PIPEcommunicatestriplinesepencoder   r{   )r%   r  pr'   r   ro   s         r   test_ioencodingzSysModuleTest.test_ioencoding  s,   2::
 #*cnnd4FG&0oo3@mmoa &&(RZZ'//8h'"1cnnd4FG&0oo3@mmoa &&(d#")cnnd4FG$.OOJOO!$& ==?Sc",c2j#&"*cnnd4FG$.OOJOO!$& ==?Sc",c2j#&"4cnnd4HI$.OO>mmoa &&(g&r   z*requires OS support of non-ASCII encodingsFz$requires FS encoding to match localec                 x   t        t        j                        }d|d<   t        j                  t
        j                  ddt        j                  z  gt        j                  |      }|j                         d   j                         }| j                  |t        j                  t        j                               y )Nr   r   r   z	print(%a)r  r   )r  r  r  r  r  r   rJ  r   FS_NONASCIIr  r  r  r   fsencode)r%   r  r  r'   s       r   test_ioencoding_nonasciiz&SysModuleTest.test_ioencoding_nonascii<  s     2::"$cnnd +i.C.C CE'1CA mmoa &&(bkk)*?*?@Ar   zTest is not venv-compatiblec           
         | j                  t        j                  j                  t        j
                        t        j
                         t        j                  j                  t        j                  j                  t        j
                              }t        j                  g dt        j
                  t        j                  |      }|j                         d   }|j                         j                  d      }|j                          | j                  |dt!        t        j
                  j#                  dd            g       y )N)nonexistentr   zEimport sys; print(sys.executable.encode("ascii", "backslashreplace")))rJ  r#   cwdr   ASCIIzb''r   backslashreplace)r   r  pathabspathr   rJ  dirnamerealpathr  r  r  r  r  decoder  r{   r  r  )r%   
python_dirr  r#   rJ  s        r   test_executablezSysModuleTest.test_executableK  s    
 	8#..I WW__RWW%5%5cnn%EF
V~~joo:O #\\^**73
	j5$s~~/D/DWN`/a*b"cdr   Nc                 z    | j                  |       t        j                  |       |r| j                  ||       y y r4   )assertIsNotNonecodecslookupr   r%   fs_encodingr   s      r   check_fsencodingzSysModuleTest.check_fsencodingb  s4    [)k"[(3 r   c                     t        j                         }t         j                  dk(  rd}nd }| j                  ||       y )Ndarwinzutf-8)r   getfilesystemencodingr   r  r  s      r   test_getfilesystemencodingz(SysModuleTest.test_getfilesystemencodingh  s6    //1<<8#HHk84r   c                    t         j                  j                         }||d<   d|d<   dj                  d      }t        j
                  ddd|g}|r|j                  d	       |||d
<   n|j                  d
d        t        j                  |t        j                  t        j                  |d      }|j                         \  }}	|S )NLC_ALL0PYTHONCOERCECLOCALE
)
import syszdef dump(name):z    std = getattr(sys, name)z(    print("%s: %s" % (name, std.errors))zdump("stdin")zdump("stdout")zdump("stderr")-Xzutf8=0r   -Ir   T)r#   r~   r  universal_newlines)r  r  copyr  r   rJ  r   r  r  r  r  STDOUTr  )
r%   localer  r  r  r0   argsr  r#   r~   s
             r   c_locale_get_error_handlerz(SysModuleTest.c_locale_get_error_handlerp  s    jjooH%(!"yy 
  hd;KK&.C"#GG&-T%/__%/%6%6"%15	7
 r   c                    | j                  |d      }| j                  |d       | j                  |d      }| j                  |d       | j                  |d      }| j                  |d       | j                  |d	      }| j                  |d       | j                  |d
      }| j                  |d       | j                  |d      }| j                  |d       y )NT)r  zHstdin: surrogateescape
stdout: surrogateescape
stderr: backslashreplace
z:ignore)r  z6stdin: ignore
stdout: ignore
stderr: backslashreplace
z	iso8859-1z6stdin: strict
stdout: strict
stderr: backslashreplace
z
iso8859-1::r   )r  r   )r%   r  r'   s      r   check_locale_surrogateescapez*SysModuleTest.check_locale_surrogateescape  s   --ft-D6	7 --fy-I6	7 --f{-K6	7 --f|-L6	7 --fs-C6	7 --fr-B6	7r   c                 &    | j                  d       y )NCr  rD   s    r   test_c_locale_surrogateescapez+SysModuleTest.test_c_locale_surrogateescape  s    ))#.r   c                 &    | j                  d       y )NPOSIXr  rD   s    r   !test_posix_locale_surrogateescapez/SysModuleTest.test_posix_locale_surrogateescape  s    ))'2r   c                 |   ddddd}| j                  t        t        j                  d             | j                  t        t        j                  d             | j                  t        t        j                  d             | j                  t        t        j                  d	             t        j                  j                  }| j                  |d d
 |j                  |j                  f       |j                  dz  |j                  dz  z  |j                  dz  z  ||j                     dz  z  |j                  dz  z  }| j                  t        j                  j                  |       | j                  t        j                  j                  t        j                  j                  j                                y )N
   r.        r8  r  ri  rS  	cache_tagrO         r7  r   r   )r   r    r   implementationri  r   r   r   rk  rl  rm  rS  r  lower)r%   levelsri  rS  s       r   test_implementationz!SysModuleTest.test_implementation  sU    #L 2 2F;< 2 2I>? 2 2LAB 2 2K@A$$,,!w}}gmm&DEmmr)GMMR,??mmq()+1'2F2F+G1+LMnn)*
 	++66
C 	++00++00668	:r   c                 h   ddl m} ddg} || \  }}}t        j                  dk7  rgt	        j
                  d      }t	        j
                  d      }|r| j                  d|       |r| j                  d	|       |s|s| j                  |       | j                  t        t        j                  d
       y )Nr   )r   r   z#import sys; sys._debugmallocstats()r}  WITH_FREELISTSWITH_PYMALLOCs   free PyDictObjectss   Small block thresholdT)test.support.script_helperr   r   r   r^  r_  r{   assertFalser!   r"   _debugmallocstats)r%   r   r  retr'   ro   with_freelistswith_pymallocs           r   test_debugmallocstatsz#SysModuleTest.test_debugmallocstats  s     	@;<($/S# <<7"&556FGN%44_EM3S96<!-  % 	)S%:%:DAr   getallocatedblocksz0sys.getallocatedblocks unavailable on this buildc                    	 dd l }	 |j                         }|dv }t        j                         }| j                  t        |      t               |r| j                  |d       n| j                  |d       	 | j                  |t        j                                t!        j"                          t        j                         }| j%                  ||       t!        j"                          t        j                         }| j'                  |t)        |dz
  |dz                y # t        $ r}d}Y d }~d }~ww xY w# t        $ r t	        j
                         }Y =w xY w# t        $ r Y w xY w)Nr   )pymallocpymalloc_debugTr   )	_testcapipymem_getallocatorsnamer$   ImportErrorr   r3  r   r5  rS   r   r   r   rP  rU  r   AttributeErrorgccollectassertLessEqualr{   rX  )r%   r9  
alloc_namer3  ra   r   br   s           r   test_getallocatedblocksz%SysModuleTest.test_getallocatedblocks  s6   	OO&>>@

 ",/M!M ""$d1gs#q!$
 ##Aq)	 OOAs3356 	

""$Q"


""$aq2vq2v./;   % $%  	4#113M	44  		s:   D8 D 6$E 	D5(D00D58EE	E('E(c                     | j                  t        j                         d       d}t        d|      \  }}}| j	                  |j                         d       y )NFa  if 1:
            import sys

            class AtExit:
                is_finalizing = sys.is_finalizing
                print = print

                def __del__(self):
                    self.print(self.is_finalizing(), flush=True)

            # Keep a reference in the __main__ module namespace, so the
            # AtExit destructor will be called at Python exit
            ref = AtExit()
        r   s   True)rS   r   is_finalizingr   r   rstripr%   r0   r   r#   r~   s        r   test_is_finalizingz SysModuleTest.test_is_finalizing  sK    c'')51 .dD9FF'2r   c                     d}t        d|      \  }}}|j                         }| j                  d|d          | j                  d|d          y )Nzif 1:
            import sys
            class A:
                def __del__(self, sys=sys):
                    print(sys.flags)
                    print(sys.float_info)
            a = A()
            r   s	   sys.flagsr   s   sys.float_inforN   )r   
splitlinesr{   r%   r0   r   r'   ro   s        r   test_issue20602zSysModuleTest.test_issue20602%  sN     (d3CnnlCF+'Q0r   c                     d}t        d|      \  }}}| j                  |d       | j                  |j                         d       | j                  |j                         d       y )Nzif 1:
            import struct, sys

            class C:
                def __init__(self):
                    self.pack = struct.pack
                def __del__(self):
                    self.pack('I', -42)

            sys.x = C()
            r   r   r   )r   r   rE  rF  s        r   &test_sys_ignores_cleaning_up_user_dataz4SysModuleTest.test_sys_ignores_cleaning_up_user_data4  sZ    
 .dD9FFQ#.#.r   getandroidapilevelzneed sys.getandroidapilevel()c                 |    t        j                         }| j                  |t               | j	                  |d       y )Nr   )r   rN  rR   r   r   )r%   levels     r   test_getandroidapilevelz%SysModuleTest.test_getandroidapilevelE  s2     &&(eS)5!$r   c                 
    d fd}g d} |d|        |d|        |d|d d |dd  z           |d|d d |dd  z           |d|d	   g        |d	|d	   g        |dd
z  |        |d	d
z  |d	   g        |d |       y )Nzif 1:
            import sys
            def f1():
                1 / 0
            def f2():
                f1()
            sys.tracebacklimit = %r
            f2()
        c                     t        j                  t        j                  d| z  gt         j                        }|j                         d   }j                  |j                         |       y )Nr   )r~   rN   )r  r  r   rJ  r  r  r   rI  )tracebacklimitr   r  r'   r0   r%   s       r   checkz4SysModuleTest.test_sys_tracebacklimit.<locals>.checkW  sS      #..$~8M!N(29A--/!$CS^^-x8r   )s"   Traceback (most recent call last):s&     File "<string>", line 8, in <module>s      File "<string>", line 6, in f2s      File "<string>", line 4, in f1s#   ZeroDivisionError: division by zeror!  r   rO   rN   r   r   r?   )r%   rU  r  r0   s   `  @r   test_sys_tracebacklimitz%SysModuleTest.test_sys_tracebacklimitL  s    	9
	 	b)aa2A12./a2A12./a)B-!b9R=/"agy!b$h2(dIr   c                     | j                  t        t        j                        t        t	        t        j                                     y r4   )r   r   r   	meta_pathr   rD   s    r   test_no_duplicates_in_meta_pathz-SysModuleTest.test_no_duplicates_in_meta_pathn  s)    S]]+SS]]1C-DEr   _enablelegacywindowsfsencodingz*needs sys._enablelegacywindowsfsencoding()c                     d}t        ddj                  |            \  }}}|j                  dd      j                         }| j	                  |d       y )N)r  z$sys._enablelegacywindowsfsencoding()zCprint(sys.getfilesystemencoding(), sys.getfilesystemencodeerrors())r   z; r   replacezmbcs replace)r   r  r  rE  r   rJ  s        r   #test__enablelegacywindowsfsencodingz1SysModuleTest.test__enablelegacywindowsfsencodingq  sO    W (diio>Cjj),335n-r   c                 0   t        j                  d      }t        j                  dddd|dg}t	        j
                  |ddd      }t        ddg      t        |      g}| j                  |j                  j                         j                         ||       y )	Nz]
            import sys
            print(sys.argv)
            print(sys.orig_argv)
        r  r  utf8r   rp  T)rU  capture_outputru   )r  r  r   rJ  r  r  r  r   r#   rE  rI  )r%   r0   r  procr   s        r   test_orig_argvzSysModuleTest.test_orig_argv{  s       
 dFD$F~~d$t$O$J
 	++-88:H	r   c                     | j                  t        j                  t               t        j                  D ]  }| j                  |t                y r4   )rR   r   stdlib_module_names	frozensetr   )r%   r  s     r   test_module_nameszSysModuleTest.test_module_names  s=    c55yA++ 	-D!!$,	-r   c                 h   t        j                  d      }t        |dd       }|r|j                  j	                  |      sd }|r|j                  j                  |      nd }| j                  |j                  j                  t        j                        |j                  j                  |             y )Nr  __file__)
r   import_fresh_moduler  r  existsr  r   normpathr   _stdlib_dir)r%   r  markerr   s       r   test_stdlib_dirzSysModuleTest.test_stdlib_dir  s    ..t4Z."''..0F.4277??6*$))#//:))(3	5r   r4   )FN)Lr<   r=   r>   r   r   r   r   r   r   r   r   r   cpython_onlyr   r   r   r   
skipUnlessr    r   r   refcount_testr   r   r   r   reap_threadsrequires_working_threadingr   r*  rt  r  is_emscriptenr  r  r  r   r  r  r  r  r  r  r  r  requires_subprocessr  r   r  r  r  getpreferredencodingr  r   rg  rf  r  r  r  r  r  r  r  r*  r4  rB  rG  rK  rM  rQ  rW  rZ  r^  rc  rg  ro  r?   r   r   r   r      s   %@2D=(@	--2 
\\- -.?<@ X&67:<%<% 
\\?  ? 
6* ""0002? 3 #?B ""0002A 3 #AF]5~9 X..0NOH PHK
;$    6".5<C
 
\\    !W  ")' #)'V X..EGX22248S8S8STY8ZZ?A W  "B #AG
B X__S__

224 W  "e #4e(45:$7L !W  "/ #/ !W  "3 #3:, 
\\B B* X&:;KM%0M%0N3*1/" X&:;8:%:%
 !W  " #BF X&FGEG.G. !W  " #-
5r   r   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	UnraisableHookTestc                     dd l }dd l}d| }	 |j                  |||       |j                  t	        |      ||j
                  ||      d }S # d }w xY w)Nr   Exception ignored )exc_typer)  exc_tracebackerr_msgobject)r9  typeswrite_unraisable_excSimpleNamespacer   rT   )r%   ra   r~  r7   r9  r  err_msg2s          r   r  z'UnraisableHookTest.write_unraisable_exc  sc    'y1		**3=(($s)367:7H7H1903	 ) 5 C$Cs   ;A Ac           	      f   dD ]  }| j                  |      5  d}t        j                  j                  d      5 }t        j                  j	                  t
        dt
        j                        5  | j                  t        d      ||       d d d        d d d        j                         }|| j                  d| d|d	|       n| j                  d
|d	|       | j                  d|       | j                  d|       d d d        	 y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   -xY w)N)Nzoriginal hook)r~  z	an objectr~   unraisablehookr   r{  z: r  zException ignored in: #Traceback (most recent call last):
rj   )r   r   r   r   r:   r   __unraisablehook__r  r6   r   r{   )r%   r~  r7   r~   ro   s        r   test_original_unraisablehookz/UnraisableHookTest.test_original_unraisablehook  s#   . 	7Gg. 7!\\11(; Pv//5E030F0FH P11*R.'3OPP
 oo'&MM$6wir#"KSQMM$:3'"DcJDcJ0#67 7	7
P PP P7 7s;   "D&4D/D	DA.D&DDD#D&&D0	c           	      l    G d d      } G d dt                G fdd      }||fD ]a  }| j                  |      5   |       }t        j                  j	                         5 }t        j                  j                  t        dt        j                        5  ~d d d        d d d        j                         }| j                  d|       | j                  |j                  j                  |       | j                  d	|       | j                  d
|       ||u r%| j                  d|       | j                  d|       n$| j                  d|       | j                  d|       | j                  |j                  d             d d d        d y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nc                       e Zd Zd Zy)FUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenDelc                     t        d      }|)Ndel is brokenr5   r%   ra   s     r   __del__zNUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenDel.__del__  s     1	r   Nr<   r=   r>   r  r?   r   r   	BrokenDelr    s    r   r  c                       e Zd Zd Zy)OUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenStrExceptionc                     t        d      )Nzstr() is brokenrQ   rD   s    r   __str__zWUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenStrException.__str__  s     122r   N)r<   r=   r>   r  r?   r   r   BrokenStrExceptionr    s    3r   r  c                       e Zd Z fdZy)OUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenExceptionDelc                             }|r4   r?   )r%   ra   r  s     r   r  zWUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenExceptionDel.__del__  s    (*	r   Nr  )r  s   r   BrokenExceptionDelr    s    r   r  r  zException ignoredztest_sys.pyz	raise excz<exception str() failed>r6   r  r  )rQ   r   r   r   rk   r:   r   r  r   r{   r  r>   r   rm   )r%   r  r  
test_classr7   r~   reportr  s          @r    test_original_unraisablehook_errz3UnraisableHookTest.test_original_unraisablehook_err  st   	 		3 	3	 	 %&89 	7Jj) 7 l\\113 v\\++C1A,/,B,BD 	   *16:j00==vFmV4k62!33MM"6?MM"<fEMM,7MM/6: 56'7 7	7   7 7s=    &F)&4FF	F$C!F)FFF&"F))F3	c           	          G d d      }dD ]6  }| j                  |      5  ||j                  j                  _        t        j
                  j                         5 }t        j
                  j                  t        dt        j                        5  | j                  |j                  j                         dd      }d d d        d d d        j                         }| j                  |j                  j                  j                  |       |dv r| j                  |d	z   |       n| j                  |d	z   |       d d d        9 y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ]xY w)
Nc                        e Zd Z G d d      Zy)MUnraisableHookTest.test_original_unraisablehook_exception_qualname.<locals>.Ac                   "    e Zd Z G d de      Zy)OUnraisableHookTest.test_original_unraisablehook_exception_qualname.<locals>.A.Bc                       e Zd Zy)QUnraisableHookTest.test_original_unraisablehook_exception_qualname.<locals>.A.B.XNr<   r=   r>   r?   r   r   Xr    s    r   r  N)r<   r=   r>   rQ   r  r?   r   r   Br    s    	 r   r  N)r<   r=   r>   r  r?   r   r   Ar    s     r   r  )r   r   some_module)
moduleNamer  rs   r7   )r   r   .)r   r  r  r=   r   r   rk   r:   r   r  r  r   r{   r>   assertNotIn)r%   r  r  r~   r   r  s         r   /test_original_unraisablehook_exception_qualnamezBUnraisableHookTest.test_original_unraisablehook_exception_qualname  s0   
	 	
 @ 	<J4 <#- \\113 vt||?U?U)3+A+A@   $88 H   *accee00&9!99$$Z#%5v>MM*s"2F;< <	<   < <s<   :E 4E,E	=EA7E EEEE  E*	c                 (   t        d      }t        j                  j                  t        dt        j
                        5  | j                  t              5  t	        j                  |       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r  )	r6   r   r   r:   r   r  r!   r"   r  r  s     r   'test_original_unraisablehook_wrong_typez:UnraisableHookTest.test_original_unraisablehook_wrong_type  sv    n\\##C)9$'$:$:< 	(""9- (""3'(	( 	(( (	( 	(s#   BA<+B<B	BBc           	      n   d fd}t               }	 t        j                  j                  t        d|      5  | j                  t        d      d|      }dj                         D ]+  }| j                  t        |      t        ||      |f       - 	 d d d        d }d y # 1 sw Y   xY w# d }d w xY w)Nc                 
    | y r4   r?   )r  	hook_argss    r   	hook_funcz@UnraisableHookTest.test_custom_unraisablehook.<locals>.hook_func	  s    Ir   r  r   zcustom hookz/exc_type exc_value exc_traceback err_msg object)
r  r   r   r:   r   r  r6   splitr   r  )r%   r  r7   r   r  r  s        @r   test_custom_unraisablehookz-UnraisableHookTest.test_custom_unraisablehook  s    		 h	''-=yI <44Z^5BCIMSSU <D$$WY%=%,Xt%<&/%:<<< HI< < HIs#   %B. AB"B. "B+'B. .B4c                    d }t         j                  j                  d      5 }t         j                  j                  t        d|      5  | j                  t        d      dd        d d d        d d d        j                         }| j                  d|d|       | j                  d|       | j                  d	|       y # 1 sw Y   \xY w# 1 sw Y   `xY w)
Nc                      t        d      )Nzhook_func failedr  )r  s    r   r  zEUnraisableHookTest.test_custom_unraisablehook_fail.<locals>.hook_func  s    .//r   r~   r  r   zcustom hook failz)Exception ignored in sys.unraisablehook: r  r  zException: hook_func failed
)	r   r   r   r:   r   r  r6   r   r{   )r%   r  r~   ro   s       r   test_custom_unraisablehook_failz2UnraisableHookTest.test_custom_unraisablehook_fail  s    	0 \\))(3 	Dv''-=yI D))*R.*<dDD	D
 ooA"R)	 	<cB5s;D D	D 	Ds#   &C	C&CC
	CCN)
r<   r=   r>   r  r  r  r  r  r  r  r?   r   r   ry  ry    s&    7$&7P<4(*<r   ry  c                        e Zd Zd Zej
                  j                  Zd Zd Zd Z	 fdZ
d Zd Zd Zd	 Zd
 Z xZS )
SizeofTestc                     t        j                  d      | _        t        j                  j
                  | _        dd l}|j                  | _	        y )NPr   )
structcalcsizer  r   rM  rO  	longdigit_testinternalcapiSIZEOF_PYGC_HEADgc_headsize)r%   r  s     r   setUpzSizeofTest.setUp/  s4    %22 ,==r   c                    t         j                  j                  }| j                  }| j	                  t        j                  d       |d      | j                  z          | j	                  t        j                  g        |d      |z          y )NTr   Pn)r   r   calcvobjsizer  r   r   	getsizeofr  )r%   vsizegc_header_sizes      r   test_gc_head_sizezSizeofTest.test_gc_head_size7  sd    ))))t,eBi$...HIr*E$K.,HIr   c                     G d d      }| j                  t        t        j                   |               G d d      }| j                  t        t        j                   |              dg}| j                  t        j                   |       |      |        G d d      }| j                  t        t        j                   |              | j                  t        j                   |       |      |        G d d	t              }| j                  t        j                   |t        j                              t        j                  | j                  d
z  z          | j                  t              5  t        j                   |t        j                  dz                d d d        | j                  t              5  t        j                   |d             d d d        | j                  t        t        f      5  t        j                   |t        j                   dz
               d d d        y # 1 sw Y   xY w# 1 sw Y   gxY w# 1 sw Y   y xY w)Nc                       e Zd Zd Zy))SizeofTest.test_errors.<locals>.BadSizeofc                     t         r4   r5   rD   s    r   
__sizeof__z4SizeofTest.test_errors.<locals>.BadSizeof.__sizeof__B  s      r   Nr<   r=   r>   r  r?   r   r   	BadSizeofr  A      !r   r  c                       e Zd Zd Zy)-SizeofTest.test_errors.<locals>.InvalidSizeofc                      y r4   r?   rD   s    r   r  z8SizeofTest.test_errors.<locals>.InvalidSizeof.__sizeof__G  s    r   Nr  r?   r   r   InvalidSizeofr  F  s    r   r  sentinelc                       e Zd Zd Zy)+SizeofTest.test_errors.<locals>.FloatSizeofc                      y)Ng      @r?   rD   s    r   r  z6SizeofTest.test_errors.<locals>.FloatSizeof.__sizeof__N  r  r   Nr  r?   r   r   FloatSizeofr  M  r  r   r  c                       e Zd Zd Zy).SizeofTest.test_errors.<locals>.OverflowSizeofc                     t        |       S r4   )r   rD   s    r   r  z9SizeofTest.test_errors.<locals>.OverflowSizeof.__sizeof__T  s    4y r   Nr  r?   r   r   OverflowSizeofr  S  r  r   r  rO   rN   rV  )r!   r6   r   r  r"   rS   r   r   rd  r  OverflowError)r%   r  r  r  r  r  s         r   test_errorszSizeofTest.test_errors@  s   	! 	! 	*cmmY[A	 	 	)S]]MOD<cmmMOX>I	 	 	)S]]KMBcmmKM8<hG	!S 	! 	~ckk'BCt'7'7'99	;}- 	;MM.q9:	;z* 	.MM.,-	.
M:; 	<MM.#++)9:;	< 	<		; 	;	. 	.	< 	<s$   1-H1;H=:.I	1H:=I	Ic                    t         j                  j                  }| j                  t	        j
                  d       |d      | j                  z          | j                  t	        j
                  dd       |d      | j                  z          y )NTr   rV  )r   r   r  r   r   r  r  )r%   sizes     r   test_defaultzSizeofTest.test_default_  s_    ||((t,d2h.GHtR0$r(T^^2KLr   c           	         $% t         j                  }t        j                  j                  %t        j                  j
                  } j                  $ $d |d       j                  z           $d |d       j                  z           $t         %d             dddz  g}|D ]-  }t        |      } $| |d      |j                         z          /  $t        t                      %d	              $d |d
      dz           $d |d
      dz          d } $ |       j                  d    %d              fd} | |       j                   %d              ||j                   %d             d } ||j                   %d       |d
      z           $t        dd       %d              $t        j                    %d             dd l}	 $|	j$                  j&                   %d             dd l}
 $|
j*                  j,                   %d              $t.        j0                   %d              $i j2                   %d              $i  %d              $ddi %d       |t4              z   dz   d |d      z  z          t7        d      D ci c]  }t        |      | }} $| %d       |t4              z   dz   d |d      z  z           $ddi %d       |t4              z   dz   d |d      z  z          dd d!d"dd#d$dd%} $| %d       |t4              z   dz   d |d      z  z           $i j9                          %d              $i j;                          %d              $i j=                          %d              $t        i        %d&              $t        i j9                                %d&              $t        i j;                                %d&              $t        i j=                                %d&              G d' d(t>              } $|j@                   %d              $tC                %d)              $tE        ddddd       %d*              $tG        ddddd       %d*              $tI        dddd       %d*              $tJ         %d             dd l&}dd l'} |jP                  |jR                  jT                        } $| %d+              $tW        g        %d,              $tY        d       %d	              $t[        d       %d-              $t\        j^                   |d       j`                  t        t\        j^                        z  z          d. } |       } $| %d/             d0 } $| %d1              G $%fd2d3      }d4 } $ |        %d5              $t        d6       %d7             dd l1} $|je                  dd       %d              $tg        g        |d8              $tg        dg       |d8      d  j`                  z  z           $tg        dd g       |d8      d  j`                  z  z           $tg        g d9       |d8      d" j`                  z  z           $t        g        %d7              $tY        g        %d	              $d |d       j                  z           $d |d       j                  z           $d: |d       j                  z          d t\        jh                  jj                  z  } $t/        |       |d      d  j                  z  z           $t/        |d z  dz
         |d      d  j                  z  z           $t/        |d z         |d      d! j                  z  z           $tl         %d;              $d  %d              $tn         %d              $t?                %d              G $%fd<d(t>              } $t        t7        d             %d=              $t        t7        d d>z               %d?              $tY        d       %d	              $t7        d       %d@              $t7        dA       %d@             d}g t7        d      t7        dB      g} %dC|d	z  z   dDz         }|D ]  }t        |      }|dk(  rd}|d z  }|}||k  r|dz  }||k  r|dk  r% $tq        |      |        $ts        |      |       V $tq        |      || |d	      z  z           $ts        |      || |d	      z  z            $t        tq                      %dE              $tu        d       %d?              $tw        t.               %d?              $dF |d              $d9 |d      d! j`                  z  z          dG} |d|z         } $t.        |        ||dHz         } G dI dJt>              } $|| |t4              z   dKz   dL |d      z  z          t7        dM      D cg c]	  } |        c}  $ |       j@                   %d       j`                  z           |       }dx|_<        x|_=        x|_>        x|_?        x|_@        x|_A        x|_B        |_C         $|| |t4              z   dKz   dL |d      z  z           $ |       j@                   %d       j`                  z          g dN}dO}|d	z   }|dz   } |D ]  }t        t        |            }!|!dPk  r %|      t        |      z   dz   }"nW|!dQk  r %|      t        |      z   dz   }"n:|!dRk  r %|      d t        |      dz   z  z   }"n %|      d"t        |      dz   z  z   }" $||"        t        dS      } $| %|      d"z          t        |dTdU        $| %|      d"z   d"z          dd lH}# $|#j                  t.               %dV              $|#j                  t.               %dV             y c c}w c c}w )WNTr   F5Pr      ui n2PinPr   rN   s
   xxxxxxxxxxr.  c                      dfd} | S )Nr   c                       S r4   r?   rq  s   r   innerz<SizeofTest.test_objecttypes.<locals>.get_cell.<locals>.inner~      r   r?   )r  rq  s    @r   get_cellz-SizeofTest.test_objecttypes.<locals>.get_cell|  s    ALr   r   r  c                 P    j                  t        j                  |       |       y r4   )rP  r   r  )r   expected_sizer%   s     r   check_code_sizez4SizeofTest.test_objecttypes.<locals>.check_code_size  s    ##CMM!$4mDr   6i13Pc                       fd}|S )Nc                       S r4   r?   r  s   r   r  z=SizeofTest.test_objecttypes.<locals>.get_cell2.<locals>.inner  r  r   r?   )rq  r  s   ` r   	get_cell2z.SizeofTest.test_objecttypes.<locals>.get_cell2  s    Lr   2d3PPP3PP3P2P2PnQ2Pr   r7  r   r&  r!  n2PrO   r   r         )rN   rO   r   r   r   r  r   r7  P2nPnc                       e Zd Zy)&SizeofTest.test_objecttypes.<locals>.CNr  r?   r   r   r  r        r   r  6Pbz	6Pb 2P2nP32B2iBn4Pr  c                  *    t        j                         S r4   )r   r   r?   r   r   r   z)SizeofTest.test_objecttypes.<locals>.func  s    ==?"r   z3Pi3c7P2ic??2Pc                       y r4   r?   r?   r   r   r   z)SizeofTest.test_objecttypes.<locals>.func  s    Dr   15Pic                   r    e Zd Zed        Zed        Z W  e W d              W  e W d             y)&SizeofTest.test_objecttypes.<locals>.cc                       y r4   r?   r?   r   r   fooz*SizeofTest.test_objecttypes.<locals>.c.foo      r   c                      y r4   r?   )clss    r   barz*SizeofTest.test_objecttypes.<locals>.c.bar  r  r   PPN)r<   r=   r>   staticmethodr  classmethodr  rU  r  s   r   r   r    sE       #tDz"#tDz"r   r   c               3      K   d y w)NrN   r?   r?   r   r   get_genz,SizeofTest.test_objecttypes.<locals>.get_gen  s
     Qws   zPP4P4c7P2ic??2Pr  lPr  )rN   rO   r   rV  PnPPPc                   X    e Zd Zd Zd Zd Z eeeed      Z W  e W d             y)r  c                     | j                   S r4   _C__xrD   s    r   getxz+SizeofTest.test_objecttypes.<locals>.C.getx  s
    488Or   c                     || _         y r4   r  )r%   values     r   setxz+SizeofTest.test_objecttypes.<locals>.C.setx  s    e48r   c                     | ` y r4   r  rD   s    r   delxz+SizeofTest.test_objecttypes.<locals>.C.delx	  s    r   r   5PiN)r<   r=   r>   r  r"  r$  propertyrq  r  s   r   r  z&SizeofTest.test_objecttypes.<locals>.C  s*    +3(tT2.A!T%[!r   3lA   3P4Pi r   3nP2nPP3nr?   P2nPI13Pl4Pn9Pn12PIPc4P36P3P10P2P6P1PIc                       e Zd Zy)2SizeofTest.test_objecttypes.<locals>.newstyleclassNr  r?   r   r   newstyleclassr1  B  r  r   r2  r5  r   r   )d1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111ud   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuP   ĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀu,  ￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿ux   𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀u  􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿nnbr6     i   i @  z<stdin>r/   2Pn3P)Kr  r  r   r   calcobjsizer  check_sizeofr  r   	bytearray	__alloc__iter__closure__r   complexr   r(  datetime	timedeltadayscollectionsdefaultdictdefault_factoryr   __add____iter__DICT_KEY_STRUCT_FORMATrX  keysvaluesitemsr  __dict__BaseExceptionUnicodeEncodeErrorUnicodeDecodeErrorUnicodeTranslateErrorEllipsisr  encodings.iso8859_3charmap_build	iso8859_3decoding_tabler  reversedfloatr   rK  r  refinditerrB  rM  rN  r   NotImplementedr   rf  slicesuperr   rA  r   r  rW   rL   ghordmaxchrr.   weakrefrefproxy)'r%   r  r  samplessamplerq  r  r  r  r>  rA  r   longdictr  r  	encodingsr   r   r  rV  PyLong_BASEPySet_MINSIZEr  minusedtmpnewsizefmtr2  r   oasciifieldscompactfieldsunicodefieldsmaxcharLr`  rU  r  	__class__s'   `                                   @@r   test_objecttypeszSizeofTest.test_objecttypesd  s
   ??||''))!!dE"I./eU2Y/0 	c4:V$ 	4F&!A!U6]Q[[]23	4 	d9;d,c5:>"isb)	
 	hj$$Q'c3	E
++T'];))4=9	 		**DMHSM,IJgalDJ'ciif& 	h  %%tE{3k%%55tE{Cckk4<(bkk4:&b$v,sAhVx0F'GG!KvW_`dWeNeef',Qx0!CFAI00hVx0F'GG"LPWYabfYgOgghq!fd6lX.D%EEIVU]^cUdLdde1Q!qA;hVx0F'GG"LPWYabgYhOhhibggic#biik49%bhhj$s)$d2hW&d2779otG}-d299;g/d288:W.ajj$s)$motE{+ RAr2D4EF S!Q3T+5FG#B1b143DEhR!* F  !4!4!C!CDah imT%[)hrlDJ'eAhS	"cnneBi$&&3s~~3F*FFG	#Fa&'(dDL!
	# 
	# 	gi/01d5k4:&bkk"R $t*-d2hd$dA3itqx/0dAq6lE$K!DFF(23d9ouT{QtvvX56 	d2hT
#hrlDJ'arT^^+,arT^^+,b%)dnn,-444c+b	Adnn,< <=c+q."#U2Y4>>1A%ABc+q.!59q/?#?@hW&dDHnd2h'fhR!	" 	" 	d58nd4j)d5B< $t*-hrlDJ'eAhT
#eElDJ' uRy%),t++e34 	EF&kG!|1S aiG#GW$!Q, W$!|c&k1%i'+c&k1wx~'=#=>i'WXd^-C)CD	E  	d35k4;'eAhT
#eCj$t*%b%)guRy1TVV8+, &$*c1#  	*F)mQ*@!AABFHUYNIZZ["'*-Q-mo&&Vtvv(=>O8999ac9AC9!#99ac9AC!#mQ*@!AABFHUYNIZZ[mo&&Vtvv(=>
6 #d*%+ 
	A#a&kG}%A.23'#a&0145'!SVaZ.8'!SVaZ.8!QK
	 Kam$q() 	9f%am$q(1,- 	gkk#W. 	gmmC $w-0g 1L 	.s   %q&+q+c                    t        j                  |      t        j                  |      z   }t	        j
                  |      r$t	        j
                  |      s|| j                  z  }| j                  t        j                  |      |       y r4   )r   r  r  r  r=  
is_trackedr  r   )r%   r7   baseextrar   s        r   check_slotszSizeofTest.check_slotsu  s^    ==&)??==bmmD&9(((Hs+X6r   c                    | j                   } G d dt              } | |       t               d        G d dt              } | |g       dg id        G d d	t              } | |       g d        G d
 dt              } | |       t	               d        G d dt
              } | |       t               d       ddlm}  G d d|      } | |g        |g       d       y )Nc                       e Zd ZdZy)!SizeofTest.test_slots.<locals>.BAr   rA  r   Nr<   r=   r>   	__slots__r?   r   r   BAr|        %Ir   r  r)  c                       e Zd ZdZy) SizeofTest.test_slots.<locals>.Dr}  Nr~  r?   r   r   Dr    r  r   r  r  rq  c                       e Zd ZdZy) SizeofTest.test_slots.<locals>.Lr}  Nr~  r?   r   r   rr  r    r  r   rr  c                       e Zd ZdZy) SizeofTest.test_slots.<locals>.Sr}  Nr~  r?   r   r   r  r    r  r   r  c                       e Zd ZdZy)!SizeofTest.test_slots.<locals>.FSr}  Nr~  r?   r   r   FSr    r  r   r  r   )OrderedDictc                       e Zd ZdZy)!SizeofTest.test_slots.<locals>.ODr}  Nr~  r?   r   r   ODr    r  r   r  )ry  r9  r  rB  r   rf  rA  r  )	r%   rU  r  r  rr  r  r  r  r  s	            r   
test_slotszSizeofTest.test_slots{  s       	& 	&bdIK&	& 	&a"gRy$'	& 	&ac2t	& 	&ac35$	& 	&bdIK&+	& 	&b2hb)40r   c                    t         j                  j                  }t         j                  j                  }| j                  }dd l} ||j                          |d             	 t        # t        $ r'}|j                  }| || |d             Y d }~nd }~ww xY w |t        j                   |d      | j                  t        t        j                        z  z          y )Nr   r  2P2ir   )r   r   r7  r  r8  _astASTr"   rT   r   r  r  r   )r%   r  r  rU  r  rW   tbs          r   test_pythontypeszSizeofTest.test_pythontypes  s    ||''))!!dhhj$s)$	(O 	(B~b$v,'		( 	ciirTVVc#))n%<<=s   #A) )	B2BBc                    t        j                         }| j                  |j                         | j                  |j                         d }t        j
                  |       t        j                         }| j                  |j                  |       | j                  |d   |       | j                  |j                  d        | j                  |d   d        d }t        j
                  |       t        j                         }| j                  |j                  |       | j                  |d   |       | j                  |j                  |       | j                  |d   |       t        j
                  |  t        j                         }| j                  |j                         | j                  |j                         y )Nc                       y r4   r?   r   s    r   <lambda>z0SizeofTest.test_asyncgen_hooks.<locals>.<lambda>      r   )	firstiterr   rN   c                       y r4   r?   r  s    r   r  z0SizeofTest.test_asyncgen_hooks.<locals>.<lambda>  r  r   )	finalizer)r   get_asyncgen_hooksr   r  r  set_asyncgen_hooksrS   )r%   oldr  hooksr  curs         r   test_asyncgen_hookszSizeofTest.test_asyncgen_hooks  sF   $$&#--(#--(#	3&&(eooy1eAh	*eoot,eAh%#	3&&(eooy1eAh	*eooy1eAh	*$$$&#--(#--(r   c                     t        j                  d      }t        d|      \  }}}| j                  |d       | j                  |d       y )Nz
            import sys
            class MyStderr:
                def write(self, s):
                    sys.stderr = None
            sys.stderr = MyStderr()
            1/0
        r   r   )r  r  r   r   rJ  s        r   /test_changing_sys_stderr_and_removing_referencez:SizeofTest.test_changing_sys_stderr_and_removing_reference  sK         -T48Cc"c"r   )r<   r=   r>   r  r   r   r8  r  r  r  rt  ry  r  r  r  r  __classcell__)rs  s   @r   r  r  ,  sJ    > <<,,LJ<>M
O1b710>()4#r   r  r   )%r   r  r=  r  r   r  r  r  r  r   r^  test.supportr   r   r   r.  r   r   r   r   r  r   rv   r	   r;  r   rF  TestCaser   rA   rh   r   rp  ry  r  r<   mainr?   r   r   <module>r     s5     	   	    
    " N ) &   )
 " ,6h'' ,6\=8,, =@"BX&& "BP]5H%% ]5@ N<** N< N<b b#"" b# b#H zHMMO s5  Ls   D1 1D;:D;