asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T a bYhm@sddlZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z m Z Gdddej ZGdddej ZGdd d ej Zed kredS) N)support) script_helperFakePathc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zejd'krd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Z d:d;Z!dd?Z#d@dAZ$e%j&dBdCZ'dDdEZ(dFdGZ)dHdIZ*dJdKZ+e%j&dLdMZ,dNdOZ-dPdQZ.e%j&dRdSZ/e%j&dTdUZ0dVdWZ1dXdYZ2dZd[Z3e%j&d\d]Z4d^d_Z5d`daZ6dbS)c TestSpecificscCst|dddS)Nzsinglecompileselfsourcer -/usr/local/lib/python3.9/test/test_compile.pycompile_singleszTestSpecifics.compile_singlecCs|t|j|dSN) assertRaises SyntaxErrorrr r r r assertInvalidSinglesz!TestSpecifics.assertInvalidSinglecCstdddtddddS)Nhiexeczhi rr r r r test_no_ending_newlines z$TestSpecifics.test_no_ending_newlinecCstddddS)Nrrrrr r r test_emptyszTestSpecifics.test_emptycCs4tdddtdddtdddtddddS)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|ttdddddl}|j}t|dd|d|t|d|dS)Nz __debug__ = 1?rr __debug__ZsureT)rrrbuiltinsrsetattr assertEqual)r rprevr r r test_debug_assignment!s   z#TestSpecifics.test_debug_assignmentcCsX|ttd|ttd|ttd|ttd|ttd|ttddS)Nz lambda a,a:0zlambda a,a=1:0zlambda a=1,a=1:0zdef f(a, a): passzdef f(a = 0, a = 1): passdef f(a): global a; a = 1)rrevalrrr r r test_argument_handling*s z$TestSpecifics.test_argument_handlingcCs|ttddddS)Nz1+*3filenamerrrrrr r r test_syntax_error3szTestSpecifics.test_syntax_errorcCs|ttddddS)Nz f(None=1)rr'rr r r test_none_keyword_arg6sz#TestSpecifics.test_none_keyword_argcCs|ttddS)Nr#rrrrr r r test_duplicate_global_local9sz)TestSpecifics.test_duplicate_global_localcCs,Gddd}|}t}td||||jdztd||WntyVYn 0|dtd||||jdtd ftd ||||jd|ftd ||||jd|f|ttd|Gd d d }|}|ttd||Gdddt }|}td||||dddS)Nc@s(eZdZdZddZddZddZdS) zBTestSpecifics.test_exec_with_general_mapping_for_locals..Mz9Test mapping interface versus possible calls from eval().cSs|dkr dStdSNa )KeyErrorr keyr r r __getitem__@szNTestSpecifics.test_exec_with_general_mapping_for_locals..M.__getitem__cSs||f|_dSr)resultsr r2valuer r r __setitem__DszNTestSpecifics.test_exec_with_general_mapping_for_locals..M.__setitem__cSstdS)Nxyz)listrr r r keysFszGTestSpecifics.test_exec_with_general_mapping_for_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..Az Non-mappingN)r;r<r=r>r r r r A[srAc@seZdZddZdS)zBTestSpecifics.test_exec_with_general_mapping_for_locals..DcSs|dkr dSt||Sr-)dictr3r1r r r r3cszNTestSpecifics.test_exec_with_general_mapping_for_locals..D.__getitem__N)r;r<r=r3r r r r DbsrCr/) globalsrr r4 NameErrorfailr9r TypeErrorrB)r r?mgrArCdr r r )test_exec_with_general_mapping_for_locals<s0        z7TestSpecifics.test_exec_with_general_mapping_for_localscCs@ddd}i}d|fd}t||||ddddS) 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 fr)rr )r ZlongexprrIcoder r r test_extended_argks  zTestSpecifics.test_extended_argcCs|ttddS)Nzdef f(a=1, b): passr+rr r r test_argument_ordersz!TestSpecifics.test_argument_ordercCs<|ttd|ttd|ttd|ttddS)NZ2ez2.0e+z1e-z3-4e/21)rrr$rr r r test_float_literalssz!TestSpecifics.test_float_literalscCsd}t|dddS)Nz if 1: if 2: passr)rrr sr r r test_indentationszTestSpecifics.test_indentationcCsDddgddg}t|dd}||jd||jtdS)Nr Zspamfnri)joinrr co_firstlineno co_lnotabbytes)r Zs256cor r r test_leading_newliness z#TestSpecifics.test_leading_newlinescCsdD]}|tt|q|tdd|tdd|tdd|tdd|tdd |td d |td d |td d|tdd|tdd |tdd|tdd |tdd |tdd|tdd|tdd|tdd|tdd|tdd|tdd |td!d"|td#d$|td%d&|td'd(dS))N)Z077787Z0xjz0x.Z0eZ090000000000000Z080000000000000Z000000000000009Z000000000000008Z0b42Z0BADCAFEZ 0o123456789z0b1.1z0o4.2Z0b101j2Z0o153j2Z0b100e1Z0o777e1Z0777Z000777Z000000000000007Z0xffz0777.i z0777.0Z8000000000000000000000000000000000000000000000000000777e0Z0777e1iZZ0e0rz 0000e-012z09.5g#@Z0777jyH@Z000Z00jz00.0Z0e3z090000000000000.g聰vBz&090000000000000.0000000000000000000000Z090000000000000e0z090000000000000e-0Z090000000000000jy聰vBz000000000000008.g @z000000000000009.g"@Z0b101010*z-0b000000000010Z0o777iz -0o0000010i)rrr$r )r argr r r !test_literals_with_leading_zeroess4z/TestSpecifics.test_literals_with_leading_zeroesc Csd}dd|d}t|t|ddWdn1s@0Yt|dz|t}t|ddWdn1s0Y|j}||jd |d t ||d t |Wdn1s0YdS) Ni za = 1 b = 2 c = 3z d = 4zrzzExceeds the limit z Consider hexadecimal ) rZadjust_int_max_str_digitsrrr exceptionr linenoassertInstr)r nr Zerr_ctxexcr r r test_int_literals_too_longs * *z(TestSpecifics.test_int_literals_too_longcCstjdkr4d}|t|d|td|dn>tjdkrhd}|t|d|td|d n |d |td tj d t|td tj d tdS)NiZ 0xffffffffl-lZ0xffffffffffffffffllz)How many bits *does* this machine have???z%srf)sysmaxsizer r$rFassertIsInstanceint)r Z all_one_bitsr r r test_unary_minuss   zTestSpecifics.test_unary_minusrpc CsHd}d}d}d}d}d}d}d}|jjjD]} | dur*|| tq*dS) Nllllllrpl)test_32_63_bit_values__code__ co_constsrtru) r r.bcrJerMrIhvariabler r r rwsz#TestSpecifics.test_32_63_bit_valuescCs(dpd\}}||d||ddS)N)rf)rrfrfrr )r ijr r r test_sequence_unpacking_errors  z+TestSpecifics.test_sequence_unpacking_errorcCsBgd}|D]0}|d7}|tt|dd|tt|ddq dS)N) zNone = 0z None += 0z__builtins__.None = 0zdef None(): passzclass None: passz(a, None) = 0, 0zfor None in range(10): passzdef f(None): passz import Nonezimport x as Nonezfrom x import Nonezfrom x import y as NonerVtmprrr')r Zstmtsstmtr r r test_none_assignments z"TestSpecifics.test_none_assignmentcCsFgd}gd}|D]}t|ddq|D]}|tt|ddq*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))z import (sysz import 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),rr)rrr)r ZsucceedrFrr r r test_import s zTestSpecifics.test_importcCs.dd}|\}}|t|jt|jdS)NcSsddd}ddd}||fS)NrfcSs|Srr xr r r ;zITestSpecifics.test_for_distinct_code_objects..f..rqcSs|Srr rr r r r<r)rf)rqr )f1f2r r r rM:s  z7TestSpecifics.test_for_distinct_code_objects..f)assertNotEqualidrx)r rMrrr r r test_for_distinct_code_objects8s z,TestSpecifics.test_for_distinct_code_objectscCsdd}||jdS)NcSsdS)NZfoor r r r r rBrz/TestSpecifics.test_lambda_doc..)Z assertIsNoner>)r lr r r test_lambda_docAszTestSpecifics.test_lambda_doccCsd}|tt|ddd}t|dd|t|dd}|t|dd}|t|dd }|t|dd }|t|dd }|t|d d }|t|dd}|t|ddS)Ns## -*- coding: badencoding -*- pass rru%# -*- 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^Gdddt}|}d|d<||dd|dd7<||dd|d=|d|d|d<||dd|dd7<||dd|d=|d|d|dd<||ddd|ddd7<||ddd|dd=|tdd|d|ddddf<||ddddfd|ddddfd7<||ddddfd|ddddf=|tddtddf|d|ddd<||dddd|dddd7<||dddd|ddd=|tddd|d|ddddddf<||ddddddfd|ddddddfd7<||ddddddfd|ddddddf=|tdddtdddf|d|d<||dd|dd7<||dd|d=|t|d|d<||dd|dd7<||dd|d=|ttf|dS) Nc@s4eZdZddZddZddZddZd d Zd S) z.TestSpecifics.test_subscripts..str_mapcSs i|_dSr)datarr r r __init__^sz7TestSpecifics.test_subscripts..str_map.__init__cSs|jt|Srrrkr1r r r r3`sz:TestSpecifics.test_subscripts..str_map.__getitem__cSs||jt|<dSrrr5r r r r7bsz:TestSpecifics.test_subscripts..str_map.__setitem__cSs|jt|=dSrrr1r r r __delitem__dsz:TestSpecifics.test_subscripts..str_map.__delitem__cSst||jvSr)rkrr1r r r __contains__fsz;TestSpecifics.test_subscripts..str_map.__contains__N)r;r<r=rr3r7rrr r r r str_map]s rrfrq)rfrfrg.)..)objectr Z assertNotInsliceEllipsis)r rrJr r r test_subscriptsZsd           zTestSpecifics.test_subscriptscCs0d}|dddtdD;}t|dddS)Nzdef f(%s): passz, css|]}d||fVqdS)za%d:%dNr .0rr r r rz6TestSpecifics.test_annotation_limit..i,rr)rYrangerrSr r r test_annotation_limitsz#TestSpecifics.test_annotation_limitcCsZGddd}|d|jjj|d|jjj|d|jjj|d|jjjdS)Nc@seZdZddZdS)z&TestSpecifics.test_mangling..AcSsd}d}ddl}ddl}dS)Nrfrqr)_A__mangled_modZ__package__.module) _A__mangled__not_mangled__r __package__r r r rMsz(TestSpecifics.test_mangling..A.fN)r;r<r=rMr r r r rAsrArrrr)rjrMrx co_varnames)r rAr r r test_manglings zTestSpecifics.test_manglingc CsHt}|dr|dd}t|d}|}Wdn1sF0Yddgddgdd gd d g||gg}|D]n\}}t|d |d }t|d|d tj}|t |tj kt|d|d }| ||| |j d|qvtddd tj}| tt|dd| tttdd t }tg|_| tt|dd dS)NZpycrrzzx = 5z zif True: pass z z!for n in [1, 2, 3]: print(n) z zdef foo(): pass foo() z%s1rz%s2z%s3zprint(1)r)zr$)__file__lowerendswithopenreadr_astZ PyCF_ONLY_AST assertTruetypeZModuler co_filenamerrGZIfZBoolOpbody) r ZfnamerMZ fcontentsZ sample_coderOZco1astZco2r r r test_compile_asts0  &   zTestSpecifics.test_compile_astcs:dfdd}||||i}||ddddS)Nrcs d7S)Nrfr r rr r rMsz3TestSpecifics.test_dict_evaluation_order..frq)rfrgr)r rMrJr rr test_dict_evaluation_orders z(TestSpecifics.test_dict_evaluation_orderc CsdD]}td|d}||jdqtdtdfD]H}|ttd|d}Wdn1sd0Y||jdq4|ttdt dddS)N)file.pyfile.pypassrrr) rr r bytearray memoryviewZ assertWarnsDeprecationWarningrrGr9)r r&rOr r r test_compile_filenames  *z#TestSpecifics.test_compile_filenamecCs<d}t|dd}|jD] }t|tjr||j|jqdS)Nzdef f(): pass def g(): passZmyfiler)rry isinstancetypesCodeTypeassertIsr)r rTr{objr r r test_same_filename_useds    z%TestSpecifics.test_same_filename_usedcCs|d|d|d|d|d|d|d|d|d |d |d |d |d |ddS)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_statements             z#TestSpecifics.test_single_statementcCsT|d|d|d|d|d|d|d|ddS) Nz1 2z def f(): passza = 13 b = 187z del 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 Csd}t`}tj|d}t|d}||Wdn1sF0Yt|d}Wdn1sr0Y| d|j dS)Ns0000 00000000000 bad.pywbr Non-UTF-8 tempfileTemporaryDirectoryospathrYrwriterZrun_python_until_endrjerrr srcZtmpdrXfpresr r r "test_particularly_evil_undecodables  (,z0TestSpecifics.test_particularly_evil_undecodablec Csd}t`}tj|d}t|d}||Wdn1sF0Yt|d}Wdn1sr0Y| d|j dS)Ns# # rrrrrrr r r $test_yet_more_evil_still_undecodables  (,z2TestSpecifics.test_yet_more_evil_still_undecodablecsTtdtdfdd}|dd|dd|dd|dd dS) Nrgg?csl||}|||}d||}jt|d|Wdn1s^0YdS)NzCompiling ({!r} + {!r} * {}))msg)rformatrRecursionError)prefixZrepeatedZ expect_okbrokenZdetailsZ fail_depthr Z success_depthr r check_limit/s   z@TestSpecifics.test_compiler_recursion_limit..check_limitr.z()z.bz[0]z*a)rrgetrecursionlimitru)r rr rr test_compiler_recursion_limit#s     z+TestSpecifics.test_compiler_recursion_limitcCs8|tdtdddWdn1s.0Y|td ttdddWdn1sj0Yttddddd}|t|dttd dddd}|t|dttd dddd}|t|d|ttd dddt}ttd dd|||d d dS)Nzcannot contain nullz123r$s123rfrs1234s$23$sax = 123rr/)ZassertRaisesRegex ValueErrorrrr r$rBr)r rO namespacer r r test_null_terminated=s*.z"TestSpecifics.test_null_terminatedcCs<|jjD]}t|t|krq8q|d||jjfdS)Nz unable to find constant %r in %r)rxryreprrF)r funcZexpectedconstr r r check_constantQs   zTestSpecifics.check_constantcsfdd}|d|d|d|d|ddddd}}|j|j|tt|ttd dd d}}d d}|jjd |jjd dtt|jjd |jjd d dd d}}|j|j|t dh |ddS)Ncs`i}d||f}t|||d}|d}|j|j||t|t|dSNzf1, f2 = lambda: %r, lambda: %rrr)rrrxrr r)rnsrOrrrr r check_same_constant`s   z?TestSpecifics.test_merge_constants..check_same_constantrsabcabccSsdS)N.r r r r r rrrz4TestSpecifics.test_merge_constants..cSsdS)N not a namer r r r r rxrcSsdS)Nrr r r r r rxrcSs|dvS)N>rr rr r r ryrrfcSs|dvSN>rr rr r r rr) rrxrrr rrynextiter frozensetr)r rrrZf3r rr test_merge_constants[s,   z"TestSpecifics.test_merge_constantscCs(dd}|dtt|djdS)z9Regression test for issue35193 when run under clang msan.cSsdS)NrgZ unreachable) RuntimeErrorr r r r unused_code_at_endszcTestSpecifics.test_peephole_opt_unreachable_code_array_access_in_bounds..unused_code_at_end RETURN_VALUErN)r r9disget_instructionsopname)r rr r r 9test_peephole_opt_unreachable_code_array_access_in_boundss zGTestSpecifics.test_peephole_opt_unreachable_code_array_access_in_boundscs fdd}|dd|dd|dd|dd |d d d d dd }}|j|j|d|dt|tdt|tddd dd }}|j|j|tdh|tdh|d|ddS)Ncsi}td||f||d}|d}|j|j|j|j||||t|t|t|t|dSr)r assertIsNotrxrrr r)Zconst1Zconst2rrrrr r check_different_constantss  zJTestSpecifics.test_dont_merge_constants..check_different_constantsrrg)r)rr.a)r.)rcSsdS)Nr`r r r r r rrz9TestSpecifics.test_dont_merge_constants..cSsdS)Nr r r r r rrr`rcSs|dvSrr rr r r rrcSs|dvS)N>rr rr r r rr)rrxrr rrr)r rrrr rr test_dont_merge_constantss$       z'TestSpecifics.test_dont_merge_constantscCstdtdddS)NZ42Ztest_compile_pathliker)rrrr r r test_path_like_objectssz$TestSpecifics.test_path_like_objectscCstdddddS)Nzif a: b i@ rrrrr r r test_stack_overflowsz!TestSpecifics.test_stack_overflowcCsdd}dd}dd}dd}||||g}|D]X}tt|}|d t||d |d j|d|d j|d |d jq0dS)NcSsdSrr r r r r unused_block_ifszPTestSpecifics.test_dead_blocks_do_not_generate_bytecode..unused_block_ifcSsdSrr r r r r unused_block_whileszSTestSpecifics.test_dead_blocks_do_not_generate_bytecode..unused_block_whilecSsdSrr r r r r unused_block_if_elseszUTestSpecifics.test_dead_blocks_do_not_generate_bytecode..unused_block_if_elsecSsdS)Nrar r r r r unused_block_while_elseszXTestSpecifics.test_dead_blocks_do_not_generate_bytecode..unused_block_while_elserq LOAD_CONSTrrrfr9rrr lenrZargval)r rrrr funcsropcodesr r r )test_dead_blocks_do_not_generate_bytecodesz7TestSpecifics.test_dead_blocks_do_not_generate_bytecodecCszdd}dd}||g}|D]X}tt|}|dt||d|dj|d|dj|d|d jqdS) NcSsdSrr r r r r break_in_whilesz;TestSpecifics.test_false_while_loop..break_in_whilecSsdSrr r r r r continue_in_whilesz>TestSpecifics.test_false_while_loop..continue_in_whilerqr rrrfr )r rrr rrr r r test_false_while_loopsz#TestSpecifics.test_false_while_loopcCs<d}ddddt|Dd}|tt||dS)Ni{,css|]}|d|VqdS):Nr )rrr r r rrz6TestSpecifics.test_big_dict_literal..})rYrr r r$)r Z dict_sizeZthe_dictr r r test_big_dict_literals z#TestSpecifics.test_big_dict_literalN)7r;r<r=rrrrrr"r%r(r*r,rKrPrQrRrUr^rdrnrvrrrsrwrrrrrrrrrrrrrZ cpython_onlyrrrrrrrrrrrrrrrrr r r r r sl  / !  / H #         . ( rc@sPeZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ dS)TestExpressionStackSizedcCs>t|trt|dd}ttt|j}||j |dS)Nzr) rrkrmathceillogr co_codeZassertLessEqual co_stacksize)r rOmax_sizer r r check_stack_sizes  z(TestExpressionStackSize.check_stack_sizecCs|d|jddS)Nzx and rr Nrr r r test_andsz TestExpressionStackSize.test_andcCs|d|jddS)Nzx or rr!rr r r test_orszTestExpressionStackSize.test_orcCs|d|jddS)Nz x and x or rr!rr r r test_and_orsz#TestExpressionStackSize.test_and_orcCs|d|jddS)Nzx < rr!rr r r test_chained_comparisonsz/TestExpressionStackSize.test_chained_comparisoncCs|d|jddS)Nz x if x else rr!rr r r test_if_else"sz$TestExpressionStackSize.test_if_elsecCs|d|jddS)Nzx + rr!rr r r test_binop%sz"TestExpressionStackSize.test_binopcCs d}|d|j7}||dS)Nz def f(x): z x and x )r"r rr 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@seZdZd5ddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4S)6TestStackSizeStabilityFcs|fddfddtddD}tt|dkrxddl}ddl}|}|jd|d |d ||fdS) Ncs>i}d|}rd|}t|dd}t||||djS)Nz def func(): zasync z