HEX
Server: Apache
System: Linux opal14.opalstack.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
User: curbgloabal_opal (1234)
PHP: 8.1.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib64/python3.6/test/__pycache__/test_sys.cpython-36.pyc
3

ai���
@s�ddlZddlZddlmZmZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZdayddlZWnek
r�dZYnXGdd�dej�ZejjGdd�dej��Zdd�Zed	kr�e�dS)
�N)�assert_python_ok�assert_python_failurec@s(eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Ze
jed�dd��Zdd�Zdd�Zejjdd��Zdd�Zd d!�Zd"d#�Ze
jeed$�d%�d&d'��Zejjd(d)��Zd*d+�Zd,d-�Z ejj!d.d/��Z"d0d1�Z#d2d3�Z$e
jeed4�d�d5d6��Z%d7d8�Z&d9d:�Z'd;d<�Z(d=d>�Z)d?d@�Z*dAdB�Z+dCdD�Z,ejjdEdF��Z-dGdH�Z.e
jejj/dI�e
jej0�e1j2dJ�kdK�dLdM���Z3e
j4ej5ej6kdN�dOdP��Z7dfdRdS�Z8dTdU�Z9dgdVdW�Z:dXdY�Z;dZd[�Z<ejjd\d]��Z=e
jeed^�d_�d`da��Z>ejj?dbdc��Z@ddde�ZAdQS)h�
SysModuleTestcCstj|_tj|_tj|_dS)N)�sys�stdout�orig_stdout�stderr�orig_stderr�displayhook�orig_displayhook)�self�r
� /usr/lib64/python3.6/test_sys.py�setUpszSysModuleTest.setUpcCs&|jt_|jt_|jt_tjj	�dS)N)
rrrr	rrr
�test�supportZ
reap_children)rr
r
r�tearDownszSysModuleTest.tearDowncCs�ddl}tj�}|t_tj}|jt|�t|d�r6|`	|d�|j
|j�d�|jt|d��|d�|j
|j�d�|j
|j	d�t`|jt
|d�dS)Nr�_��*z42
)�builtins�io�StringIOrr�__displayhook__�assertRaises�	TypeError�hasattrr�assertEqual�getvalue�
assertTrue�RuntimeError)rr�outZdhr
r
r�test_original_displayhook%s
z'SysModuleTest.test_original_displayhookcCs"t`tddd�}|jtt|�dS)N�42z<string>�single)rr
�compilerr �eval)r�coder
r
r�test_lost_displayhook:sz#SysModuleTest.test_lost_displayhookcCs,dd�}|t_tddd�}|jtt|�dS)NcSst�dS)N)�
ValueError)�objr
r
r�baddisplayhook@sz=SysModuleTest.test_custom_displayhook.<locals>.baddisplayhookr#z<string>r$)rr
r%rr)r&)rr+r'r
r
r�test_custom_displayhook?sz%SysModuleTest.test_custom_displayhookcCsttj�}|t_tj}|jt|�ytd��Wn.tk
rZ}z|tj��WYdd}~XnX|j	|j
�jd��dS)NrzValueError: 42
)rrrr�__excepthook__rrr)�exc_inforr�endswith)r�errZeh�excr
r
r�test_original_excepthookFsz&SysModuleTest.test_original_excepthookcCs<tjjd��}tjddd�WdQRX|jd|j�k�dS)Nr��1zETypeError: print_exception(): Exception expected for value, str found)rrZcaptured_outputr�
excepthookrr)rrr
r
r�test_excepthookTszSysModuleTest.test_excepthookc(s��jttjdd��jt��}tj�WdQRX�j|jj�tdd�\}}}�j	|d��j	|d��j	|d��jt��}tjd�WdQRX�j	|jjd��jt��}tjd�WdQRX�j	|jjd��jt��}tjd�WdQRX�j	|jjd��jt��}tjd�WdQRX�j	|jjd�t
dd	�\}}}�j	|d
��j	|d��j	|d��fdd�}|d
d�|dd�|dddd�dS)Nrz-czimport sys; sys.exit()r��exit��zraise SystemExit(47)�/csRtd|f|�\}}}�j|d��j|d��j|j|�dt|�t|�f�dS)Nz-cr3r7z%s doesn't start with %s)rrr�
startswith�ascii)r'�expectedZenv_vars�rcr!r0)rr
r�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)r)r9r:)r9r:)rrrr8�
SystemExit�assertIsNone�	exceptionr'rrr)r�cmr?r!r0r@r
)rr�	test_exit]sD	zSysModuleTest.test_exitcCs$|jttjd�|jtj�t�dS)Nr)rrr�getdefaultencoding�assertIsInstance�str)rr
r
r�test_getdefaultencoding�sz%SysModuleTest.test_getdefaultencodingcCshtj��Vtjd�|jttj�tj�}x.ddd|fD]}tj|�|jtj�|�q8WWdQRXdS)N�ignorer�d�x)	�warnings�catch_warnings�simplefilterrrr�setcheckinterval�getcheckintervalr)r�orig�nr
r
r�test_setcheckinterval�s


z#SysModuleTest.test_setcheckintervalz!Threading required for this test.cCs�|jttj�|jttjd�|jttjd�|jttjd�tj�}|j|dk|�z4x.ddd|fD]}tj|�|jtj�|�qfWWdtj|�XdS)	N�ag�?gg�?g�h㈵��>g�������?g@g�)rrr�setswitchintervalr)�getswitchintervalrZassertAlmostEqual)rrSrTr
r
r�test_switchinterval�s
z!SysModuleTest.test_switchintervalcCs^|jttjd�tj�}|jttj�|jttjd�tjd�|jtj�d�tj|�dS)Nri'i���)rrr�getrecursionlimit�setrecursionlimitr)r)r�oldlimitr
r
r�test_recursionlimit�s
z!SysModuleTest.test_recursionlimitcs�ttd�rtj�r|jd�tj�}�fdd��zPxJdD]B}ytj|�Wntk
r`w8YnX|jt��|jt��q8WWdtj|�XdS)
N�gettracez(fatal error if run with a trace functioncs
��dS)Nr
r
)�fr
rr_�sz5SysModuleTest.test_recursionlimit_recovery.<locals>.f�
��2�KrL���)r`rarbrcrLrdre)rrr^�skipTestrZr[�RecursionErrorr)rr\�depthr
)r_r�test_recursionlimit_recovery�s

z*SysModuleTest.test_recursionlimit_recoveryc
szddlm����fdd��tj�}zDtjd�x4dD],}|dkrL|d}n|d
d}�||�q6WWdtj|�XdS)Nr)�get_recursion_depthc
sP��}||krB�jt��}tj|�WdQRX�jt|j�d�n
�||�dS)Nz\cannot set the recursion limit to [0-9]+ at the recursion depth [0-9]+: the limit is too low)rrgrr[ZassertRegexrIrD)rh�limitZrecursion_depthrE)rjr�set_recursion_limit_at_depthr
rrl�szZSysModuleTest.test_setrecursionlimit_recursion_depth.<locals>.set_recursion_limit_at_depthi�r`rarbrcrL�����)r`rarbrcrLrmrn)�	_testcapirjrrZr[)rr\rkrhr
)rjrrlr�&test_setrecursionlimit_recursion_depth�s


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

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

            sys.setrecursionlimit(%d)
            f()rb��z-c)rr3s6Fatal Python error: Cannot recover from stack overflow)rbrs)�textwrap�dedentrrZSuppressCrashReport�
subprocess�Popenr�
executable�PIPE�communicater�
returncode�assertIn)rr'�i�subr0r
r
r�test_recursionlimit_fatalerrors


z,SysModuleTest.test_recursionlimit_fatalerrorcCsvtjjtd�tj�}|jt|�d�|j|dt�|j|dt�|j|dt�|j|dt�|j|dt	�|j
ttj
|d�|j|jt�|j|jt�|j|jt�|j|jt�|j|jt	�|j|jt�|j|jt�|j|jt�|j|jt�|j|d|j�|j|d|j�|j|d|j�|j|d|j�|j|d|j�tj�\}}}}}dS)N�getwindowsversion�rr3�rorp)rr�
get_attributerr�r�lenrH�intrIr�
IndexError�operator�getitem�major�minorZbuild�platformZservice_packZservice_pack_minorZservice_pack_majorZ
suite_maskZproduct_type)r�vZmaj�minZbuildnoZplatZcsdr
r
r�test_getwindowsversions0z$SysModuleTest.test_getwindowsversioncCs|jttjtd�dS)Nr�)rrr�call_tracing�type)rr
r
r�test_call_tracing9szSysModuleTest.test_call_tracing�setdlopenflagsztest needs sys.setdlopenflags()cCsf|jttd��|jttjd�tj�}|jttj�tj|d�|jtj�|d�tj|�dS)N�getdlopenflagsrr3)rrrrrr�r�r)rZoldflagsr
r
r�test_dlopenflags<szSysModuleTest.test_dlopenflagscCsd|jttj�tjd�}da|jtjd�|d�b|jtjd�|�ttd�r`|jtj�t	�dS)Nr3�gettotalrefcount)
rrr�getrefcountrTrrrHr�r�)r�cr
r
r�
test_refcountGs

zSysModuleTest.test_refcountcCs>|jttjdd�|jttjd�|jtjjtj�j	k�dS)Nri�5w)
rrr�	_getframer)rr�
test_getframe�__code__�f_code)rr
r
rr�Ws
zSysModuleTest.test_getframecCsDd}yddl}Wntk
r(d}YnX|r8|j�n|j�dS)NTrF)�_thread�ImportError�current_frames_with_threads�current_frames_without_threads)rZhave_threadsr�r
r
r�test_current_frames`s

z!SysModuleTest.test_current_framescsPddl�ddl}�j���j��g��fdd�}����fdd���j|d�}|j��j�|jt��d��d}tj	�}�j
�}|j||�|j||�|j|�}|j
|tj�k�|j|�}|j|�}x0t|�D]\}	\}
}}}
|dkr�Pq�W|jd	�|j|
d
�||	d\}
}}}
|j|d�|j|
dd
g��j�|j�dS)Nrcs
��dS)Nr
r
)�g456r
r�f123ysz7SysModuleTest.current_frames_with_threads.<locals>.f123cs"�j�j���j��j�dS)N)�append�	get_ident�set�waitr
)�	entered_g�leave_g�thread_info�	threadingr
rr�|sz7SysModuleTest.current_frames_with_threads.<locals>.g456)�targetr3r�z)didn't find f123() on thread's call stackzg456()r�zleave_g.wait()zentered_g.set())r��	tracebackZEventZThread�startr�rr�r�_current_framesr�r|�poprr��
extract_stack�	enumerateZfailr��join)rr�r��tZ	thread_id�dZmain_id�frame�stackr}�filename�lineno�funcnameZ
sourceliner
)r�r�r�r�r�rr�ms<



z)SysModuleTest.current_frames_with_threadscCs>tj�}|jt|�d�|jd|�|j|dtj�k�dS)Nr3r)rr�rr�r|rr�)rr�r
r
rr��sz,SysModuleTest.current_frames_without_threadscCs |jtjt�|jtjt�|jtjd�|jtjt	�|jtj
t�|jtjt�|jtj
t�|jtjt�|jttj�d�|jtjjd�|jttj�d�|jtjjddk�|jtjjdk�|jttjj�t�|jttjj�t�|jtjt�|jttj�d�|jtjjdtjj�x@tdd	�D]2}|jt|tjjdtjj�dd
jtjj���q8W|jtjj t�|jtjj!t�|jtjj"t�t#j$d�}tjj%dk�r.|jtjj&ddh�|jtjj'dddh�|dk�r�|jtjj%d
�n0|dk�r|jtjj%d�n|jtjj%dd
h�n|j|d�|j(tjj)d�|jtjj)d�|jtj*t�|jtj+t�|jtj+d�|jtj,t�|jtj-t�|jtj.t�|jtj/t�tj0}|j|dd�t	�|jt|�d�|j|dt�|j|dt�|j|dt�|j|dd�|j|dt�|j|j1t�|j|j2t�|j|j3t�|j|j4d�|j|j5t�|j|d|j1�|j|d|j2�|j|d|j3�|j|d|j4�|j|d|j5�|j|d k�|jtj6t�|jtj6d!�tj,j7d��s|jtj8t�dS)"N�little�big�r�r�rr3�	rLz'sys.hash_info.modulus {} is a non-prime�Py_HASH_ALGORITHM�fnv�	siphash24� �@��i��ro�alpha�beta�	candidate�finalrp�short�legacy�win)r�r�>r�r�)r�r�r�r�)r�r�r�r�)r3rr)r�r�)9rHr�api_versionr��argv�listr|�	byteorder�builtin_module_names�tuple�	copyrightrI�exec_prefix�base_exec_prefixrxrr��
float_info�radix�int_infor�bits_per_digit�sizeof_digitr��
hexversion�	hash_info�
assertLess�modulus�width�range�pow�format�inf�nan�imag�	sysconfig�get_config_var�	algorithm�	hash_bits�	seed_bits�assertGreaterEqual�cutoff�maxsize�
maxunicoder��prefix�base_prefix�version�version_infor�r��micro�releaselevel�serial�float_repr_styler<�abiflags)r�xZalgoZvir
r
r�test_attributes�s�


zSysModuleTest.test_attributesr�cCs6tj}|jt|�d�|j|jd�|j|jd�dS)	Nro�nt�pthread�solaris�	semaphore�
mutex+cond)r�r�r�N)r�r�N)rr�rr�r|�name�lock)r�infor
r
r�test_thread_infoszSysModuleTest.test_thread_infocCs|jtjjtjj�dS)N)rr�
__stdout__�encoding�
__stderr__)rr
r
r�
test_43581
szSysModuleTest.test_43581cCs~td7a|jttj�dtt�}|jtj|�|k�|j�j�}|jtj|�|k�Gdd�dt�}|jttj|d��dS)Nr3znever interned beforec@seZdZdd�ZdS)z$SysModuleTest.test_intern.<locals>.ScSsdS)N�{r
)rr
r
r�__hash__!sz-SysModuleTest.test_intern.<locals>.S.__hash__N)�__name__�
__module__�__qualname__rr
r
r
r�S sr�abc)�numrunsrrr�internrIr�swapcase)r�s�s2rr
r
r�test_internszSysModuleTest.test_internc
Csv|jtj�d}x:|D]2}|jttj|�|�|jtttj|��t|�qW|jttj��|jt	tj�t	|��dS)N�debug�inspect�interactive�optimize�dont_write_bytecode�no_user_site�no_site�ignore_environment�verbose�
bytes_warning�quiet�hash_randomization�isolated)
rrrrrrrrrrrrr )
rr�flagsrrr��getattrr��reprr�)rZattrs�attrr
r
r�test_sys_flags&s
zSysModuleTest.test_sys_flagscCsHt|�}|jt��|�WdQRX|jt��|j|�WdQRXdS)N)r�rr�__new__)rZsys_attrZ	attr_typer
r
r�assert_raise_on_new_sys_type2s
z*SysModuleTest.assert_raise_on_new_sys_typecCs|jtj�dS)N)r'rr!)rr
r
r�test_sys_flags_no_instantiation;sz-SysModuleTest.test_sys_flags_no_instantiationcCs|jtj�dS)N)r'rr�)rr
r
r�&test_sys_version_info_no_instantiation>sz4SysModuleTest.test_sys_version_info_no_instantiationcCs tjjtd�|jtj��dS)Nr�)rrr�rr'r�)rr
r
r�+test_sys_getwindowsversion_no_instantiationAsz9SysModuleTest.test_sys_getwindowsversion_no_instantiationcCstj�dS)N)r�_clear_type_cache)rr
r
r�test_clear_type_cacheFsz#SysModuleTest.test_clear_type_cachecCs�ttj�}d|d<tjtjddgtj|d�}|j�dj	�}dtj
jd�}|j||�d|d<tjtjddgtj|d�}|j�dj	�}|j|d	�d
|d<tjtjddgtjtj|d�}|j�\}}|j|d�|j
d
|�|j
d|�d|d<tjtjddgtjtj|d�}|j�\}}|j|d�|j
d
|�|j
d|�d|d<tjtjddgtj|d�}|j�dj	�}|j|d�dS)N�cp424rAz-czprint(chr(0xa2)))r�envr�¢z
ascii:replace�?r=)rrr.r7sUnicodeEncodeError:s'\xa2'zascii:z:surrogateescapezprint(chr(0xdcbd))��)�dict�os�environrvrwrrxryrz�strip�linesep�encoderr|)rr.�pr!r>r0r
r
r�test_ioencodingJsB
zSysModuleTest.test_ioencodingz*requires OS support of non-ASCII encodingsFz$requires FS encoding to match localecCs^ttj�}d|d<tjtjddtjj	gtj
|d�}|j�dj�}|j
|tjtjj	��dS)NrrAz-cz	print(%a))rr.r)r2r3r4rvrwrrxrr�FS_NONASCIIryrzr5r�fsencode)rr.r8r!r
r
r�test_ioencoding_nonasciius

z&SysModuleTest.test_ioencoding_nonasciizTest is not venv-compatiblecCs�|jtjjtj�tj�tjjtjjtj��}tj	dddgtjtj
|d�}|j�d}|j�j
d�}|j�|j|dttjjdd	��g�dS)
NZnonexistentz-czEimport sys; print(sys.executable.encode("ascii", "backslashreplace")))rxr�cwdr�ASCIIzb''r=�backslashreplace)rr3�path�abspathrrx�dirname�realpathrvrwryrzr5�decoder�r|r#r7)rZ
python_dirr8rrxr
r
r�test_executable�szSysModuleTest.test_executableNcCs(|j|�tj|�|r$|j||�dS)N)ZassertIsNotNone�codecs�lookupr)r�fs_encodingr>r
r
r�check_fsencoding�s

zSysModuleTest.check_fsencodingcCs,tj�}tjdkrd}nd}|j||�dS)N�darwinzutf-8)r�getfilesystemencodingr�rI)rrHr>r
r
r�test_getfilesystemencoding�s

z(SysModuleTest.test_getfilesystemencodingc	Cs�tjj�}d|d<d|d<djd�}tjd
|g}|r>|jd�|dk	rP||d<n|jdd�tj	|tj
tj|dd�}|j�\}}|S)N�C�LC_ALL�0ZPYTHONCOERCECLOCALE�
�
import sys�def dump(name):�    std = getattr(sys, name)�(    print("%s: %s" % (name, std.errors))�
dump("stdin")�dump("stdout")�dump("stderr")z-cz-IrAT)rrr.Zuniversal_newlines)rQrRrSrTrUrVrW)
r3r4�copyr�rrxr�r�rvrwryZSTDOUTrz)	rr rr.r'�argsr8rrr
r
r�c_locale_get_error_handler�s0


z(SysModuleTest.c_locale_get_error_handlercCs�|jdd�}|j|d�|jdd�}|j|d�|jdd�}|j|d�|jd	d�}|j|d�|jd
d�}|j|d�|jdd�}|j|d�dS)NT)r zHstdin: surrogateescape
stdout: surrogateescape
stderr: backslashreplace
z:ignore)rz6stdin: ignore
stdout: ignore
stderr: backslashreplace
z	iso8859-1z6stdin: strict
stdout: strict
stderr: backslashreplace
z
iso8859-1:�:r)rZr)rr!r
r
r�test_c_locale_surrogateescape�s$z+SysModuleTest.test_c_locale_surrogateescapecCs�ddddd�}|jttjd��|jttjd��|jttjd��|jttjd	��tjj}|j|dd
�|j|jf�|jd>|jd>B|jd
>B||j	d>B|j
d>B}|jtjj|�|jtjjtjjj
��dS)Nr`r���)r�r�r�r�r�r�r��	cache_tagr���r�rpr)rrr�implementationr�rr�r�r�r�r�r�r��lower)rZlevelsr�r�r
r
r�test_implementation�s*
z!SysModuleTest.test_implementationcCsBddlm}ddg}||�\}}}|jd|�|jttjd�dS)Nr)rz-cz#import sys; sys._debugmallocstats()sfree PyDictObjectsT)�test.support.script_helperrr|rrr�_debugmallocstats)rrrYZretr!r0r
r
r�test_debugmallocstatss
z#SysModuleTest.test_debugmallocstats�getallocatedblocksz0sys.getallocatedblocks unavailable on this buildcCs�tjjdd�r"tjjr"|jd�tjd�}tj	�}|j
t|�t�|rV|j
|d�n|j|d�y|j|tj��Wntk
r�YnXtj�tj	�}|j||�tj�tj	�}|j|t|d|d��dS)NZPYTHONMALLOCz*cannot test if PYTHONMALLOC env var is set�
WITH_PYMALLOCrrb)r3r4�getrr!rrfr�r�rh�assertIsr�r�Z
assertGreaterr�r�r��AttributeError�gcZcollectZassertLessEqualr|r�)rZ
with_pymallocrV�br�r
r
r�test_getallocatedblockss&


z%SysModuleTest.test_getallocatedblockscCs8|jtj�d�d}td|�\}}}|j|j�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)rkr�
is_finalizingrr�rstrip)rr'r?rrr
r
r�test_is_finalizing,sz SysModuleTest.test_is_finalizingcs�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�}|j�d}�j|j�|�dS)Nz-c)rr3)rvrwrrxryrzr�
splitlines)�tracebacklimitr>r8r!)r'rr
r�checkLs
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 zeror`ror�r3ri����rvrvrvrvr
)rrur�r
)r'rr�test_sys_tracebacklimitBs 	

z%SysModuleTest.test_sys_tracebacklimit)N)FN)Br	r
rrrr"r(r,r2r6rFrJrU�unittestZ
skipUnlessr�rYr]rirr�cpython_onlyrrrr�r�rrr�Z
refcount_testr�r�r�Zreap_threadsr�r�r�rrrr%r'r(r)r*r,r9r:rK�locale�getpreferredencodingr<ZskipIfr�r�rErIrLrZr\rdrgroZrequires_type_collectingrrrwr
r
r
rrsh	B		#
	
?Q	+


& rcsdeZdZdd�ZejjZdd�Zdd�Zdd�Z	�fd	d
�Z
dd�Zd
d�Zdd�Z
dd�Z�ZS)�
SizeofTestcCs*tjd�|_tjj|_ddl}|j|_	dS)N�Pr)
�struct�calcsizer}rr�r��	longdigitrqZSIZEOF_PYGC_HEAD�gc_headsize)rrqr
r
rrgs
zSizeofTest.setUpcCsHtjj}|j}|jtjd�|d�|j�|jtjg�|d�|�dS)NTr�Pn)rr�calcvobjsizer�rr�	getsizeofr�)r�vsizeZgc_header_sizer
r
r�test_gc_head_sizeoszSizeofTest.test_gc_head_sizecCsDGdd�d�}|jttj|��Gdd�d�}|jttj|��dg}|jtj|�|�|�Gdd�d�}|jttj|��|jtj|�|�|�Gdd	�d	t�}|jtj|tj��tj|j	�|jt
��tj|tjd
��WdQRX|jt��tj|d��WdQRX|jtt
f��tj|tjd
��WdQRXdS)Nc@seZdZdd�ZdS)z)SizeofTest.test_errors.<locals>.BadSizeofcSst�dS)N)r))rr
r
r�
__sizeof__zsz4SizeofTest.test_errors.<locals>.BadSizeof.__sizeof__N)r	r
rr�r
r
r
r�	BadSizeofysr�c@seZdZdd�ZdS)z-SizeofTest.test_errors.<locals>.InvalidSizeofcSsdS)Nr
)rr
r
rr�sz8SizeofTest.test_errors.<locals>.InvalidSizeof.__sizeof__N)r	r
rr�r
r
r
r�
InvalidSizeof~sr��sentinelc@seZdZdd�ZdS)z+SizeofTest.test_errors.<locals>.FloatSizeofcSsdS)Ng@r
)rr
r
rr��sz6SizeofTest.test_errors.<locals>.FloatSizeof.__sizeof__N)r	r
rr�r
r
r
r�FloatSizeof�sr�c@seZdZdd�ZdS)z.SizeofTest.test_errors.<locals>.OverflowSizeofcSst|�S)N)r�)rr
r
rr��sz9SizeofTest.test_errors.<locals>.OverflowSizeof.__sizeof__N)r	r
rr�r
r
r
r�OverflowSizeof�sr�r3rv)rr)rr�rrkr�rr�r��
OverflowError)rr�r�r�r�r�r
r
r�test_errorsxs$zSizeofTest.test_errorscCsFtjj}|jtjd�|d�|j�|jtjdd�|d�|j�dS)NTrr3rv)rrr�rrr�r�)r�sizer
r
r�test_default�szSizeofTest.test_defaultc'	s�	tj}tjj�tjj}�j��d|d��j��t�d��dddg}x*|D]"}t	|�}�||d�|j
��qPW�tt	���d���d|d	�d
��da|d	�d
�dd�}�|�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�ddc|d ��d
ddd!d"d#d$dd%�}�|�d�|d�d&de|d ���ij��d���ij��d���ij��d���ti��d'���tij���d'���tij���d'���tij���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'j(�}�|�d,���t)g��d-���t*d��d���t+d��d.���t,j-|d��j.tt,j-��ddl/}d/}|j0�}t|j1j2�}t|j1j3�}|j1j4|j1j5||d
}�||d0|d1d|d��d2d3�}�|�d4��G��fd5d6�d6�}d7d8�}�|��d9���td:��d;��ddl6}�|j7dd��d��gd
ddgd<d=d>gg}x*|D]"}�||d?�t|��j.��q�W�tg��d;���t*g��d���d|d���d
|d��j��df|d��j�dt,j8j9}�t|�|d�d�j��t|dd
�|d�d�j��t|d�|d�d�j��t:�d@���d�d���t;�d���t��d��G��fdAd)�d)t�}�tt<d
���dB���t*d��d���t<d
��d���t<dC��d��d}gt<d�t<dD�g}�dE|ddF�}x�|D]�}t|�}|dk�rTd
}|d}|}x||k�rx|d
>}�qbW|dk�r��t=|�|��t>|�|�n4�t=|�|||d���t>|�|||d���q:W�tt=���dG���t?d��dH���t@t��dH���f|d���dg|d�d�j.�dI}tAt,dJ��rR|dK7}||�}�t|�||dL�}GdMdN�dNt�}�|||dO�dd"|d ���|�j�d�d"�j.�|�} d
| _B| _C| _D| _E| _F| _G| _H| _I�|||dO�d&d|d ���|�j�d�d�j.�d<dPdQdDdRdSdTdPdUdVdWdPg}dX}!|!dY}"|"d}#x�|D]�}tJtK|��}$|$dZk�r��|!�t|�d
}%n\|$d[k�rĈ|"�t|�d
}%n<|$d\k�r�|"�dt|�d
}%n�|"�d!t|�d
}%�||%��qtWtLd]�}�|�|"�d!�tM|d^d_��|�|"�d!d!�ddlN}&�|&jOt��d`���|&jPt��d`��dS)hNTrZ4Pr7�ui��Zn2PiZnPrTr3�xr`r�csd��fdd�}|S)Nrcs�S)Nr
r
)r�r
r�inner�sz<SizeofTest.test_objecttypes.<locals>.get_cell.<locals>.innerr
)r�r
)r�r�get_cell�sz-SizeofTest.test_objecttypes.<locals>.get_cellrr}cs�jtj|�|�dS)N)r�rr�)rVZ
expected_size)rr
r�check_code_size�sz4SizeofTest.test_objecttypes.<locals>.check_code_sizeZ6i13Pcs�fdd�}|S)Ncs�S)Nr
r
)r�r
rr��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�roZn2Prpr���)r3r�rorpr�r�r�r�raZP2nPnc@seZdZdS)z&SizeofTest.test_objecttypes.<locals>.CN)r	r
rr
r
r
rrM�srMZ5Pbz	5Pb 2P2nPZ32B2iBZn3Pr��Z12P3icZ3icSsdS)Nr
r
r
r
r�funcsz)SizeofTest.test_objecttypes.<locals>.funcZ12Pcs@eZdZedd��Zedd��Z�e�d���e�d��dS)z&SizeofTest.test_objecttypes.<locals>.ccSsdS)Nr
r
r
r
r�foosz*SizeofTest.test_objecttypes.<locals>.c.foocSsdS)Nr
)�clsr
r
r�barsz*SizeofTest.test_objecttypes.<locals>.c.barZPPN)r	r
r�staticmethodr��classmethodr�r
)rur�r
rr�
sr�css
dVdS)Nr3r
r
r
r
r�get_gensz,SizeofTest.test_objecttypes.<locals>.get_genZPb2PPPr
ZlPr4�2�3r�ZPnPPPcs@eZdZdd�Zdd�Zdd�Zeeeed�Z�e�d��d	S)
z&SizeofTest.test_objecttypes.<locals>.CcSs|jS)N)�_C__x)rr
r
r�getx;sz+SizeofTest.test_objecttypes.<locals>.C.getxcSs
||_dS)N)r�)r�valuer
r
r�setx<sz+SizeofTest.test_objecttypes.<locals>.C.setxcSs|`dS)N)r�)rr
r
r�delx=sz+SizeofTest.test_objecttypes.<locals>.C.delxrZ4PiN)r	r
rr�r�r��propertyr�r
)rur�r
rrM:s
Z4li�rbZ3nPZ2nPZP3n�3PZP2n15Pl4Pn9Pn11PIPZ	getcountsZ3n2PZ3P36P3P10P2P4Pc@seZdZdS)z2SizeofTest.test_objecttypes.<locals>.newstyleclassN)r	r
rr
r
r
r�
newstyleclassusr�Z2nP2n0PrL�ÿuĀ�(u￿u𐀀�u􏿿ZnnbPZnPnr��ii@z<stdin>r&Z2Pn2Ps
xxxxxxxxxxrar�r�r`rv)r3r�ro)Qr~rrr�calcobjsizer��check_sizeofr�r��	bytearray�	__alloc__�iter�__closure__r��complexrIrc�datetimeZ	timedeltaZdays�collections�defaultdict�default_factoryr��__add__�__iter__�keys�values�items�object�__dict__�
BaseException�UnicodeEncodeError�UnicodeDecodeError�UnicodeTranslateError�EllipsisrFZencodings.iso8859_3�
charmap_build�	iso8859_3�decoding_tabler��reversed�floatrr�r}rZcurrentframer��co_cellvars�co_freevars�co_stacksize�
co_nlocals�re�finditerr�r�rx�NotImplementedr�r��	frozenset�slice�superrrVrnr�r��er_�g�h�ord�max�chrr%�weakref�ref�proxy)'rrr�ZsamplesZsampler�r�r�r�r�r�ZlongdictrMrFZ	encodingsrZCO_MAXBLOCKSZncellsZnfreesZextrasr�r�r�r�ZPyLong_BASEZ
PySet_MINSIZErZminusedZtmpZnewsizeZfmtr��oZasciifieldsZ
compactfieldsZ
unicodefieldsZmaxchar�Lr�)�	__class__)rurr�r�test_objecttypes�s$
&& "
"$ 	


 
"0"



zSizeofTest.test_objecttypescCsJtj|�tj|�}tj|�r4tj|�r4||j7}|jtj|�|�dS)N)rr�r~rrmZ
is_trackedr�r)rr*�baseZextrar>r
r
r�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>.BArVrnr�N)rVrnr�)r	r
r�	__slots__r
r
r
r�BA�sr�r�c@seZdZdZdS)z SizeofTest.test_slots.<locals>.DrVrnr�N)rVrnr�)r	r
rr�r
r
r
r�D�sr�)r�r�c@seZdZdZdS)z SizeofTest.test_slots.<locals>.LrVrnr�N)rVrnr�)r	r
rr�r
r
r
rr��sr�c@seZdZdZdS)z SizeofTest.test_slots.<locals>.SrVrnr�N)rVrnr�)r	r
rr�r
r
r
rr�src@seZdZdZdS)z!SizeofTest.test_slots.<locals>.FSrVrnr�N)rVrnr�)r	r
rr�r
r
r
r�FS�sr�r)�OrderedDictc@seZdZdZdS)z!SizeofTest.test_slots.<locals>.ODrVrnr�N)rVrnr�)r	r
rr�r
r
r
r�OD�sr�)r�r�r2r�r�r�r�r�)	rrur�r�r�rr�r�r�r
r
r�
test_slots�szSizeofTest.test_slotscCs�tjj}tjj}|j}ddl}||j�|d��yt�Wn6tk
rntj	�d}|dk	rj|||d��YnX|tj
|d�|jttj
��dS)Nrr}r�Z2P2ir)
rrr�r�r��_astZASTrrr.r!r}r�)rr�r�rur��tbr
r
r�test_pythontypes�szSizeofTest.test_pythontypescCs�tj�}|j|j�|j|j�dd�}tj|d�tj�}|j|j|�|j|d|�|j|jd�|j|dd�dd�}tj|d�tj�}|j|j|�|j|d|�|j|j|�|j|d|�tj|�tj�}|j|j�|j|j�dS)NcWsdS)Nr
)rVr
r
r�<lambda>�sz0SizeofTest.test_asyncgen_hooks.<locals>.<lambda>)�	firstiterrr3cWsdS)Nr
)rVr
r
rr��s)�	finalizer)r�get_asyncgen_hooksrCr�r��set_asyncgen_hooksrk)r�oldr�Zhooksr�Zcurr
r
r�test_asyncgen_hooks�s*
zSizeofTest.test_asyncgen_hooks)r	r
rrrrr�r�r�r�r�r�r�r�r��
__classcell__r
r
)r�rr|ds	r|cCstjjtt�dS)N)rrZrun_unittestrr|r
r
r
r�	test_main�sr��__main__)rxZtest.supportrrerrrrr3r~rvrtrNr�rFrmr�r�rzrr�r�ZTestCaserrryr|r�r	r
r
r
r�<module>s@
R