Uname:Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64

403WebShell
403Webshell
Server IP : 3.111.61.48  /  Your IP : 216.73.216.67
Web Server : Apache
System : Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.2.31
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3.10/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.10/test/__pycache__/test_compile.cpython-310.pyc
o

�9jQ��@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlm
Z
Gdd�dej�ZGdd�dej�ZGd	d
�d
ej�ZedkrWe��dSdS)�N)�support)�
script_helper)�FakePathc@seZdZdd�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'krYd(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��Z0e%j&dVdW��Z1e%j&dXdY��Z2dZd[�Z3d\d]�Z4d^d_�Z5e%j&d`da��Z6dbdc�Z7ddde�Z8dfdg�Z9dhdi�Z:djdk�Z;dldm�Z<dndo�Z=dpdq�Z>drds�Z?dtdu�Z@dvdw�ZAdxS)y�
TestSpecificscCst|dd�dS)Nz<single>�single��compile��self�source�r�(/usr/lib/python3.10/test/test_compile.py�compile_single�zTestSpecifics.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_emptyrzTestSpecifics.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__�sureT)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_handlingcC�|�ttddd�dS)Nz1+*3�filenamer�rrrrrrr
�test_syntax_error5�zTestSpecifics.test_syntax_errorcCr()Nz	f(None=1)�<string>rr*rrrr
�test_none_keyword_arg8r,z#TestSpecifics.test_none_keyword_argcC�|�ttd�dS)Nr%�rrrrrrr
�test_duplicate_global_local;�z)TestSpecifics.test_duplicate_global_localcCs,Gdd�d�}|�}t�}td||�|�|jd�ztd||�Wn	ty+Ynw|�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|dkrdSt��N�a�)�KeyError�r
�keyrrr
�__getitem__BszNTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.__getitem__cSs||f|_dSr)�results�r
r8�valuerrr
�__setitem__F�zNTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.__setitem__cSstd�S)N�xyz)�listrrrr
�keysHszGTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.keysN)�__name__�
__module__�__qualname__�__doc__r9r=rArrrr
�M@s
rFzz = a)�zr5zz = bzDid not detect a KeyErrorz	z = dir()rGr?z
z = globals()zz = locals()c@seZdZdZdS)zBTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.AzNon-mappingN)rBrCrDrErrrr
�A]srHc@�eZdZdd�ZdS)zBTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.DcSs|dkrdSt�||�Sr3)�dictr9r7rrr
r9eszNTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.D.__getitem__N)rBrCrDr9rrrr
�Dd�rKr5)
�globalsrr"r:�	NameError�failr@r�	TypeErrorrJ)r
rF�m�grHrK�drrr
�)test_exec_with_general_mapping_for_locals>s2�
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
�longexprrR�coderrr
�test_extended_argms�
zTestSpecifics.test_extended_argcCr/)Nzdef f(a=1, b): passr0rrrr
�test_argument_order�r2z!TestSpecifics.test_argument_ordercCs<|�ttd�|�ttd�|�ttd�|�ttd�dS)N�2ez2.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_indentationcCsJd�dgddg�}t|dd�}|�|jd�|�t|���dg�dS)	Nr�
��spam�fnr�)r�i)�joinrr"�co_firstlinenor@�co_lines)r
�s256�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)�077787�0xjz0x.�0e�090000000000000�080000000000000�000000000000009�000000000000008�0b42�0BADCAFE�0o123456789z0b1.1z0o4.2�0b101j�0o153j�0b100e1�0o777e1�0777�000777�000000000000007�0xff�z0777.i	z0777.0�8000000000000000000000000000000000000000000000000000777e0�0777e1iZ�0e0rz	0000e-012z09.5g#@�0777jyH�@�000�00j�z00.0�0e3z090000000000000.g聰v�Bz&090000000000000.0000000000000000000000�090000000000000e0z090000000000000e-0�090000000000000jy聰v�Bz000000000000008.g @z000000000000009.g"@�0b101010�*z-0b000000000010����0o777i�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 wYt�|d��>|�t��}t|dd�Wd�n1sCwY|j}|�|jd	�|�d
t	|��|�dt	|��Wd�dS1smwYdS)Ni�za = 1
b = 2
c = �3z
d = 4z<long_int_pass>rrez<long_int_fail>�zExceeds the limit z Consider hexadecimal )
r�adjust_int_max_str_digitsrrr�	exceptionr"�lineno�assertIn�str)r
�nr�err_ctx�excrrr
�test_int_literals_too_long�s��"�z(TestSpecifics.test_int_literals_too_longcCs�tjdkrd}|�t|�d�|�td|�d�ntjdkr4d}|�t|�d�|�td|�d	�n|�d
�|�tdtjd�t�|�tdtjd
�t�dS)Ni����
0xffffffffl���-l������������0xffffffffffffffffl����l��������z)How many bits *does* this machine have???z%sre�)�sys�maxsizer"r&rO�assertIsInstance�int)r
�all_one_bitsrrr
�test_unary_minus�s


 zTestSpecifics.test_unary_minusr�c
CsHd}d}d}d}d}d}d}d}|jjjD]}	|	dur!|�|	t�qdS)	Nll����ll����ll����r�l��������)�test_32_63_bit_values�__code__�	co_constsr�r�)
r
r4�b�crS�erVrR�h�variablerrr
r��s��z#TestSpecifics.test_32_63_bit_valuescCs$d\}}|�|d�|�|d�dS)N)re���)r�rerer��r")r
�i�jrrr
�test_sequence_unpacking_error�sz+TestSpecifics.test_sequence_unpacking_errorcCsBgd�}|D]}|d7}|�tt|dd�|�tt|dd�qdS)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 Nonera�tmprrr*)r
�stmts�stmtrrr
�test_none_assignment�s�z"TestSpecifics.test_none_assignmentcCsFgd�}gd�}|D]}t|dd�q
|D]}|�tt|dd�qdS)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
�succeedrOr�rrr
�test_imports�zTestSpecifics.test_importcCs.dd�}|�\}}|�t|j�t|j��dS)NcSsddd�}ddd�}||fS)NrecS�|Srr��xrrr
�<lambda>=�zITestSpecifics.test_for_distinct_code_objects.<locals>.f.<locals>.<lambda>r�cSr�rrr�rrr
r�>r�)re)r�r)�f1�f2rrr
rV<s

z7TestSpecifics.test_for_distinct_code_objects.<locals>.f)�assertNotEqual�idr�)r
rVr�r�rrr
�test_for_distinct_code_objects:s
z,TestSpecifics.test_for_distinct_code_objectscCsdd�}|�|j�dS)NcS�dS)N�foorrrrr
r�Dr�z/TestSpecifics.test_lambda_doc.<locals>.<lambda>)�assertIsNonerE)r
�lrrr
�test_lambda_docCszTestSpecifics.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
rYrrr
�
test_encodingGs&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__`s
z7TestSpecifics.test_subscripts.<locals>.str_map.__init__cSs|jt|�Sr�r�r�r7rrr
r9br>z:TestSpecifics.test_subscripts.<locals>.str_map.__getitem__cSs||jt|�<dSrr�r;rrr
r=dr2z:TestSpecifics.test_subscripts.<locals>.str_map.__setitem__cSs|jt|�=dSrr�r7rrr
�__delitem__frz:TestSpecifics.test_subscripts.<locals>.str_map.__delitem__cSst|�|jvSr)r�r�r7rrr
�__contains__hr>z;TestSpecifics.test_subscripts.<locals>.str_map.__contains__N)rBrCrDr�r9r=r�r�rrrr
�str_map_sr�rer�)rerer�.)..)�objectr"�assertNotIn�slice�Ellipsis)r
r�rSrrr
�test_subscripts\sd
    zTestSpecifics.test_subscriptscCs0d}|d�dd�td�D��;}t|dd�dS)Nzdef f(%s): pass�, css�|]	}d||fVqdS)za%d:%dNr��.0r�rrr
�	<genexpr>���z6TestSpecifics.test_annotation_limit.<locals>.<genexpr>�,rr)rg�rangerr^rrr
�test_annotation_limit�sz#TestSpecifics.test_annotation_limitcCsZGdd�d�}|�d|jjj�|�d|jjj�|�d|jjj�|�d|jjj�dS)Nc@rI)z&TestSpecifics.test_mangling.<locals>.AcSsd}d}ddl}ddl}dS)Nrer�r)�_A__mangled_mod�__package__.module)�_A__mangled�__not_mangled__r��__package__rrr
rV�sz(TestSpecifics.test_mangling.<locals>.A.fN)rBrCrDrVrrrr
rH�rLrHr�r�r�r�)r�rVr��co_varnames)r
rHrrr
�
test_mangling�s
zTestSpecifics.test_manglingc	CsJt}|���d�r|dd�}t|dd��}|��}Wd�n1s$wYddgddgd	d
gddg||gg}|D]7\}}t|d
|d�}t|d|dtj�}|�t	|�tj
k�t|d|d�}|�||�|�|jd|�q<tdddtj�}|�
tt|dd�|�
ttt��dd�t�
�}t��g|_|�
tt|dd�dS)N�pycr�zutf-8)�encodingz<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�_ast�
PyCF_ONLY_AST�
assertTrue�type�Moduler"�co_filenamerrP�If�BoolOp�body)	r
�fnamerV�	fcontents�sample_coderY�co1�ast�co2rrr
�test_compile_ast�s2
��zTestSpecifics.test_compile_astcs:d��fdd�}|�|�|�|�i}|�|ddd��dS)Nrcs�d7��S�Nrerr�r�rr
rV�sz3TestSpecifics.test_dict_evaluation_order.<locals>.fr��)rer�r�)r
rVrSrr�r
�test_dict_evaluation_order�sz(TestSpecifics.test_dict_evaluation_orderc	Cs�dD]}td|d�}|�|jd�qtd�td�fD]$}|�t��td|d�}Wd�n1s2wY|�|jd�q|�ttdt	d�d�dS)N)�file.py�file.py�passrrr)
rr"r��	bytearray�
memoryview�assertWarns�DeprecationWarningrrPr@)r
r)rYr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(): pass�myfiler)rr��
isinstance�types�CodeType�assertIsr�)r
r_r��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�|�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:
   passzc = '''
a=1
b=2
c=3
''')rrrrr
�test_single_statement�s













z#TestSpecifics.test_single_statementcCs^|�d�|�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
zc = '''
d=1
'''
a = 1

b = 2
)rrrrr
�test_bad_single_statements







z'TestSpecifics.test_bad_single_statementc	C�d}t���0}tj�|d�}t|d��
}|�|�Wd�n1s#wYt�|�d}Wd�n1s9wY|�	d|j
�dS)Ns0000
00000000000

�
�bad.py�wbr�	Non-UTF-8��tempfile�TemporaryDirectory�os�pathrgr��writer�run_python_until_endr��err�r
�src�tmpdrd�fp�resrrr
�"test_particularly_evil_undecodable�
��z0TestSpecifics.test_particularly_evil_undecodablec	Cr)Ns#
#�
rrrrrrrrr
�$test_yet_more_evil_still_undecodabler#z2TestSpecifics.test_yet_more_evil_still_undecodablecsdt��d�t��d�t�d��d����fdd�	}|dd�|dd	�|dd
�|dd�dS)
Nr�r�g�?rc	s~||�}t|d|���fD],}|||}d�|||�}�jt|d��t|d|�Wd�n1s7wYqdS)NrzCompiling ({!r} + {!r} * {}))�msg)r�formatr�RecursionError)�prefix�repeated�mode�	expect_ok�depth�broken�details��crash_depth�
fail_depthr
�
success_depthrr
�check_limit4s����z@TestSpecifics.test_compiler_recursion_limit.<locals>.check_limitr4z()z.bz[0]z*a)r)r��getrecursionlimitr�)r
r3rr/r
�test_compiler_recursion_limit's	



z+TestSpecifics.test_compiler_recursion_limitcCs8|�td��tddd�Wd�n1swY|�td��ttd�dd�Wd�n1s5wYttd�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&s123rer��s1234s$23$sax = 123r�r5)�assertRaisesRegex�
ValueErrorrrr"r&rJr)r
rY�	namespacerrr
�test_null_terminatedFs ��z"TestSpecifics.test_null_terminatedcCs>|jjD]
}t|�t|�krdSq|�d||jjf�dS)Nz unable to find constant %r in %r)r�r��reprrO)r
�func�expected�constrrr
�check_constantZs�

�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r�r@r"r<)r?�nsrYr�r�rrr
�check_same_constantis
z?TestSpecifics.test_merge_constants.<locals>.check_same_constantr�sabc�abccSr�)N.rrrrr
r�{r�z4TestSpecifics.test_merge_constants.<locals>.<lambda>cSr�)N�
not a namerrrrr
r��r�cSr�)N�rFrrrrr
r��r�cS�|dvS)N>rGrr�rrr
r���recSrH�N>rrr�rrr
r��rI)rr�r@r�r"r<r��next�iter�	frozensetr�)r
rCr�r��f3rrr
�test_merge_constantsds,
�
�z"TestSpecifics.test_merge_constantscCs<dd�}dd�}|�|jj|jj�|�|jj|jj�dS)NcS�|jjSr)�yrGr�rrr
r��rIz5TestSpecifics.test_merge_code_attrs.<locals>.<lambda>cSrPr)r�r��r4rrr
r��rI)rr��co_linetable�co_code)r
r�r�rrr
�test_merge_code_attrs�sz#TestSpecifics.test_merge_code_attrscCsdd�}|�|jjd�dS)NcSr���	docstringr�rrrrr
r��sz2TestSpecifics.test_strip_unused_consts.<locals>.f1rV)r"r�r�)r
r�rrr
�test_strip_unused_consts�sz&TestSpecifics.test_strip_unused_constscCs(dd�}|�dtt�|��dj�dS)z9Regression test for issue35193 when run under clang msan.cSr�)Nr�)�RuntimeErrorrrrr
�unused_code_at_end��zcTestSpecifics.test_peephole_opt_unreachable_code_array_access_in_bounds.<locals>.unused_code_at_end�RETURN_VALUEr�N)r"r@�dis�get_instructions�opname)r
rZr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|��dSrA)r�assertIsNotr�r�r@r"r<)�const1�const2rBr�r�rrr
�check_different_constants�szJTestSpecifics.test_dont_merge_constants.<locals>.check_different_constantsrrDg�)r)rDr4�arR)recSr�)Nr�rrrrr
r��r�z9TestSpecifics.test_dont_merge_constants.<locals>.<lambda>cSr�)N���rrrrr
r��r�r�rfcSrHrJrr�rrr
r��rIcSrH)N>rDrr�rrr
r��rI)rar�r@r"r<rMr�)r
rdr�r�rrr
�test_dont_merge_constants�s$




z'TestSpecifics.test_dont_merge_constantscCstdtd�d�dS)N�42�test_compile_pathliker)rrrrrr
�test_path_like_objects�sz$TestSpecifics.test_path_like_objectscCstdddd�dS)Nzif a: b
i@
r6rrrrrr
�test_stack_overflow�sz!TestSpecifics.test_stack_overflowcCs�dd�}dd�}dd�}dd�}||||g}|D],}tt�|��}|�t|�d	�|�d
|dj�|�d|dj�|�d|d
j�qdS)NcS�dSrrrrrr
�unused_block_if�r[zPTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_ifcSrlrrrrrr
�unused_block_while�r[zSTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_whilecS�	dSrrrrrr
�unused_block_if_else��zUTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_if_elsecSrorrrrrr
�unused_block_while_else�rqzXTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_while_elser��
LOAD_CONSTr�r\r�)r@r]r^�assertLessEqual�lenr"r_�argval)r
rmrnrprr�funcsr=�opcodesrrr
�)test_dead_blocks_do_not_generate_bytecode�s��z7TestSpecifics.test_dead_blocks_do_not_generate_bytecodecCszdd�}dd�}||g}|D],}tt�|��}|�dt|��|�d|dj�|�d|dj�|�d|d	j�qdS)
NcSrlrrrrrr
�break_in_whiler[z;TestSpecifics.test_false_while_loop.<locals>.break_in_whilecSrlrrrrrr
�continue_in_whiler[z>TestSpecifics.test_false_while_loop.<locals>.continue_in_whiler�rsrr\re)r@r]r^r"rur_rv)r
rzr{rwr=rxrrr
�test_false_while_loop
s�z#TestSpecifics.test_false_while_loopc	Cs�dd�}dd�}dd�}dd�}||||g}|D]9}|j|d	��)tt�|��}|�d
t|��|�d|dj�|�d
|dj�Wd�n1sLwYqdS)NcSr�rrr�rrr
�and_truer[z;TestSpecifics.test_consts_in_conditionals.<locals>.and_truecSr�)NFrr�rrr
�	and_false!r[z<TestSpecifics.test_consts_in_conditionals.<locals>.and_falsecSr�)NTrr�rrr
�or_true$r[z:TestSpecifics.test_consts_in_conditionals.<locals>.or_truecSr�rrr�rrr
�or_false'r[z;TestSpecifics.test_consts_in_conditionals.<locals>.or_false�r=r��LOAD_rr\re)�subTestr@r]r^r"rur�r_)r
r}r~rr�rwr=rxrrr
�test_consts_in_conditionalss���z)TestSpecifics.test_consts_in_conditionalscCs4dd�}|jjd}|dd�|j��D�vsJ�dS)NcSs
t�dSr)�printrrrr
�call5s
z6TestSpecifics.test_lineno_procedure_call.<locals>.callrecSsg|]\}}}|�qSrr�r��_�linerrr
�
<listcomp>:�z<TestSpecifics.test_lineno_procedure_call.<locals>.<listcomp>)r�rhri)r
r��line1rrr
�test_lineno_procedure_call4s z(TestSpecifics.test_lineno_procedure_callc
	s�d��fdd�}�fdd�}�fdd�}�fdd	�}||||g}gd
�}d��fdd�}t||dd
�D])\}}	|j|d��||�|��j�jj|	�Wd�n1sWwYq3dS)NTcs|��r	dSdSrrr���TRUErr
�if1?��z<TestSpecifics.test_lineno_after_implicit_return.<locals>.if1cs|��rdS	dSrrr�r�rr
�if2Csz<TestSpecifics.test_lineno_after_implicit_return.<locals>.if2cs|��rdSdSrrr�r�rr
�if3Isz<TestSpecifics.test_lineno_after_implicit_return.<locals>.if3cs|��s	dSdSrrr�r�rr
�if4Or�z<TestSpecifics.test_lineno_after_implicit_return.<locals>.if4)r�r�r�r�cst�d��dSr�)r��	_getframer)�framerr
�save_caller_frameVszJTestSpecifics.test_lineno_after_implicit_return.<locals>.save_caller_frame��strictr�)�zipr�r"�f_lineno�f_coderh)
r
r�r�r�r�rw�	lastlinesr�r=�lastliner)r�r�r
�!test_lineno_after_implicit_return<s ���z/TestSpecifics.test_lineno_after_implicit_returnc		Cs�dd�}dd�}||fD]F}|j|d��6|j}t|���}|�t|�d�|d\}}}|�|d�|�|t|j��|�||j�Wd�n1sMwYqdS)NcSr�)z
doc stringNrrrrr
�no_code1_r�z9TestSpecifics.test_lineno_after_no_code.<locals>.no_code1cSrlrrrrrr
�no_code2br�z9TestSpecifics.test_lineno_after_no_code.<locals>.no_code2r�rer)r�r�r@rir"rurTrh)	r
r�r�r=rY�lines�start�endr�rrr
�test_lineno_after_no_code^s���z'TestSpecifics.test_lineno_after_no_codec
	s�dd�}gd�}dd�}gd�}dd�}gd	�}d
d�}gd�}||||g}	||||g}
t|	|
d
d�D],\�}|j�d���fdd��j��D�}|�||�Wd�n1sZwYq3dS)NcSstjSr)�or4rrrr
�	load_attrps�z6TestSpecifics.test_lineno_attribute.<locals>.load_attr)r�r�recSs
t�d�S)Nr)r�rQrrrr
�load_methodws
��z8TestSpecifics.test_lineno_attribute.<locals>.load_method)r�r�r�r�recSs
tt_dSr)�vr�r4rrrr
�
store_attr�s�z7TestSpecifics.test_lineno_attribute.<locals>.store_attr)rWr�r�cSstjt7_dSr)r�r4r�rrrr
�aug_store_attr�s
�z;TestSpecifics.test_lineno_attribute.<locals>.aug_store_attr)r�r�rWrer�Tr�r�csg|]\}}}|�jj�qSr�r�rhr�r�rr
r��s�z7TestSpecifics.test_lineno_attribute.<locals>.<listcomp>)r�r�r�rir")
r
r��load_attr_linesr��load_method_linesr��store_attr_linesr��aug_store_attr_linesrw�
func_linesr��
code_linesrr�r
�test_lineno_attributeos*�
����z#TestSpecifics.test_lineno_attributecsBdd��gd�}�jjd}�fdd�|��D�}|�||�dS)NcSsdd�tD�S)Ncss�|]}dVqdS)reNr�r�r�rrr
r��s��zOTestSpecifics.test_line_number_genexp.<locals>.return_genexp.<locals>.<genexpr>)rQrrrr
�
return_genexp�s�z<TestSpecifics.test_line_number_genexp.<locals>.return_genexp)Nrer�rerec�*g|]\}}}|dur
dn|�jj�qSrr�r��r�rr
r����z9TestSpecifics.test_line_number_genexp.<locals>.<listcomp>)r�r�rir")r
�genexp_lines�genexp_coder�rr�r
�test_line_number_genexp�s
�z%TestSpecifics.test_line_number_genexpcs8dd��gd�}�fdd��j��D�}|�||�dS)Nc�s�|2z3dHW}tq6dSr)r�)�aseqr�rrr
�test�s��zLTestSpecifics.test_line_number_implicit_return_after_async_for.<locals>.test)Nrer�recr�rr�r��r�rr
r��r�zRTestSpecifics.test_line_number_implicit_return_after_async_for.<locals>.<listcomp>)r�rir")r
�expected_linesr�rr�r
�0test_line_number_implicit_return_after_async_for�s
�z>TestSpecifics.test_line_number_implicit_return_after_async_forcCs<d}dd�dd�t|�D��d}|�tt|��|�dS)Ni�{�,css�|]
}|�d|��VqdS)�:Nrr�rrr
r��s�z6TestSpecifics.test_big_dict_literal.<locals>.<genexpr>�})rgr�r"rur&)r
�	dict_size�the_dictrrr
�test_big_dict_literal�s z#TestSpecifics.test_big_dict_literalcCsfdd�}d}d}tt�|��D]!\}}|jdkr |�|jd�q|j|vr0|�|j|d|�qdS)NcSs"d}	|dkr|d8}ndSd}q)NreTrr�r)�valrrr
�
if_else_break�s
�zITestSpecifics.test_redundant_jump_in_if_else_break.<locals>.if_else_breakr�)�POP_JUMP_IF_FALSE�POP_JUMP_IF_TRUE�
JUMP_ABSOLUTE�JUMP_FORWARDr�rre)�	enumerater]�Bytecoder_r�r�)r
r��
INSTR_SIZE�
HANDLED_JUMPSr��instrrrr
�$test_redundant_jump_in_if_else_break�s	

��z2TestSpecifics.test_redundant_jump_in_if_else_breakc
s�dD]`\�}d|�d|�d�}ddg}d|��d|�d�d	|�d
�fD]=}t|dd�}d
d�|��D�}�fdd�tt�|�|dd�D�}|�|��|�||�Wd�n1s\wYq$qdS)N))�
COMPARE_OP�<)r�z<=)r��>)r�z>=)�CONTAINS_OP�in)r�znot in)�IS_OP�is)r�zis notza z b z cr�z\
zif \
z: xzx if \
z else yrrcss,�|]\}}}t||d�D]}|Vq
qdS)r�N)r�)r�r��stopr�r�rrr
r��s�
���z7TestSpecifics.test_compare_positions.<locals>.<genexpr>csg|]\}}|j�kr|�qSr�r_)r��instructionr�r�rr
r��s

�z8TestSpecifics.test_compare_positions.<locals>.<listcomp>Tr�)rrir�r]r^r�r")r
�op�exprr�rrY�	all_lines�actual_linesrr�r
�test_compare_positions�s(

��
������z$TestSpecifics.test_compare_positionsN)BrBrCrDrrrrrr$r'r+r.r1rTrZr[r]r`rlr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�cpython_onlyrrrr"r$r5r;r@rOrUrXr`rgrjrkryr|r�r�r�r�r�r�r�r�r�r�rrrr
rs�		/!
/	H
#






,




(
"-
rc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$S)%�TestExpressionStackSize�dcCs>t|t�rt|dd�}t�t�t|j���}|�|j	|�dS)N�<foo>r)
r	r�r�math�ceil�logrurTrt�co_stacksize)r
rY�max_sizerrr
�check_stack_sizes
z(TestExpressionStackSize.check_stack_sizecC�|�d|jd�dS)Nzx and r��r��Nrrrr
�test_and
�z TestExpressionStackSize.test_andcCr�)Nzx or r�r�rrrr
�test_or
r�zTestExpressionStackSize.test_orcCr�)Nzx and x or r�r�rrrr
�test_and_orr�z#TestExpressionStackSize.test_and_orcCr�)Nzx < r�r�rrrr
�test_chained_comparisonr�z/TestExpressionStackSize.test_chained_comparisoncCr�)Nzx if x else r�r�rrrr
�test_if_elser�z$TestExpressionStackSize.test_if_elsecCr�)Nzx + r�r�rrrr
�
test_binopr�z"TestExpressionStackSize.test_binopcC�|�dd|jd�dS)N�[�x, zx]r�rrrr
�	test_list�z!TestExpressionStackSize.test_listcCr�)N�(r�zx)r�rrrr
�
test_tupler�z"TestExpressionStackSize.test_tuplecCr�)Nr�r�zx}r�rrrr
�test_set"r�z TestExpressionStackSize.test_setcCr�)Nr�zx:x, zx:x}r�rrrr
�	test_dict%r�z!TestExpressionStackSize.test_dictcCr�)N�f(r��)r�rrrr
�test_func_args(r�z&TestExpressionStackSize.test_func_argscC�0dd�t|j�D�}|�dd�|�d�dS)Ncs��|]	}d|�d�VqdS�r4z=xNrr�rrr
r�,r�z;TestExpressionStackSize.test_func_kwargs.<locals>.<genexpr>rr�r�r�r�r�rg�r
�kwargsrrr
�test_func_kwargs+�z(TestExpressionStackSize.test_func_kwargscCr�)N�o.m(r�rr�rrrr
�test_meth_args/r�z&TestExpressionStackSize.test_meth_argscCr)Ncsrrrr�rrr
r�3r�z;TestExpressionStackSize.test_meth_kwargs.<locals>.<genexpr>rr�rrrrrr
�test_meth_kwargs2r
z(TestExpressionStackSize.test_meth_kwargscCs d}|d|j7}|�|�dS)Nz
def f(x):
z   x and x
)r�r�r�rrr
�
test_func_and6sz%TestExpressionStackSize.test_func_andcCs d}d|d}t|dd�dS)Ni�zx,z=tr�rr)r
rFrYrrr
�test_stack_3050;sz'TestExpressionStackSize.test_stack_3050N)rBrCrDr�r�r�r�r�r�r�r�r�r�r�r�rr	rr
rrrrrr
r��s&r�c@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|��dkr>ddl}ddl}|��}|j�d�|d	�|�d
|�|��f�dSdS)Ncs>i}d|�}�rd|}t|dd�}t|||�|djS)Nzdef func():
zasync z<script>rr=)rrr�)r�rB�scriptrY)�async_�snippetrr
�compile_snippetGs
z@TestStackSizeStability.check_stack_size.<locals>.compile_snippetcsg|]}�|�j�qSr)r�r�)rrr
r�Pr�z;TestStackSizeStability.check_stack_size.<locals>.<listcomp>r�rWrer)�filez<stack sizes diverge with # of consecutive snippets: %s
%s
%s)r�ru�setr]�io�StringIOrO�getvalue)r
rr�sizesr]r�outr)rrrr
r�Fs	
��z'TestStackSizeStability.check_stack_sizecC�d}|�|�dS)Nz1
            if x:
                a
            �r��r
rrrr
�test_ifX�zTestStackSizeStability.test_ifcCr)Nz{
            if x:
                a
            elif y:
                b
            else:
                c
            rrrrr
r�_sz#TestStackSizeStability.test_if_elsecCr)NzV
            try:
                a
            except:
                b
            rrrrr
�test_try_except_barej�z+TestStackSizeStability.test_try_except_barecCr)Nz�
            try:
                a
            except ImportError:
                b
            except:
                c
            else:
                d
            rrrrr
�test_try_except_qualifieds�
z0TestStackSizeStability.test_try_except_qualifiedcCr)Nz�
            try:
                a
            except ImportError as e:
                b
            except:
                c
            else:
                d
            rrrrr
�test_try_except_as�r$z)TestStackSizeStability.test_try_except_ascCr)Nzg
                try:
                    a
                finally:
                    b
            rrrrr
�test_try_finally�r"z'TestStackSizeStability.test_try_finallycCr)Nz8
            with x as y:
                a
            rrrrr
�	test_with�r z TestStackSizeStability.test_withcCr)NzX
            while x:
                a
            else:
                b
            rrrrr
�test_while_else�r"z&TestStackSizeStability.test_while_elsecCr)Nz7
            for x in y:
                a
            rrrrr
�test_for�r zTestStackSizeStability.test_forcCr)Nz[
            for x in y:
                a
            else:
                b
            rrrrr
�
test_for_else�r"z$TestStackSizeStability.test_for_elsecCr)Nz�
            for x in y:
                if z:
                    break
                elif u:
                    continue
                else:
                    a
            else:
                b
            rrrrr
�test_for_break_continue�sz.TestStackSizeStability.test_for_break_continuecCr)Na6
            for x in y:
                try:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
                finally:
                    f
            else:
                b
            rrrrr
�0test_for_break_continue_inside_try_finally_block��zGTestStackSizeStability.test_for_break_continue_inside_try_finally_blockcCr)Na6
            for x in y:
                try:
                    t
                finally:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            rrrrr
�,test_for_break_continue_inside_finally_block�r-zCTestStackSizeStability.test_for_break_continue_inside_finally_blockcCr)Na5
            for x in y:
                try:
                    t
                except:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            rrrrr
�+test_for_break_continue_inside_except_block�r-zBTestStackSizeStability.test_for_break_continue_inside_except_blockcCr)Na

            for x in y:
                with c:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            rrrrr
�)test_for_break_continue_inside_with_block�sz@TestStackSizeStability.test_for_break_continue_inside_with_blockcCr)Nz�
            try:
                if z:
                    return
                else:
                    a
            finally:
                f
            rrrrr
�$test_return_inside_try_finally_block�	z;TestStackSizeStability.test_return_inside_try_finally_blockcCr)Nz�
            try:
                t
            finally:
                if z:
                    return
                else:
                    a
            rrrrr
� test_return_inside_finally_blockr2z7TestStackSizeStability.test_return_inside_finally_blockcCr)Nz�
            try:
                t
            except:
                if z:
                    return
                else:
                    a
            rrrrr
�test_return_inside_except_blockr2z6TestStackSizeStability.test_return_inside_except_blockcCr)Nz~
            with c:
                if z:
                    return
                else:
                    a
            rrrrr
�test_return_inside_with_block*sz4TestStackSizeStability.test_return_inside_with_blockcC�d}|j|dd�dS)Nz>
            async with x as y:
                a
            T�rrrrrr
�test_async_with4�z&TestStackSizeStability.test_async_withcCr6)Nz=
            async for x in y:
                a
            Tr7rrrrr
�test_async_for;r9z%TestStackSizeStability.test_async_forcCr6)Nza
            async for x in y:
                a
            else:
                b
            Tr7rrrrr
�test_async_for_elseBsz*TestStackSizeStability.test_async_for_elsecCr6)Na
            for x in y:
                async with c:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            Tr7rrrrr
�/test_for_break_continue_inside_async_with_blockKszFTestStackSizeStability.test_for_break_continue_inside_async_with_blockcCr6)Nz�
            async with c:
                if z:
                    return
                else:
                    a
            Tr7rrrrr
�#test_return_inside_async_with_blockZsz:TestStackSizeStability.test_return_inside_async_with_blockN)F)rBrCrDr�rr�r!r#r%r&r'r(r)r*r+r,r.r/r0r1r3r4r5r8r:r;r<r=rrrr
rBs4
	

			
	r�__main__)r]r�r�unittestr�r�rr
r�r�test.supportr�test.support.os_helperr�TestCaserr�rrB�mainrrrr
�<module>s4uF%�

Youez - 2016 - github.com/yon3zu
LinuXploit