Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/__pycache__/test_compile.cpython-39.pyc

a

��gm��@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZmZGdd�dej
�ZGdd�dej
�ZGdd	�d	ej
�Zed
kr�e��dS)�N)�support)�
script_helper�FakePathc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zejd'kr�d(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Z d:d;�Z!d<d=�Z"d>d?�Z#d@dA�Z$e%j&dBdC��Z'dDdE�Z(dFdG�Z)dHdI�Z*dJdK�Z+e%j&dLdM��Z,dNdO�Z-dPdQ�Z.e%j&dRdS��Z/e%j&dTdU��Z0dVdW�Z1dXdY�Z2dZd[�Z3e%j&d\d]��Z4d^d_�Z5d`da�Z6dbS)c�
TestSpecificscCst|dd�dS)Nz<single>�single��compile��self�source�r�-/usr/local/lib/python3.9/test/test_compile.py�compile_singleszTestSpecifics.compile_singlecCs|�t|j|�dS�N)�assertRaises�SyntaxErrorrr	rrr
�assertInvalidSinglesz!TestSpecifics.assertInvalidSinglecCstddd�tddd�dS)N�hi�<test>�execzhi
r�r
rrr
�test_no_ending_newlinesz$TestSpecifics.test_no_ending_newlinecCstddd�dS)N�rrrrrrr
�
test_emptyszTestSpecifics.test_emptycCs4tddd�tddd�tddd�tddd�dS)Nz
rr�
zhi
stuff
def f():
    pass
z(this_is
really_old_mac
def f():
    passrrrrr
�test_other_newlinessz!TestSpecifics.test_other_newlinescCsH|�ttddd�ddl}|j}t|dd�|�d|�t|d|�dS)Nz
__debug__ = 1�?rr�	__debug__ZsureT)rrr�builtinsr�setattr�assertEqual)r
r�prevrrr
�test_debug_assignment!sz#TestSpecifics.test_debug_assignmentcCsX|�ttd�|�ttd�|�ttd�|�ttd�|�ttd�|�ttd�dS)Nzlambda a,a:0zlambda a,a=1:0zlambda a=1,a=1:0zdef f(a, a): passzdef f(a = 0, a = 1): pass�def f(a): global a; a = 1)rr�evalrrrrr
�test_argument_handling*sz$TestSpecifics.test_argument_handlingcCs|�ttddd�dS)Nz1+*3�filenamer�rrrrrrr
�test_syntax_error3szTestSpecifics.test_syntax_errorcCs|�ttddd�dS)Nz	f(None=1)�<string>rr'rrrr
�test_none_keyword_arg6sz#TestSpecifics.test_none_keyword_argcCs|�ttd�dS)Nr#�rrrrrrr
�test_duplicate_global_local9sz)TestSpecifics.test_duplicate_global_localcCs,Gdd�d�}|�}t�}td||�|�|jd�ztd||�WntyVYn0|�d�td||�|�|jdtd	�f�td
||�|�|jd|f�td||�|�|jd|f�|�ttd|�Gdd
�d
�}|�}|�ttd||�Gdd�dt	�}|�}td||�|�|dd�dS)Nc@s(eZdZdZdd�Zdd�Zdd�ZdS)	zBTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.Mz9Test mapping interface versus possible calls from eval().cSs|dkrdSt�dS�N�a�)�KeyError�r
�keyrrr
�__getitem__@szNTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.__getitem__cSs||f|_dSr)�results�r
r2�valuerrr
�__setitem__DszNTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.__setitem__cSstd�S)N�xyz)�listrrrr
�keysFszGTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.keysN)�__name__�
__module__�__qualname__�__doc__r3r7r:rrrr
�M>sr?zz = a)�zr/zz = bzDid not detect a KeyErrorz	z = dir()r@r8z
z = globals()zz = locals()c@seZdZdZdS)zBTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.AzNon-mappingN)r;r<r=r>rrrr
�A[srAc@seZdZdd�ZdS)zBTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.DcSs|dkrdSt�||�Sr-)�dictr3r1rrr
r3cszNTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.D.__getitem__N)r;r<r=r3rrrr
�DbsrCr/)
�globalsrr r4�	NameError�failr9r�	TypeErrorrB)r
r?�m�grArC�drrr
�)test_exec_with_general_mapping_for_locals<s0
z7TestSpecifics.test_exec_with_general_mapping_for_localscCs@ddd}i}d|fd}t||�|�|dd�d�dS)	Nz	x = x or z-xi�	z�
def f(x):
    %s
    %s
    %s
    %s
    %s
    %s
    %s
    %s
    %s
    %s
    # the expressions above have no effect, x == argument
    while x:
        x -= 1
        # EXTENDED_ARG/JUMP_ABSOLUTE here
    return x
�
�f�r)rr )r
ZlongexprrI�coderrr
�test_extended_argks�
zTestSpecifics.test_extended_argcCs|�ttd�dS)Nzdef f(a=1, b): passr+rrrr
�test_argument_order�sz!TestSpecifics.test_argument_ordercCs<|�ttd�|�ttd�|�ttd�|�ttd�dS)NZ2ez2.0e+z1e-z3-4e/21)rrr$rrrr
�test_float_literals�sz!TestSpecifics.test_float_literalscCsd}t|dd�dS)Nz
if 1:
    if 2:
        passr)rr�r
�srrr
�test_indentation�szTestSpecifics.test_indentationcCsDd�dgddg�}t|dd�}|�|jd�|�|jt��dS)Nr�
�Zspam�fnri)�joinrr �co_firstlineno�	co_lnotab�bytes)r
Zs256�corrr
�test_leading_newlines�sz#TestSpecifics.test_leading_newlinescCs�dD]}|�tt|�q|�td�d�|�td�d�|�td�d�|�td�d�|�td�d	�|�td
�d�|�td�d�|�td
�d�|�td�d�|�td�d�|�td�d�|�td�d�|�td�d�|�td�d�|�td�d�|�td�d�|�td�d�|�td�d�|�td�d�|�td�d �|�td!�d"�|�td#�d$�|�td%�d&�|�td'�d(�dS))N)Z077787Z0xjz0x.Z0eZ090000000000000Z080000000000000Z000000000000009Z000000000000008Z0b42Z0BADCAFEZ0o123456789z0b1.1z0o4.2Z0b101j2Z0o153j2Z0b100e1Z0o777e1Z0777Z000777Z000000000000007Z0xff�z0777.i	z0777.0Z8000000000000000000000000000000000000000000000000000777e0Z0777e1iZZ0e0rz	0000e-012z09.5g#@Z0777jyH�@Z000Z00j�z00.0Z0e3z090000000000000.g聰v�Bz&090000000000000.0000000000000000000000Z090000000000000e0z090000000000000e-0Z090000000000000jy聰v�Bz000000000000008.g @z000000000000009.g"@Z0b101010�*z-0b000000000010���Z0o777i�z
-0o0000010i����)rrr$r )r
�argrrr
�!test_literals_with_leading_zeroes�s4z/TestSpecifics.test_literals_with_leading_zeroesc	Cs�d}dd|�d�}t�|��t|dd�Wd�n1s@0Yt�|d��z|�t��}t|dd�Wd�n1s�0Y|j}|�|jd	�|�d
t	|��|�dt	|��Wd�n1s�0YdS)Ni�za = 1
b = 2
c = �3z
d = 4z<long_int_pass>r�z<long_int_fail>�zExceeds the limit z Consider hexadecimal )
rZadjust_int_max_str_digitsrrr�	exceptionr �lineno�assertIn�str)r
�nrZerr_ctx�excrrr
�test_int_literals_too_long�s**z(TestSpecifics.test_int_literals_too_longcCs�tjdkr4d}|�t|�d�|�td|�d�n>tjdkrhd}|�t|�d�|�td|�d	�n
|�d
�|�tdtjd�t�|�tdtjd
�t�dS)Ni���Z
0xffffffffl���-l�����������Z0xffffffffffffffffl����l��������z)How many bits *does* this machine have???z%srf�)�sys�maxsizer r$rF�assertIsInstance�int)r
Zall_one_bitsrrr
�test_unary_minus�s


zTestSpecifics.test_unary_minusrpc
CsHd}d}d}d}d}d}d}d}|jjjD]}	|	dur*|�|	t�q*dS)	Nll����ll����ll����rpl��������)�test_32_63_bit_values�__code__�	co_constsrtru)
r
r.�b�crJ�erMrI�h�variablerrr
rw�sz#TestSpecifics.test_32_63_bit_valuescCs(dpd\}}|�|d�|�|d�dS)N)rf���)rrfrfr�r )r
�i�jrrr
�test_sequence_unpacking_error�sz+TestSpecifics.test_sequence_unpacking_errorcCsBgd�}|D]0}|d7}|�tt|dd�|�tt|dd�qdS)N)zNone = 0z	None += 0z__builtins__.None = 0zdef None(): passzclass None: passz(a, None) = 0, 0zfor None in range(10): passzdef f(None): passzimport Nonezimport x as Nonezfrom x import Nonezfrom x import y as NonerV�tmprrr')r
Zstmts�stmtrrr
�test_none_assignment�s
z"TestSpecifics.test_none_assignmentcCsFgd�}gd�}|D]}t|dd�q|D]}|�tt|dd�q*dS)N)z
import syszimport os, syszimport os as barzimport os.path as barz0from __future__ import nested_scopes, generatorsz2from __future__ import (nested_scopes,
generators)z3from __future__ import (nested_scopes,
generators,)z%from sys import stdin, stderr, stdoutz'from sys import (stdin, stderr,
stdout)z(from sys import (stdin, stderr,
stdout,)z(from sys import (stdin
, stderr, stdout)z)from sys import (stdin
, stderr, stdout,)z7from sys import stdin as si, stdout as so, stderr as sez9from sys import (stdin as si, stdout as so, stderr as se)z:from sys import (stdin as si, stdout as so, stderr as se,))zimport (os, sys)zimport (os), (sys)zimport ((os), (sys))zimport (syszimport sys)zimport (os,)zimport os As barzimport os.path a barzfrom sys import stdin As stdoutzfrom sys import stdin a stdoutzfrom (sys) import stdinz%from __future__ import (nested_scopesz%from __future__ import nested_scopes)z0from __future__ import nested_scopes,
generatorszfrom sys import (stdinzfrom sys import stdin)z%from sys import stdin, stdout,
stderrzfrom sys import stdin sizfrom sys import stdin,zfrom sys import (*)z(from sys import (stdin,, stdout, stderr)z from sys import (stdin, stdout),r�r)rrr)r
ZsucceedrFr�rrr
�test_import	szTestSpecifics.test_importcCs.dd�}|�\}}|�t|j�t|j��dS)NcSsddd�}ddd�}||fS)NrfcSs|Srr��xrrr
�<lambda>;�zITestSpecifics.test_for_distinct_code_objects.<locals>.f.<locals>.<lambda>rqcSs|Srrr�rrr
r�<r�)rf)rqr)�f1�f2rrr
rM:s

z7TestSpecifics.test_for_distinct_code_objects.<locals>.f)�assertNotEqual�idrx)r
rMr�r�rrr
�test_for_distinct_code_objects8s
z,TestSpecifics.test_for_distinct_code_objectscCsdd�}|�|j�dS)NcSsdS)NZfoorrrrr
r�Br�z/TestSpecifics.test_lambda_doc.<locals>.<lambda>)ZassertIsNoner>)r
�lrrr
�test_lambda_docAszTestSpecifics.test_lambda_doccCs�d}|�tt|dd�d}t|dd�|�t|�d�d}|�t|�d�d}|�t|�d�d	}|�t|�d�d
}|�t|�d�d}|�t|�d�d
}|�t|�d�d}|�t|�d�dS)Ns## -*- coding: badencoding -*-
pass
r�ru%# -*- coding: badencoding -*-
"¤"
u¤u"¤"
s"¤"
�¤s# -*- coding: latin1 -*-
"¤"
s# -*- coding: utf-8 -*-
"¤"
s"# -*- coding: iso8859-15 -*-
"¤"
u€u*"""\
# -*- coding: iso8859-15 -*-
¤"""
u!# -*- coding: iso8859-15 -*-
¤s("""\
# -*- coding: iso8859-15 -*-
¤"""
u# -*- coding: iso8859-15 -*-
¤)rrrr r$�r
rOrrr
�
test_encodingEs&zTestSpecifics.test_encodingcCs^Gdd�dt�}|�}d|d<|�|dd�|dd7<|�|dd�|d=|�d|�d|d<|�|dd�|dd7<|�|dd�|d=|�d|�d|dd�<|�|dd�d�|dd�d7<|�|dd�d�|dd�=|�tdd�|�d|dd�dd�f<|�|dd�dd�fd�|dd�dd�fd7<|�|dd�dd�fd�|dd�dd�f=|�tdd�tdd�f|�d|ddd�<|�|ddd�d�|ddd�d7<|�|ddd�d�|ddd�=|�tddd�|�d|ddd�ddd�f<|�|ddd�ddd�fd�|ddd�ddd�fd7<|�|ddd�ddd�fd�|ddd�ddd�f=|�tddd�tddd�f|�d|d<|�|dd�|dd7<|�|dd�|d=|�t|�d|d<|�|dd�|dd7<|�|dd�|d=|�ttf|�dS)	Nc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)z.TestSpecifics.test_subscripts.<locals>.str_mapcSs
i|_dSr)�datarrrr
�__init__^sz7TestSpecifics.test_subscripts.<locals>.str_map.__init__cSs|jt|�Sr�r�rkr1rrr
r3`sz:TestSpecifics.test_subscripts.<locals>.str_map.__getitem__cSs||jt|�<dSrr�r5rrr
r7bsz:TestSpecifics.test_subscripts.<locals>.str_map.__setitem__cSs|jt|�=dSrr�r1rrr
�__delitem__dsz:TestSpecifics.test_subscripts.<locals>.str_map.__delitem__cSst|�|jvSr)rkr�r1rrr
�__contains__fsz;TestSpecifics.test_subscripts.<locals>.str_map.__contains__N)r;r<r=r�r3r7r�r�rrrr
�str_map]s
r�rfrq)rfrfrg.)..)�objectr ZassertNotIn�slice�Ellipsis)r
r�rJrrr
�test_subscriptsZsd
    zTestSpecifics.test_subscriptscCs0d}|d�dd�td�D��;}t|dd�dS)Nzdef f(%s): passz, css|]}d||fVqdS)za%d:%dNr��.0r�rrr
�	<genexpr>�r�z6TestSpecifics.test_annotation_limit.<locals>.<genexpr>i,rr)rY�rangerrSrrr
�test_annotation_limit�sz#TestSpecifics.test_annotation_limitcCsZGdd�d�}|�d|jjj�|�d|jjj�|�d|jjj�|�d|jjj�dS)Nc@seZdZdd�ZdS)z&TestSpecifics.test_mangling.<locals>.AcSsd}d}ddl}ddl}dS)Nrfrqr)�_A__mangled_modZ__package__.module)�_A__mangled�__not_mangled__r��__package__rrr
rM�sz(TestSpecifics.test_mangling.<locals>.A.fN)r;r<r=rMrrrr
rA�srAr�r�r�r�)rjrMrx�co_varnames)r
rArrr
�
test_mangling�s
zTestSpecifics.test_manglingc	CsHt}|���d�r|dd�}t|d��}|��}Wd�n1sF0Yddgddgdd	gd
dg||gg}|D]n\}}t|d|d
�}t|d|d
tj�}|�t	|�tj
k�t|d|d
�}|�||�|�|jd|�qvtddd
tj�}|�
tt|dd�|�
ttt��dd
�t�
�}t��g|_|�
tt|dd
�dS)NZpycr�rz<assign>zx = 5z	<ifblock>zif True:
    pass
z
<forblock>z!for n in [1, 2, 3]:
    print(n)
z	<deffunc>zdef foo():
    pass
foo()
z%s1rz%s2z%s3zprint(1)r)z<ast>r$)�__file__�lower�endswith�open�readr�_astZ
PyCF_ONLY_AST�
assertTrue�typeZModuler �co_filenamerrGZIfZBoolOp�body)	r
ZfnamerMZ	fcontentsZsample_coderOZco1�astZco2rrr
�test_compile_ast�s0&�zTestSpecifics.test_compile_astcs:d��fdd�}|�|�|�|�i}|�|ddd��dS)Nrcs�d7��S)Nrfrr�r�rr
rM�sz3TestSpecifics.test_dict_evaluation_order.<locals>.frq�)rfrgr�)r
rMrJrr�r
�test_dict_evaluation_order�sz(TestSpecifics.test_dict_evaluation_orderc	Cs�dD]}td|d�}|�|jd�qtd�td�fD]H}|�t��td|d�}Wd�n1sd0Y|�|jd�q4|�ttdt	d�d�dS)N)�file.py�file.py�passrr�r�)
rr r��	bytearray�
memoryviewZassertWarns�DeprecationWarningrrGr9)r
r&rOrrr
�test_compile_filename�s*z#TestSpecifics.test_compile_filenamecCs<d}t|dd�}|jD] }t|tj�r|�|j|j�qdS)Nzdef f(): pass
def g(): passZmyfiler)rry�
isinstance�types�CodeType�assertIsr�)r
rTr{�objrrr
�test_same_filename_used�s

z%TestSpecifics.test_same_filename_usedcCs�|�d�|�d�|�d�|�d�|�d�|�d�|�d�|�d�|�d	�|�d
�|�d�|�d�|�d
�|�d�dS)Nz1 + 2z
1 + 2z1 + 2
z1 + 2

z1 + 2		
z1 + 2		
        z1 + 2 # one plus twoz1; 2zimport sys; syszdef f():
   passzwhile False:
   passz
if x:
   f(x)zif x:
   f(x)
else:
   g(x)zclass T:
   pass)rrrrr
�test_single_statement�s












z#TestSpecifics.test_single_statementcCsT|�d�|�d�|�d�|�d�|�d�|�d�|�d�|�d�dS)	Nz1
2z
def f(): passza = 13
b = 187zdel x
del yzf()
g()zf()
# blah
blah()zf()
xy # blah
blah()zx = 5 # comment
x = 6
)rrrrr
�test_bad_single_statements






z'TestSpecifics.test_bad_single_statementc	Cs�d}t���`}tj�|d�}t|d��}|�|�Wd�n1sF0Yt�|�d}Wd�n1sr0Y|�	d|j
�dS)Ns0000
00000000000

�
�bad.py�wbr�	Non-UTF-8��tempfile�TemporaryDirectory�os�pathrYr��writerZrun_python_until_endrj�err�r
�srcZtmpdrX�fp�resrrr
�"test_particularly_evil_undecodables
(,z0TestSpecifics.test_particularly_evil_undecodablec	Cs�d}t���`}tj�|d�}t|d��}|�|�Wd�n1sF0Yt�|�d}Wd�n1sr0Y|�	d|j
�dS)Ns#
#�
r�r�rr�r�r�rrr
�$test_yet_more_evil_still_undecodables
(,z2TestSpecifics.test_yet_more_evil_still_undecodablecsTt��d�t�d�����fdd�}|dd�|dd�|dd�|dd	�dS)
Nrgg�?csl||�}��|�||�}d�||��}�jt|d����|�Wd�n1s^0YdS)NzCompiling ({!r} + {!r} * {}))�msg)r�formatr�RecursionError)�prefixZrepeatedZ	expect_ok�broken�details�Z
fail_depthr
Z
success_depthrr
�check_limit/s
�z@TestSpecifics.test_compiler_recursion_limit.<locals>.check_limitr.z()z.bz[0]z*a)rr�getrecursionlimitru)r
r�rr�r
�test_compiler_recursion_limit#s		


z+TestSpecifics.test_compiler_recursion_limitcCs8|�td��tddd�Wd�n1s.0Y|�td�� ttd�dd�Wd�n1sj0Yttd�dd�dd�}|�t|�d�ttd	�dd�dd�}|�t|�d�ttd
�dd�dd�}|�t|�d�|�ttd	�dd��d�t�}ttd�dd�|�|�|dd
�dS)Nzcannot contain nullz123�<dummy>r$s123rfr�s1234s$23$sax = 123r�r/)ZassertRaisesRegex�
ValueErrorrr�r r$rBr)r
rO�	namespacerrr
�test_null_terminated=s*.z"TestSpecifics.test_null_terminatedcCs<|jjD]}t|�t|�krq8q|�d||jjf�dS)Nz unable to find constant %r in %r)rxry�reprrF)r
�funcZexpected�constrrr
�check_constantQs
�zTestSpecifics.check_constantcs�fdd�}|d�|d�|d�|d�|d�dd�dd�}}��|j|j���|t���t|��tt��d	d�d
d�}}dd�}��|jjd|jjdd���tt|jjd��|jjd�d
d�d
d�}}��|j|j���|t	dh����
|d��dS)Ncs`i}d||f}t||�|d}|d}��|j|j���||���t|��t|��dS�Nzf1, f2 = lambda: %r, lambda: %rr�r�)rr�rxr�r r�)r��nsrOr�r�rrr
�check_same_constant`s
z?TestSpecifics.test_merge_constants.<locals>.check_same_constantr�sabc�abccSsdS)N.rrrrr
r�rr�z4TestSpecifics.test_merge_constants.<locals>.<lambda>cSsdS)N�
not a namerrrrr
r�xr�cSsdS)N�r�rrrrr
r�xr�cSs|dvS)N>r�rr�rrr
r�yr�rfcSs|dvS�N>rrr�rrr
r��r�)r�rxr�r�r r�ry�next�iter�	frozensetr�)r
r�r�r�Zf3rrr
�test_merge_constants[s,
�
�z"TestSpecifics.test_merge_constantscCs(dd�}|�dtt�|��dj�dS)z9Regression test for issue35193 when run under clang msan.cSsdS)NrgZunreachable)�RuntimeErrorrrrr
�unused_code_at_end�szcTestSpecifics.test_peephole_opt_unreachable_code_array_access_in_bounds.<locals>.unused_code_at_end�RETURN_VALUErN)r r9�dis�get_instructions�opname)r
r�rrr
�9test_peephole_opt_unreachable_code_array_access_in_bounds�s
�zGTestSpecifics.test_peephole_opt_unreachable_code_array_access_in_boundscs
�fdd�}|dd�|dd�|dd�|dd	�|d
d�dd
�dd
�}}��|j|j���|d���|d���t|��td����t|��td��dd
�dd
�}}��|j|j���|tdh����|tdh����|d����|d��dS)Ncs�i}td||f|�|d}|d}��|j|j���|j|j���||���||���t|��t|����t|��t|��dSr�)r�assertIsNotrxr�r�r r�)Zconst1Zconst2r�r�r�rrr
�check_different_constants�szJTestSpecifics.test_dont_merge_constants.<locals>.check_different_constantsrr�g�)r)r�r.�a)r.)rcSsdS)Nr`rrrrr
r��r�z9TestSpecifics.test_dont_merge_constants.<locals>.<lambda>cSsdS)N���rrrrr
r��r�r`rcSs|dvSr�rr�rrr
r��r�cSs|dvS)N>r�rr�rrr
r��r�)rrxr�r r�r�r�)r
rr�r�rrr
�test_dont_merge_constants�s$




z'TestSpecifics.test_dont_merge_constantscCstdtd�d�dS)NZ42Ztest_compile_pathliker)rrrrrr
�test_path_like_objects�sz$TestSpecifics.test_path_like_objectscCstdddd�dS)Nzif a: b
i@
r�rrrrrr
�test_stack_overflow�sz!TestSpecifics.test_stack_overflowcCs�dd�}dd�}dd�}dd�}||||g}|D]X}tt�|��}|�d	t|��|�d
|dj�|�d|dj�|�d|d
j�q0dS)NcSsdSrrrrrr
�unused_block_if�szPTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_ifcSsdSrrrrrr
�unused_block_while�szSTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_whilecSsdSrrrrrr
�unused_block_if_else�szUTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_if_elsecSsdS)Nrarrrrr
�unused_block_while_else�szXTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_while_elserq�
LOAD_CONSTrr�rf�r9r�r�r �lenr�Zargval)r
rrr	r
�funcsr��opcodesrrr
�)test_dead_blocks_do_not_generate_bytecode�s�z7TestSpecifics.test_dead_blocks_do_not_generate_bytecodecCszdd�}dd�}||g}|D]X}tt�|��}|�dt|��|�d|dj�|�d|dj�|�d|d	j�qdS)
NcSsdSrrrrrr
�break_in_while�sz;TestSpecifics.test_false_while_loop.<locals>.break_in_whilecSsdSrrrrrr
�continue_in_while�sz>TestSpecifics.test_false_while_loop.<locals>.continue_in_whilerqrrr�rfr)r
rrrr�rrrr
�test_false_while_loop�sz#TestSpecifics.test_false_while_loopcCs<d}dd�dd�t|�D��d}|�tt|��|�dS)Ni�{�,css|]}|�d|��VqdS)�:Nr)r�r�rrr
r�r�z6TestSpecifics.test_big_dict_literal.<locals>.<genexpr>�})rYr�r r
r$)r
Z	dict_sizeZthe_dictrrr
�test_big_dict_literal�s z#TestSpecifics.test_big_dict_literalN)7r;r<r=rrrrrr"r%r(r*r,rKrPrQrRrUr^rdrnrvrrrsrwr�r�r�r�r�r�r�r�r�r�r�r�rZcpython_onlyr�r�r�r�r�r�r�r�r�r�rrrrrrrrrr
rsl		/!

/	H
#







.

(
rc@sPeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)�TestExpressionStackSize�dcCs>t|t�rt|dd�}t�t�t|j���}|�|j	|�dS)Nz<foo>r)
r�rkr�math�ceil�logr
�co_codeZassertLessEqual�co_stacksize)r
rO�max_sizerrr
�check_stack_sizes
z(TestExpressionStackSize.check_stack_sizecCs|�d|jd�dS)Nzx and r��r!�Nrrrr
�test_andsz TestExpressionStackSize.test_andcCs|�d|jd�dS)Nzx or r�r"rrrr
�test_orszTestExpressionStackSize.test_orcCs|�d|jd�dS)Nzx and x or r�r"rrrr
�test_and_orsz#TestExpressionStackSize.test_and_orcCs|�d|jd�dS)Nzx < r�r"rrrr
�test_chained_comparisonsz/TestExpressionStackSize.test_chained_comparisoncCs|�d|jd�dS)Nzx if x else r�r"rrrr
�test_if_else"sz$TestExpressionStackSize.test_if_elsecCs|�d|jd�dS)Nzx + r�r"rrrr
�
test_binop%sz"TestExpressionStackSize.test_binopcCs d}|d|j7}|�|�dS)Nz
def f(x):
z   x and x
)r#r!r�rrr
�
test_func_and(sz%TestExpressionStackSize.test_func_andN)r;r<r=r#r!r$r%r&r'r(r)r*rrrr
rsrc@s�eZdZd5dd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4S)6�TestStackSizeStabilityFcs|��fdd���fdd�tdd�D�}tt|��dkrxddl}ddl}|��}|j�d�|d	�|�d
|�|��f�dS)Ncs>i}d|�}�rd|}t|dd�}t|||�|djS)Nzdef func():
zasync z<script>rr�)rrrx)r�r�ZscriptrO)�async_�snippetrr
�compile_snippet3sz@TestStackSizeStability.check_stack_size.<locals>.compile_snippetcsg|]}�|�j�qSr)rr�)r.rr
�
<listcomp><r�z;TestStackSizeStability.check_stack_size.<locals>.<listcomp>rqrNrfr)�filez<stack sizes diverge with # of consecutive snippets: %s
%s
%s)r�r
�setr��io�StringIOrF�getvalue)r
r-r,Zsizesr�r2�outr)r,r.r-r
r!2s	�z'TestStackSizeStability.check_stack_sizecCsd}|�|�dS)Nz1
            if x:
                a
            �r!�r
r-rrr
�test_ifDszTestStackSizeStability.test_ifcCsd}|�|�dS)Nz{
            if x:
                a
            elif y:
                b
            else:
                c
            r6r7rrr
r(Ksz#TestStackSizeStability.test_if_elsecCsd}|�|�dS)NzV
            try:
                a
            except:
                b
            r6r7rrr
�test_try_except_bareVsz+TestStackSizeStability.test_try_except_barecCsd}|�|�dS)Nz�
            try:
                a
            except ImportError:
                b
            except:
                c
            else:
                d
            r6r7rrr
�test_try_except_qualified_s
z0TestStackSizeStability.test_try_except_qualifiedcCsd}|�|�dS)Nz�
            try:
                a
            except ImportError as e:
                b
            except:
                c
            else:
                d
            r6r7rrr
�test_try_except_asls
z)TestStackSizeStability.test_try_except_ascCsd}|�|�dS)Nzg
                try:
                    a
                finally:
                    b
            r6r7rrr
�test_try_finallyysz'TestStackSizeStability.test_try_finallycCsd}|�|�dS)Nz8
            with x as y:
                a
            r6r7rrr
�	test_with�sz TestStackSizeStability.test_withcCsd}|�|�dS)NzX
            while x:
                a
            else:
                b
            r6r7rrr
�test_while_else�sz&TestStackSizeStability.test_while_elsecCsd}|�|�dS)Nz7
            for x in y:
                a
            r6r7rrr
�test_for�szTestStackSizeStability.test_forcCsd}|�|�dS)Nz[
            for x in y:
                a
            else:
                b
            r6r7rrr
�
test_for_else�sz$TestStackSizeStability.test_for_elsecCsd}|�|�dS)Nz�
            for x in y:
                if z:
                    break
                elif u:
                    continue
                else:
                    a
            else:
                b
            r6r7rrr
�test_for_break_continue�sz.TestStackSizeStability.test_for_break_continuecCsd}|�|�dS)Na6
            for x in y:
                try:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
                finally:
                    f
            else:
                b
            r6r7rrr
�0test_for_break_continue_inside_try_finally_block�szGTestStackSizeStability.test_for_break_continue_inside_try_finally_blockcCsd}|�|�dS)Na6
            for x in y:
                try:
                    t
                finally:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            r6r7rrr
�,test_for_break_continue_inside_finally_block�szCTestStackSizeStability.test_for_break_continue_inside_finally_blockcCsd}|�|�dS)Na5
            for x in y:
                try:
                    t
                except:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            r6r7rrr
�+test_for_break_continue_inside_except_block�szBTestStackSizeStability.test_for_break_continue_inside_except_blockcCsd}|�|�dS)Na

            for x in y:
                with c:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            r6r7rrr
�)test_for_break_continue_inside_with_block�sz@TestStackSizeStability.test_for_break_continue_inside_with_blockcCsd}|�|�dS)Nz�
            try:
                if z:
                    return
                else:
                    a
            finally:
                f
            r6r7rrr
�$test_return_inside_try_finally_block�s	z;TestStackSizeStability.test_return_inside_try_finally_blockcCsd}|�|�dS)Nz�
            try:
                t
            finally:
                if z:
                    return
                else:
                    a
            r6r7rrr
� test_return_inside_finally_block�s	z7TestStackSizeStability.test_return_inside_finally_blockcCsd}|�|�dS)Nz�
            try:
                t
            except:
                if z:
                    return
                else:
                    a
            r6r7rrr
�test_return_inside_except_block
s	z6TestStackSizeStability.test_return_inside_except_blockcCsd}|�|�dS)Nz~
            with c:
                if z:
                    return
                else:
                    a
            r6r7rrr
�test_return_inside_with_blocksz4TestStackSizeStability.test_return_inside_with_blockcCsd}|j|dd�dS)Nz>
            async with x as y:
                a
            T�r,r6r7rrr
�test_async_with sz&TestStackSizeStability.test_async_withcCsd}|j|dd�dS)Nz=
            async for x in y:
                a
            TrJr6r7rrr
�test_async_for'sz%TestStackSizeStability.test_async_forcCsd}|j|dd�dS)Nza
            async for x in y:
                a
            else:
                b
            TrJr6r7rrr
�test_async_for_else.sz*TestStackSizeStability.test_async_for_elsecCsd}|j|dd�dS)Na
            for x in y:
                async with c:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            TrJr6r7rrr
�/test_for_break_continue_inside_async_with_block7szFTestStackSizeStability.test_for_break_continue_inside_async_with_blockcCsd}|j|dd�dS)Nz�
            async with c:
                if z:
                    return
                else:
                    a
            TrJr6r7rrr
�#test_return_inside_async_with_blockFsz:TestStackSizeStability.test_return_inside_async_with_blockN)F)r;r<r=r!r8r(r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrKrLrMrNrOrrrr
r+.s2
	

			
	r+�__main__)r�rr�Zunittestrrr�r�r��testrZtest.supportrrZTestCaserrr+r;�mainrrrr
�<module>s,&%

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists