HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_sys.cpython-37.pyc
B

��g���@s�ddlmZddlmZmZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZdaGdd�dej�ZGdd�dej�ZGdd	�d	ej�ZejjGd
d�dej��Zdd
�Zedkr�e�dS)�)�support)�assert_python_ok�assert_python_failureNc@s$eZdZdd�Zdd�Zdd�ZdS)�DisplayHookTestc	Cs�tj}t���}|d�WdQRX|�|��d�|�tjd�t`t���}|d�WdQRX|�|��d�|�t	td��|�
t|�tj}zt`|�
t
|d�Wd|t_XdS)N�*z42
��_)�sys�__displayhook__rZcaptured_stdout�assertEqual�getvalue�builtinsr�
assertTrue�hasattr�assertRaises�	TypeError�stdout�RuntimeError)�selfZdh�outr�r�)/usr/local/lib/python3.7/test/test_sys.py�test_original_displayhooks 

z)DisplayHookTest.test_original_displayhookcCs6tj}z"t`tddd�}|�tt|�Wd|t_XdS)N�42z<string>�single)r	�displayhook�compilerr�eval)rr�coderrr�test_lost_displayhook5sz%DisplayHookTest.test_lost_displayhookc	Cs@dd�}t�td|�� tddd�}|�tt|�WdQRXdS)NcSst�dS)N)�
ValueError)�objrrr�baddisplayhook?sz?DisplayHookTest.test_custom_displayhook.<locals>.baddisplayhookrrz<string>r)rZ	swap_attrr	rrr r)rr"rrrr�test_custom_displayhook>sz'DisplayHookTest.test_custom_displayhookN)�__name__�
__module__�__qualname__rrr#rrrrrs	rc@s$eZdZdd�Zdd�Zdd�ZdS)�ExceptHookTestcCsxytd��WnDtk
rP}z&t���}tjt���WdQRXWdd}~XYnX|�|���d��|�	t
tj�dS)NrzValueError: 42
)r r�captured_stderrr	�__excepthook__�exc_inforr�endswithrr)r�exc�errrrr�test_original_excepthookIs
*z'ExceptHookTest.test_original_excepthookc
Cs�t���ft�dt�ytdd��WnDtk
rh}z&t���}tjt�	��WdQRXWdd}~XYnXWdQRX|�
�}|�d|�|�d|�|�|�
d��dS)N�ignore�msg)sbytes_filename�{r�textz%  File "b'bytes_filename'", line 123
z	    text
zSyntaxError: msg
)�warnings�catch_warnings�simplefilter�BytesWarning�SyntaxErrorrr(r	r)r*r�assertInrr+)rr,r-rrr�test_excepthook_bytes_filenameTs

4z-ExceptHookTest.test_excepthook_bytes_filenamec	Cs<tj�d��}t�ddd�WdQRX|�d|��k�dS)N�stderr��1zETypeError: print_exception(): Exception expected for value, str found)�testrZcaptured_outputr	�
excepthookrr)rr:rrr�test_excepthookeszExceptHookTest.test_excepthookN)r$r%r&r.r9r?rrrrr'Gsr'c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	e
jjdd��Z
dd�Zdd�Zdd�Ze�eed�d�dd��Ze
jjdd��Zdd�Ze
jjdd ��Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Z d-d.�Z!d/d0�Z"d1d2�Z#e
jjd3d4��Z$d5d6�Z%e�e
jj&d7�e�e�'�e(�)d8�kd9�d:d;���Z*e�+ej,ej-kd<�d=d>��Z.d^d@dA�Z/dBdC�Z0d_dDdE�Z1dFdG�Z2dHdI�Z3dJdK�Z4dLdM�Z5e
jjdNdO��Z6e�eedP�dQ�dRdS��Z7e
jj8dTdU��Z9e�eedV�dW�dXdY��Z:dZd[�Z;d\d]�Z<d?S)`�
SysModuleTestcCstj��dS)N)r=rZ
reap_children)rrrr�tearDownqszSysModuleTest.tearDownc	s���ttjdd���t��}t��WdQRX��|jj�tdd�\}}}��	|d���	|d���	|d���t��}t�d�WdQRX��	|jjd���t��}t�d�WdQRX��	|jjd���t��}t�d�WdQRX��	|jjd���t��}t�d�WdQRX��	|jjd�t
dd	�\}}}��	|d
���	|d���	|d��fdd�}|d
d�|dd�|dddd�dS)Nrz-czimport sys; sys.exit()r�)r�exit)��zraise SystemExit(47)�/csRtd|f|�\}}}��|d���|d���|�|�dt|�t|�f�dS)Nz-cr;rBz%s doesn't start with %s)rrr�
startswith�ascii)r�expectedZenv_vars�rcrr-)rrr�check_exit_message�s
z3SysModuleTest.test_exit.<locals>.check_exit_messagez?import sys; sys.stderr.write("unflushed,"); sys.exit("message")sunflushed,messagez)import sys; sys.exit("surrogates:\uDCFF")ssurrogates:\udcffzimport sys; sys.exit("h\xe9")sh�zlatin-1)�PYTHONIOENCODING)rrr	rC�
SystemExit�assertIsNone�	exceptionrrrr)r�cmrJrr-rKr)rr�	test_exittsD	zSysModuleTest.test_exitcCs$|�ttjd�|�t��t�dS)Nr)rrr	�getdefaultencoding�assertIsInstance�str)rrrr�test_getdefaultencoding�sz%SysModuleTest.test_getdefaultencodingc	Csht���Vt�d�|�ttj�t��}x.ddd|fD]}t�|�|�t��|�q8WWdQRXdS)Nr/r�d�x)	r3r4r5rrr	�setcheckinterval�getcheckintervalr)r�orig�nrrr�test_setcheckinterval�s


z#SysModuleTest.test_setcheckintervalc	Cs�|�ttj�|�ttjd�|�ttjd�|�ttjd�t��}|�|dk|�z4x.ddd|fD]}t�|�|�t��|�qfWWdt�|�XdS)N�ag�gg�?g�h㈵��>g�������?g@)rrr	�setswitchintervalr �getswitchintervalrZassertAlmostEqual)rrZr[rrr�test_switchinterval�s
z!SysModuleTest.test_switchintervalcCs^|�ttjd�t��}|�ttj�|�ttjd�t�d�|�t��d�t�|�dS)Nri���i')rrr	�getrecursionlimit�setrecursionlimitr r)r�oldlimitrrr�test_recursionlimit�s
z!SysModuleTest.test_recursionlimitc	s�ttd�rt��r|�d�t��}�fdd��zPxJdD]B}yt�|�Wntk
r`w8YnX|�t��|�t��q8WWdt�|�XdS)N�gettracez(fatal error if run with a trace functioncs
��dS)Nrr)�frrrf�sz5SysModuleTest.test_recursionlimit_recovery.<locals>.f)�
��2�KrV�i�)rr	reZskipTestrarb�RecursionErrorr)rrc�depthr)rfr�test_recursionlimit_recovery�s

z*SysModuleTest.test_recursionlimit_recoveryc	szddlm����fdd��t��}zDt�d�x4dD],}|dkrL|d}n|d	d
}�||�q6WWdt�|�XdS)Nr)�get_recursion_depthc	sP��}||krB��t��}t�|�WdQRX��t|j�d�n
�||�dS)Nz\cannot set the recursion limit to [0-9]+ at the recursion depth [0-9]+: the limit is too low)rrlr	rbZassertRegexrTrO)rm�limitZrecursion_depthrP)ror�set_recursion_limit_at_depthrrrq�szZSysModuleTest.test_setrecursionlimit_recursion_depth.<locals>.set_recursion_limit_at_depthi�)rgrhrirjrV���rsri��)�	_testcapiror	rarb)rrcrprmr)rorrqr�&test_setrecursionlimit_recursion_depth�s


z4SysModuleTest.test_setrecursionlimit_recursion_depthc	Csvt�d�}tj���XxPdD]H}tjtjd||gtj	d�}|�
�d}|�|j|j�|�
d|�qWWdQRXdS)Nz�
            import sys

            def f():
                try:
                    f()
                except RecursionError:
                    f()

            sys.setrecursionlimit(%d)
            f())rii�z-c)r:r;s6Fatal Python error: Cannot recover from stack overflow)�textwrap�dedentr=rZSuppressCrashReport�
subprocess�Popenr	�
executable�PIPE�communicater�
returncoder8)rr�i�subr-rrr�test_recursionlimit_fatalerrors


z,SysModuleTest.test_recursionlimit_fatalerrorcCsvtj�td�t��}|�t|�d�|�|dt�|�|dt�|�|dt�|�|dt�|�|dt	�|�
ttj
|d�|�|jt�|�|jt�|�|jt�|�|jt�|�|jt	�|�|jt�|�|jt�|�|jt�|�|jt�|�|d|j�|�|d|j�|�|d|j�|�|d|j�|�|d|j�t��\}}}}}dS)N�getwindowsversion�rr;�rtru)r=r�
get_attributer	r�r�lenrS�intrTr�
IndexError�operator�getitem�major�minorZbuild�platformZservice_packZservice_pack_minorZservice_pack_majorZ
suite_maskZproduct_type)r�vZmaj�minZbuildnoZplatZcsdrrr�test_getwindowsversion1s0z$SysModuleTest.test_getwindowsversioncCs|�ttjtd�dS)Nr�)rrr	�call_tracing�type)rrrr�test_call_tracingOszSysModuleTest.test_call_tracing�setdlopenflagsztest needs sys.setdlopenflags()cCsf|�ttd��|�ttjd�t��}|�ttj�t�|d�|�t��|d�t�|�dS)N�getdlopenflagsrr;)rrr	rrr�r�r)rZoldflagsrrr�test_dlopenflagsRszSysModuleTest.test_dlopenflagscCsd|�ttj�t�d�}da|�t�d�|d�b|�t�d�|�ttd�r`|�t��t	�dS)Nr;�gettotalrefcount)
rrr	�getrefcountr[rrrSr�r�)r�crrr�
test_refcount]s

zSysModuleTest.test_refcountcCs>|�ttjdd�|�ttjd�|�tjjt��j	k�dS)Nri�5w)
rrr	�	_getframer rr@�
test_getframe�__code__�f_code)rrrrr�ms
zSysModuleTest.test_getframecsvddl�ddl}��������g��fdd�}����fdd���j|d�}|�����|�t��d��d}t�	�}x$|D]}|�
|t�|�|d�q�W��
�}|�||�|�||�|�|�}|�|t��k�|�|�}|�|�}	x0t|	�D]\}
\}}}
}|
dkr�Pq�W|�d	�|�|d
�|	|
d\}}}
}|�|
d�|�|dd
g����|��dS)Nrcs
��dS)Nrr)�g456rr�f123�sz/SysModuleTest.test_current_frames.<locals>.f123cs"������������dS)N)�append�	get_ident�set�waitr)�	entered_g�leave_g�thread_info�	threadingrrr��sz/SysModuleTest.test_current_frames.<locals>.g456)�targetr;r�z)didn't find f123() on thread's call stackzg456()r�zleave_g.wait()zentered_g.set())r��	tracebackZEventZThread�startr�rr�r	�_current_framesrSr��
assertGreaterr�r8�poprr��
extract_stack�	enumerateZfailr��join)rr�r��tZ	thread_id�d�tidZmain_id�frame�stackr��filename�lineno�funcnameZ
sourceliner)r�r�r�r�r�r�test_current_framesvsB




z!SysModuleTest.test_current_framescCs |�tjt�|�tjt�|�tjd�|�tjt	�|�tj
t�|�tjt�|�tj
t�|�tjt�|�ttj�d�|�tjjd�|�ttj�d�|�tjjddk�|�tjjdk�|�ttjj�t�|�ttjj�t�|�tjt�|�ttj�d�|�tjjdtjj�x@tdd�D]2}|�t|tjjdtjj�dd	�tjj���q8W|�tjj t�|�tjj!t�|�tjj"t�t#�$d
�}tjj%dk�r.|�tjj&dd
h�|�tjj'dd
dh�|dk�r�|�tjj%d�n0|dk�r|�tjj%d�n|�tjj%ddh�n|�|d�|�(tjj)d�|�tjj)d�|�tj*t�|�tj+t�|�tj+d�|�tj,t�|�tj-t�|�tj.t�|�tj/t�tj0}|�|dd�t	�|�t|�d�|�|dt�|�|dt�|�|dt�|�|dd�|�|dt�|�|j1t�|�|j2t�|�|j3t�|�|j4d�|�|j5t�|�|d|j1�|�|d|j2�|�|d|j3�|�|d|j4�|�|d|j5�|�|dk�|�tj6t�|�tj6d�tj,�7d��s|�tj8t�dS)N)�littleZbig�r�r�rr;�	rVz'sys.hash_info.modulus {} is a non-primeZPy_HASH_ALGORITHM>�	siphash24�fnv� �@�r�r��i��rt)�alpha�beta�	candidate�finalru)r;rr)Zshort�legacy�win)9rSr	�api_versionr��argv�listr8�	byteorder�builtin_module_names�tuple�	copyrightrT�exec_prefix�base_exec_prefixr|rr��
float_info�radix�int_infor�bits_per_digit�sizeof_digitr��
hexversion�	hash_info�
assertLess�modulus�width�range�pow�format�inf�nan�imag�	sysconfigZget_config_var�	algorithm�	hash_bits�	seed_bits�assertGreaterEqual�cutoff�maxsize�
maxunicoder��prefix�base_prefix�version�version_infor�r��micro�releaselevel�serial�float_repr_stylerG�abiflags)r�xZalgo�virrr�test_attributes�s�


zSysModuleTest.test_attributescCs6tj}|�t|�d�|�|jd�|�|jd�dS)Nrt)�ntZpthreadZsolarisN)Z	semaphorez
mutex+condN)r	r�rr�r8�name�lock)r�inforrr�test_thread_infoszSysModuleTest.test_thread_infocCs|�tjjtjj�dS)N)rr	�
__stdout__�encoding�
__stderr__)rrrr�
test_43581szSysModuleTest.test_43581cCs~td7a|�ttj�dtt�}|�t�|�|k�|����}|�t�|�|k�Gdd�dt�}|�ttj|d��dS)Nr;znever interned beforec@seZdZdd�ZdS)z$SysModuleTest.test_intern.<locals>.ScSsdS)Nr1r)rrrr�__hash__"sz-SysModuleTest.test_intern.<locals>.S.__hash__N)r$r%r&rrrrr�S!sr�abc)�INTERN_NUMRUNSrrr	�internrTr�swapcase)r�s�s2rrrr�test_internszSysModuleTest.test_interncCs�|�tj�d}xJ|D]B}|�ttj|�|�|dkr:tnt}|�tttj|��||�qW|�t	tj��|�t
tj�t
|��|�tjjdddh�dS)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_moderrr;r�)
rr	�flagsr�boolr�rr��getattr�reprr�r8r)rZattrs�attr�	attr_typerrr�test_sys_flags's
zSysModuleTest.test_sys_flagsc	CsHt|�}|�t��|�WdQRX|�t��|�|�WdQRXdS)N)r�rr�__new__)rZsys_attrrrrr�assert_raise_on_new_sys_type7s
z*SysModuleTest.assert_raise_on_new_sys_typecCs|�tj�dS)N)r!r	r)rrrr�test_sys_flags_no_instantiation@sz-SysModuleTest.test_sys_flags_no_instantiationcCs|�tj�dS)N)r!r	r�)rrrr�&test_sys_version_info_no_instantiationCsz4SysModuleTest.test_sys_version_info_no_instantiationcCs tj�td�|�t���dS)Nr�)r=rr�r	r!r�)rrrr�+test_sys_getwindowsversion_no_instantiationFsz9SysModuleTest.test_sys_getwindowsversion_no_instantiationcCst��dS)N)r	�_clear_type_cache)rrrr�test_clear_type_cacheKsz#SysModuleTest.test_clear_type_cachecCs�ttj�}d|d<tjtjddgtj|d�}|��d�	�}dtj
�d�}|�||�d|d<tjtjddgtj|d�}|��d�	�}|�|d	�d
|d<tjtjddgtjtj|d�}|��\}}|�|d�|�
d
|�|�
d|�d|d<tjtjddgtjtj|d�}|��\}}|�|d�|�
d
|�|�
d|�d|d<tjtjddgtj|d�}|��d�	�}|�|d�dS)N�cp424rLz-czprint(chr(0xa2)))r�envr�¢z
ascii:replace�?rH)rr:r(rBsUnicodeEncodeError:s'\xa2'zascii:z:surrogateescapezprint(chr(0xdcbd))��)�dict�os�environrzr{r	r|r}r~�strip�linesep�encoderr8)rr(�prrIr-rrr�test_ioencodingOsB
zSysModuleTest.test_ioencodingz*requires OS support of non-ASCII encodingsFz$requires FS encoding to match localecCs^ttj�}d|d<tjtjddtjj	gtj
|d�}|��d��}|�
|t�tjj	��dS)NrrLz-cz	print(%a))rr(r)r,r-r.rzr{r	r|r=r�FS_NONASCIIr}r~r/r�fsencode)rr(r2rrrr�test_ioencoding_nonasciizs

z&SysModuleTest.test_ioencoding_nonasciizTest is not venv-compatiblec	Cs�|�tj�tj�tj�tj�tj�tj��}tj	dddgtjtj
|d�}|��d}|���
d�}|��|�|dttj�dd	��g�dS)
NZnonexistentz-czEimport sys; print(sys.executable.encode("ascii", "backslashreplace")))r|r�cwdr�ASCIIzb''rH�backslashreplace)rr-�path�abspathr	r|�dirname�realpathrzr{r}r~r/�decoder�r8rr1)rZ
python_dirr2rr|rrr�test_executable�szSysModuleTest.test_executableNcCs(|�|�t�|�|r$|�||�dS)N)ZassertIsNotNone�codecs�lookupr)r�fs_encodingrIrrr�check_fsencoding�s

zSysModuleTest.check_fsencodingcCs,t��}tjdkrd}nd}|�||�dS)N�darwinzutf-8)r	�getfilesystemencodingr�rC)rrBrIrrr�test_getfilesystemencoding�s

z(SysModuleTest.test_getfilesystemencodingc
Cs�tj��}||d<d|d<d�d�}tjd|g}|r>|�d�|dk	rP||d<n|�dd�tj	|tj
tj|d	d
�}|��\}}	|S)N�LC_ALL�0ZPYTHONCOERCECLOCALE�
)z
import syszdef dump(name):z    std = getattr(sys, name)z(    print("%s: %s" % (name, std.errors))z
dump("stdin")zdump("stdout")zdump("stderr")z-cz-IrLT)rr:r(Zuniversal_newlines)
r-r.�copyr�r	r|r�r�rzr{r}ZSTDOUTr~)
r�localerr�r(r�argsr2rr:rrr�c_locale_get_error_handler�s$


z(SysModuleTest.c_locale_get_error_handlercCs�|j|dd�}|�|d�|j|dd�}|�|d�|j|dd�}|�|d�|j|d	d�}|�|d�|j|d
d�}|�|d�|j|dd�}|�|d�dS)NT)rzHstdin: 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)rMr)rrKrrrr�check_locale_surrogateescape�s$z*SysModuleTest.check_locale_surrogateescapecCs|�d�dS)N�C)rO)rrrr�test_c_locale_surrogateescape�sz+SysModuleTest.test_c_locale_surrogateescapecCs|�d�dS)NZPOSIX)rO)rrrr�!test_posix_locale_surrogateescape�sz/SysModuleTest.test_posix_locale_surrogateescapecCs�ddddd�}|�ttjd��|�ttjd��|�ttjd��|�ttjd	��tjj}|�|dd
�|j|jf�|jd>|jd>B|jd
>B||j	d>B|j
d>B}|�tjj|�|�tjjtjj�
��dS)Nrgr���)r�r�r�r�r�r�r��	cache_tagr���r�rur)rrr	�implementationr�rr�r�r�r�r�r�r��lower)rZlevelsr�r�rrr�test_implementation�s*
z!SysModuleTest.test_implementationcCsBddlm}ddg}||�\}}}|�d|�|�ttjd�dS)Nr)rz-cz#import sys; sys._debugmallocstats()sfree PyDictObjectsT)�test.support.script_helperrr8rrr	�_debugmallocstats)rrrL�retrr-rrr�test_debugmallocstatss
z#SysModuleTest.test_debugmallocstats�getallocatedblocksz0sys.getallocatedblocks unavailable on this buildc
Csyddl}Wntk
r(t��}Yn>Xy|��}Wn&tk
r\}zd}Wdd}~XYn
X|dk}t��}|�t	|�t
�|r�|�|d�n|�|d�y|�
|t���Wntk
r�YnXt��t��}|�||�t��t��}|�|t|d|d��dS)NrT)ZpymallocZpymalloc_debugri)rv�ImportErrorr�
with_pymallocZpymem_getallocatorsnamerr	r_�assertIsr�r�r�r�r�r��AttributeError�gcZcollectZassertLessEqualr8r�)rrvraZ
alloc_namer,r]�br�rrr�test_getallocatedblockss0z%SysModuleTest.test_getallocatedblockscCs8|�t��d�d}td|�\}}}|�|��d�dS)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()
        z-csTrue)rbr	�
is_finalizingrr�rstrip)rrrJrr:rrr�test_is_finalizing?sz SysModuleTest.test_is_finalizing�getandroidapilevelzneed sys.getandroidapilevel()cCs$t��}|�|t�|�|d�dS)Nr)r	rjrSr�r�)r�levelrrr�test_getandroidapilevelUsz%SysModuleTest.test_getandroidapilevelcs�d���fdd�}dddddg}|d	|�|d
|�|d|dd�|dd��|d|dd�|d
d��|d
|dg�|d|dg�|dd>|�|dd>|dg�|d|�dS)Nz�if 1:
            import sys
            def f1():
                1 / 0
            def f2():
                f1()
            sys.tracebacklimit = %r
            f2()
        cs<tjtjd�|gtjd�}|��d}��|��|�dS)Nz-c)r:r;)rzr{r	r|r}r~r�
splitlines)�tracebacklimitrIr2r)rrrr�checkfs
z4SysModuleTest.test_sys_tracebacklimit.<locals>.checks"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 zerorgrtr�r;r���i�r)rror�r)rrr�test_sys_tracebacklimit\s 	

z%SysModuleTest.test_sys_tracebacklimitcCs |�ttj�tttj���dS)N)rr�r	�	meta_pathr�)rrrr�test_no_duplicates_in_meta_path}sz-SysModuleTest.test_no_duplicates_in_meta_path)N)FN)=r$r%r&rArQrUr\r`rdrnr=r�cpython_onlyrwr�r�r��unittestZ
skipUnlessrr	r�Z
refcount_testr�r�Zreap_threadsr�r�r�rr	rr!r"r#r$r&r3r4rErK�getpreferredencodingr6ZskipIfr�r�r?rCrFrMrOrQrRrZr^rfZrequires_type_collectingrirlrqrsrrrrr@os`B		#
	AQ	+


&(!r@csleZdZdd�ZejjZdd�Zdd�Zdd�Z	�fd	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Z�ZS)�
SizeofTestcCs*t�d�|_tjj|_ddl}|j|_	dS)N�Pr)
�struct�calcsizerxr	r�r��	longdigitrvZSIZEOF_PYGC_HEAD�gc_headsize)rrvrrr�setUp�s
zSizeofTest.setUpcCsHtjj}|j}|�t�d�|d�|j�|�t�g�|d�|�dS)NTr�Pn)r=r�calcvobjsizer|rr	�	getsizeofr{)r�vsizeZgc_header_sizerrr�test_gc_head_size�szSizeofTest.test_gc_head_sizec	CsDGdd�d�}|�ttj|��Gdd�d�}|�ttj|��dg}|�t�|�|�|�Gdd�d�}|�ttj|��|�t�|�|�|�Gdd	�d	t�}|�t�|tj��tj|j	�|�t
��t�|tjd
��WdQRX|�t��t�|d��WdQRX|�tt
f��t�|tjd
��WdQRXdS)Nc@seZdZdd�ZdS)z)SizeofTest.test_errors.<locals>.BadSizeofcSst�dS)N)r )rrrr�
__sizeof__�sz4SizeofTest.test_errors.<locals>.BadSizeof.__sizeof__N)r$r%r&r�rrrr�	BadSizeof�sr�c@seZdZdd�ZdS)z-SizeofTest.test_errors.<locals>.InvalidSizeofcSsdS)Nr)rrrrr��sz8SizeofTest.test_errors.<locals>.InvalidSizeof.__sizeof__N)r$r%r&r�rrrr�
InvalidSizeof�sr��sentinelc@seZdZdd�ZdS)z+SizeofTest.test_errors.<locals>.FloatSizeofcSsdS)Ng@r)rrrrr��sz6SizeofTest.test_errors.<locals>.FloatSizeof.__sizeof__N)r$r%r&r�rrrr�FloatSizeof�sr�c@seZdZdd�ZdS)z.SizeofTest.test_errors.<locals>.OverflowSizeofcSst|�S)N)r�)rrrrr��sz9SizeofTest.test_errors.<locals>.OverflowSizeof.__sizeof__N)r$r%r&r�rrrr�OverflowSizeof�sr�r;rp)rr r	r�rrbr�rr�r|�
OverflowError)rr�r�r�r�r�rrr�test_errors�s$zSizeofTest.test_errorscCsFtjj}|�t�d�|d�|j�|�t�dd�|d�|j�dS)NTrrp)r=rrrr	r�r{)r�sizerrr�test_default�szSizeofTest.test_defaultc'	sh	tj}tjj�tjj}�j��d|d��j��t�d��dddg}x*|D]"}t	|�}�||d�|�
��qPW�tt	���d���d|d	�d
��d|d	�d�d
d�}�|�jd�d���fdd�}||�j
�d��||j
�d��dd�}||j
�d�|d	���tdd
��d���tj�d��ddl}	�|	jj�d��ddl}
�|
jj�d���tj�d���ij�d���i�d�|d�dd|d��d
dd d!dd"d#dd$�}�|�d�|d�d%d&|d���i���d���i���d���i���d���ti��d'���ti����d'���ti����d'���ti����d'��Gd(d)�d)t�}�|j�d���t��d*���t ddddd��d+���t!ddddd��d+���t"ddd
d��d+���t#�d��ddl$}
ddl%}|
�&|j'j(�}�|�d,���t)g��d-���t*d��d���t+d��d.���t,j-|d��j.tt,j-��ddl/}d/}|�0�}t|j1j2�}t|j1j3�}|j1j4|j1j5||d
}�||d0|d1d|d��d2d3�}�|�d4��G��fd5d6�d6�}d7d8�}�|��d9���td:��d;��ddl6}�|�7dd��d��gd
dd gd<d=d>gg}x*|D]"}�||d?�t|��j.��q�W�tg��d;���t*g��d���d|d���d
|d��j��d@|d��j�dt,j8j9}�t|�|d�d�j��t|dd
�|d�d�j��t|d�|d�d �j��t:�dA���d�d���t;�d���t��d��G��fdBd)�d)t�}�tt<d
���dC���t*d��d���t<d
��d���t<dD��d��d}gt<d&�t<dE�g}�dF|ddG�}x�|D]�}t|�}|dk�rTd
}|d}|}x||k�rx|d
>}�qbW|dk�r��t=|�|��t>|�|�n4�t=|�|||d���t>|�|||d���q:W�tt=���dH���t?d��dI���t@t��dI���dJ|d���dK|d�d �j.�dL}tAt,dM��rR|dN7}||�}�t|�||dO�}GdPdQ�dQt�}�|||dR�dd|d���|�j�d�d�j.�|�} d
| _B| _C| _D| _E| _F| _G| _H| _I�|||dR�d%d&|d���|�j�d�d&�j.�dSdTdUdVdWdXg}dY}!|!dZ}"|"d}#x�|D]�}tJtK|��}$|$d[k�r��|!�t|�d
}%n\|$d\k�r��|"�t|�d
}%n<|$d]k�rЈ|"�dt|�d
}%n�|"�d!t|�d
}%�||%��q\WtLd^�}�|�|"�d!�tM|d_d`��|�|"�d!d!�ddlN}&�|&�Ot��da���|&�Pt��da��dS)bNTrZ4PrB�ui��Zn2PiZnPr[r;s
xxxxxxxxxxr�csd��fdd�}|S)Nrcs�S)Nrr)r�rr�inner�sz<SizeofTest.test_objecttypes.<locals>.get_cell.<locals>.innerr)r�r)r�r�get_cell�sz-SizeofTest.test_objecttypes.<locals>.get_cellrrxcs��t�|�|�dS)N)r�r	r�)r]Z
expected_size)rrr�check_code_size�sz4SizeofTest.test_objecttypes.<locals>.check_code_sizeZ6i13Pcs�fdd�}|S)Ncs�S)Nrr)r�rrr��sz=SizeofTest.test_objecttypes.<locals>.get_cell2.<locals>.innerr)r�r�r)r�r�	get_cell2�sz.SizeofTest.test_objecttypes.<locals>.get_cell2Z2dZ3PPZ3P2PZ2PZnQ2PZ2nP2nr�r�Zn2Pr�rtru��)r;r�rtrur�r�r�r�rWrgZP2nPnc@seZdZdS)z&SizeofTest.test_objecttypes.<locals>.CN)r$r%r&rrrrrPsrPZ5Pbz	5Pb 2P2nPZ32B2iBZn3Pr��Z	5P2c4P3icZ3icSsdS)Nrrrrr�func%rBz)SizeofTest.test_objecttypes.<locals>.funcZ12Pcs@eZdZedd��Zedd��Z�e�d���e�d��dS)z&SizeofTest.test_objecttypes.<locals>.ccSsdS)Nrrrrr�foo(sz*SizeofTest.test_objecttypes.<locals>.c.foocSsdS)Nr)�clsrrr�bar+sz*SizeofTest.test_objecttypes.<locals>.c.barZPPN)r$r%r&�staticmethodr��classmethodr�r)ror�rrr�'sr�css
dVdS)Nr;rrrrr�get_gen3rBz,SizeofTest.test_objecttypes.<locals>.get_genZPb2PPP4PrZlPr<�2�3r~rpZPnPPPcs@eZdZdd�Zdd�Zdd�Zeeeed�Z�e�d��d	S)
z&SizeofTest.test_objecttypes.<locals>.CcSs|jS)N)�_C__x)rrrr�getxXrBz+SizeofTest.test_objecttypes.<locals>.C.getxcSs
||_dS)N)r�)r�valuerrr�setxYrBz+SizeofTest.test_objecttypes.<locals>.C.setxcSs|`dS)N)r�)rrrr�delxZrBz+SizeofTest.test_objecttypes.<locals>.C.delxrZ4PiN)r$r%r&r�r�r��propertyr�r)ror�rrrPWs
Z4li�riZ3nPZ2nPZP3n�3Pr)r;r�rtZP2n15Pl4Pn9Pn11PIPZ	getcountsZ3n2PZ3P36P3P10P2P4Pc@seZdZdS)z2SizeofTest.test_objecttypes.<locals>.newstyleclassN)r$r%r&rrrr�
newstyleclass�sr�Z2nP2n0PZd1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111udÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuPĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀu,￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿ux𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀u�􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿ZnnbPZnPnr��ii@z<stdin>rZ2Pn2P)Qryrzr=r�calcobjsizer�check_sizeofr{r��	bytearray�	__alloc__�iter�__closure__r��complexrTrY�datetimeZ	timedeltaZdays�collections�defaultdict�default_factoryr��__add__�__iter__�keys�values�items�object�__dict__�
BaseException�UnicodeEncodeError�UnicodeDecodeError�UnicodeTranslateError�Ellipsisr@Zencodings.iso8859_3�
charmap_build�	iso8859_3�decoding_tabler��reversed�floatr	r�rxrZcurrentframer��co_cellvars�co_freevars�co_stacksize�
co_nlocals�re�finditerr�r�ru�NotImplementedr�r��	frozenset�slice�superrr]rer�r��erf�g�h�ord�max�chrr�weakref�ref�proxy)'rrzr�ZsamplesZsampler�r�r�r�r�r�ZlongdictrPr@�	encodingsrZCO_MAXBLOCKSZncellsZnfrees�extrasr�r�r�r�ZPyLong_BASEZ
PySet_MINSIZErZminusedZtmpZnewsizeZfmtr��oZasciifieldsZ
compactfieldsZ
unicodefieldsZmaxchar�Lr�)�	__class__)rorr�r�test_objecttypes�s$
&& "
"$ 	


 
"0"



zSizeofTest.test_objecttypescCsHt�|�t�|�}t�|�r2t�|�s2||j7}|�t�|�|�dS)N)r	r�ryrzrdZ
is_trackedr|r)rr!�baseZextrarIrrr�check_slots�s
zSizeofTest.check_slotsc	Cs�|j}Gdd�dt�}||�t�d�Gdd�dt�}||gd�dgid�Gdd	�d	t�}||�gd�Gd
d�dt�}||�t�d�Gdd
�d
t�}||�t�d�ddlm}Gdd�d|�}||gd�|gd�d�dS)Nc@seZdZdZdS)z!SizeofTest.test_slots.<locals>.BA)r]rer�N)r$r%r&�	__slots__rrrr�BA�sr�r�c@seZdZdZdS)z SizeofTest.test_slots.<locals>.D)r]rer�N)r$r%r&r�rrrr�D�sr�)r�r�c@seZdZdZdS)z SizeofTest.test_slots.<locals>.L)r]rer�N)r$r%r&r�rrrrr��sr�c@seZdZdZdS)z SizeofTest.test_slots.<locals>.S)r]rer�N)r$r%r&r�rrrrr�src@seZdZdZdS)z!SizeofTest.test_slots.<locals>.FS)r]rer�N)r$r%r&r�rrrr�FS�sr�r)�OrderedDictc@seZdZdZdS)z!SizeofTest.test_slots.<locals>.OD)r]rer�N)r$r%r&r�rrrr�OD�sr�)r�r�r,r�r�r�r�r�)	rror�r�r�rr�r�r�rrr�
test_slots�szSizeofTest.test_slotscCs�tjj}tjj}|j}ddl}||��|d��yt�Wn6tk
rnt�	�d}|dk	rj|||d��YnX|tj
|d�|jttj
��dS)Nrrxr�Z2P2ir)
r=rr�rr��_astZASTrr	r*rrxr�)rr�r�ror��tbrrr�test_pythontypes�szSizeofTest.test_pythontypescCs�t��}|�|j�|�|j�dd�}tj|d�t��}|�|j|�|�|d|�|�|jd�|�|dd�dd�}tj|d�t��}|�|j|�|�|d|�|�|j|�|�|d|�tj|�t��}|�|j�|�|j�dS)NcWsdS)Nr)r]rrr�<lambda>�rBz0SizeofTest.test_asyncgen_hooks.<locals>.<lambda>)�	firstiterrr;cWsdS)Nr)r]rrrr�rB)�	finalizer)r	�get_asyncgen_hooksrNr�r��set_asyncgen_hooksrb)r�oldr�Zhooksr�Zcurrrr�test_asyncgen_hooks�s*
zSizeofTest.test_asyncgen_hookscCs6t�d�}td|�\}}}|�|d�|�|d�dS)Nz�
            import sys
            class MyStderr:
                def write(self, s):
                    sys.stderr = None
            sys.stderr = MyStderr()
            1/0
        z-crB)rxryrr)rrrJrr-rrr�/test_changing_sys_stderr_and_removing_references
z:SizeofTest.test_changing_sys_stderr_and_removing_reference)r$r%r&r}r=rr�r�r�r�r�r�r�r�r�r��
__classcell__rr)r�rrw�s	rwcCstj�tt�dS)N)r=rZrun_unittestr@rwrrrr�	test_mainsr��__main__)r=rr[rrr
r@rdrKr�r-ryrzr	r�Ztest.supportrxrur3rZTestCaserr'r@rtrwr�r$rrrr�<module>sB/(