ÿØÿà JFIF    ÿÛ „ !.%+&8&+/1555$;@;4?.451 4,$,44444444444414444444444444444444444444444444444444ÿÀ  á á" ÿÄ     ÿÄ ?    !1AQaq"2‘¡±ÁðBRbrÑá#‚’¢²3S CñÿÄ   ÿÄ !    !1QAa‘2ÿÚ   ? 5˜Z¯V¦cø)›t/? z¨±>Õ5€¶‹Á¤·¼z¼Ü¬+ñ®v¤¨_ˆR­BFn©—˜ý®ç̝P8gýt·ÉSTŦˆìät?þé¼íìN/Þa)ì–í6ô… Ï¿øÃj´¿KÇü]ÿ ªô¹-eKànëÕHTx}ýSÜ›ÿ ”7Ø×&µ<¦  ¥ÑO¶[Ù¯ä¨ÞÃÿ PZ-¬;#õ|•oaÿ ©CìÞz3˜öː/¤­ñTûIØ}š^ mÓ%ªxˆ¥ÉŸu=Z+ISe¿45™¼u;ú&WØ÷€æßQ™®{|íx*TC“#ZŠìZ§²‹ 6pv…³¿¡äª*áZÐ%ÒOáˆo"x«OHk w±æ+¬V(kMúŸ5Vö«$ ÁrÏbàb57/luR ¸ÑÛj Òµì`Мq­û žICÀÊ•©4€Âcà¨Ï€O´<èÐ:›ù(Ë^L8þ‘ÍÌ#¸Ð_Ì©ÙK(Öz 4¬û+¸;ü’V’84‘¬ÃŽ:[â‡ÔÌáõp¢~§ªlæ£ö{®G>J¼"°‡7¯ÆÉèßû ‹É‹§ÁòÃýâßî ^ƾÙõ‹×óH#«LP½ïX=xÑÍ$|W?•~• îëÔ©ª‹ {ÝT…Kÿ ”hûâá)J*ö˜–ÔU;iÇ€/ ÆþjóZ\ýwØ=Ìm ºèËL9 ýèÆð/¨’¥öo=nË.%Îì ŽÕ¯È|{Oj²ƒE6e/ßdÄõ²Ìâ1O®ò×TsəԸhOMýíMˆ¿¼H˜l²,7Â¥#MF/Úf°Ö½± ¸–dr‹NýÊ íjqx{œÉ ä-È ¦ øÄër¨q°ð †nцýÑÄÆ’mä…n<0È™;ÁÝá¯ÁZƒ7FÀmì­ É&9ˆîéi¶ùN§Y• ÃZãAâ?•‡©‰ , ó¾IŸŠc1 4â&y­&pŠ­6;M À 0¹qç»p.á …ŸÅáK@%6·y6ƒ‰3?”úºŽ‰éX5ªPT §µ!=Mž«Ú½‹ÅgÂSâÉaþÓoö–¯ÁÔìR>5éÿ üs¶ÆUcÌ kÇR ]ÿ ù¬¼«VŽ;Â|‡~¢¦”ÏŰæ {L™Õ°Óv¹ò¸írޡעCÃ!íVÕ {¶»sŒNPg/ "uÕbkm²“$ďå¿é¹§°½æz¯6 †s¿!s–wÚÝ“™Œ °.ûj>·+™Òa…©Œ&rÝÎtÛë긪Ît’LAVp%c Úý[ÄzJ¾ÇàXXç@˜ó<êL]·T˜¾¥1Ó©V‡g´æ½¦Ý@¹óø!_@´ÞâSÁ —S3™•& ]@JHÚý©ZŽ €×æÔr»Áf!‡yÞ4Mv*èÓã_{‘åóUuљØ«Oïé*®EvÑ Œ÷‡U \"㪒ÍK+À 4“M¡ï:0¥5í!'<@î´”>Ç»&Z–ïCCV˜Ì5Šo&îhè.žû |ÓK©h$s6KìŒëã)¹hI¦GïOåóI;ììü#É$Š0…Ææ¥TØ.5­¾gn´ “ÂÖ\:hœ89G)J@„}œ:’Ò{/Š"¦_Æ×7Æ3VÇŠÊa]ÚŒÙ€Ä–=®uÁßâACZƒ§§£ Qnâ:«,×{tyø¬iÛcœÜÄ€H½ÄÍCk´÷šß .W'b¤Íåh]÷€=,Žv×cÚEÚHXJX¶îo¨FÒtèöŸ>ªª6[J®Fµ£sGÁeqõfe\íjÒÐïÄÐGˆe1Ø‹.Ø”‘Ëuø Y­ˆÜ ŽG|zùªüMpDnQWÄ”%JŠ™)â*p@Örš«ÕT2Ð%ˆG#ª„ ·¤!°ŸOTÂT¸aÚ%4&h™LµšØüÐ.F¿²ÐÞ_Ç‚¾ÅÃaÜ÷09Æ q€öy˜v‡85õN÷]¬äѼóS{°_MެúÔ#°Ç¸0åÞè2ëôPcvÆw9®ií1Ä8F™˜à‰´+‰Ik1òÝ7“Ñ×ÒsÝ\x‚h`ÞÑ`ó"|µEcý£n˜h`}GÞ !±ù²Ápü²ß6 0ïi󜵩SÈÇ7˜-ÕURO˜¦´f$ªž-Í6(œ}<„ éc øs]ŽŽ„*—¾ ìdŽ„)méª\¿êÎIg¾ØÞ~I#C/¼¼´EÁÈŽi8“©õådô·>euä ƒ'Ê×लR1ÉJE1ÐAát`t;ÇР%Ý<‡¥„ÍÆ`×Oyó)õiI€ñQaŸ4Ûù\áàaÃÔ¹HÃu¹*k€¦<„e S‡&õÏ B!ŽhüÞ`yj}mªf×\¿ Ç~æ­9‡û\՞Ǖg²1Žû5V7 !àöšm° c`ܬøÇìµÒ'P"?…´Ö,"§^•õލsÔ)6˜sæéÍR¼ ò|Sl”‹7 nPW Gòú÷½§O¯‡„l¡kSÞŒr½PÊ@æ¢pŽ-mÿ #Ÿ˜Àº¶Áä¦;ïÔæ$1££`“Õ>„—·ž)ßð³ñ#Ï Ô$¶œ‰ÊE‹À;÷º ¯«P:Ñ”8–IÊtpÞ3ª“>ê“þës4ò2OÏÕ­±zô†Õ§‰.÷ä¸;¿˜“'œ›žª}«Œ{ª±Ì 9ÔóÞÕ‡0 $íWV3Üì¬ —@kÝ4@¿r¼±½¬™›?øØæ´'Áé®CË3-g$˜ö‡×auÚi´Žp/êÛ æF›Ú2v‹ã¿¿,nB1̨ƃqÞa5͝@&Æû“él÷ \C²½UÍc ¯k×¢U ÖéQå™—-r wô ÞÏ<Ò=&=ÿ Ôê Òêˈt,i—;LîÜ á¸*ÚÃ1$êL•LÍ <É)ýÐà’ ;F™{ƒ™˜€&'}‚ãÄK`¡ÞT@I;®žZóè‚s’7®°›+§O­Åq©é»²9<Ô J ¼9O’HL»Ùïì¸rk¼Ž_ý‘TŸu[²ßÚŒ·ü÷B%¯E ŸÔX5êO´ Ç•€’I0 ÉJX` ñ¹õ%;µŸD‘«´€àwÒ™U ûئžÖö\×®×´8 ½‡ºÐÆÓ§?Àkmœ=;d5*@-ì0F Rªýš[Ü6âö̃ڸr*KA9· u*µæ£?U¸Âêí†8@¦X4 e-ò„0s{ HâUpU?¼mñRa°®a%Ð'tÉ×’\¾ÊÉ]t›h>·(Ë@R¼¡Ãt h}’O÷au<+nT…Ö…MӐ??Óe95 q>í/;&JSû °¯ÊéÞ øƒ*Ã2½Ài&:nôUl=¾¿5eˆ3”ñc|Ú2V”>„»&eE;«ÚäC p¢Û úy 9š[ŒÌx¼擼A&DåÒ¯ˆ¤ÀÌ;"˜ ÏQä¸åhÊ}Ûq«Û0WžÒ|»€ø®öCm5•\ÇÀ§Pe3£]0ÃàLDÉ‰1øªxjgwT‚÷¿LΨK‹›ùs—xˆÜ±µ kæ¸f‰‰ÜGk/LÛØ6d9ò¶ùA{ƒA3š/¬D¬khÓk‰`˜"㯒r¿±Óã jx‡°e}<Ñø\3y:'À•/h½Í€Ç4~g ?Û(¼]v‘ªlKÎâ~?O‚W%{Ì:“'©úNq¾›úo(X’¥¯ˆ nFê{Ç€ü?º'ë ø‹ì Þ09ŒÌç9Æ —ËC`j@ÓÄ(+a‹un¸#ÂꟋ{K`‘ÑÍÍ'à´»/Û,KW;Þ4²þð ï Nm|~fGÏ(…³Ã)«1ö­Õ ¥‡¨©ƒÃ™ü-s=à=U66Ï«Ýc蓦W¹íž®›nÔ%êÇìŒ<#Ü×84ån®Ð ÒåOC` ñânÑs‡¢ç 1õ%Îhì½Ã½® e:ݼUZo™`  ÅZŸŒÊ«ê1ÏÄo$q¹Þ€©ˆhÐÉä¯ñ[!…Ú˜àJ:x2$Íß&PåT£6ç— ‡Í*4Ýšçjÿ ‰É nófÐ ó(L5C•åÆ\rMÒ@ò }y-W}™üýVù—ú¢=Ù”c®‘< M ž ´Phr ¦©TD ‘ù.$´÷O‡‘V2Æò.=IUŒ=ž‡â¬i™aþÓåÙ?òUø'ØÖ•.~* šTŒ!•-×áºTâ®ä#õü'´ eýlYÅÓeÕKÂrT"CÚ@u!Óxƒ{š3€}1¿(r}%«nËamjÑ%ÑNEò v ˜à  σöK³,*º.àzù¨™Ó ÚçâU¦*¿ 9{%Ö¹ njûdaXöb) kÛÆ±ûÓ\°M7ˆÂ=û›ç¿Ã‚­V»Cg–8ÙêE- j)k$º`Ã-ùEýeBÆÇ]c¡°ñty&Òd0nõ'¡W+ƒ*|–øµFa\GQªEAÔp5\Ǽ·¼Ç8·õ -â§Ú[ ‡ uZeÖ 3}×d'+¹:ð+K†Û®s!Ï$úe€<Û”x)1»a­¡LC]¸µík…ÚàA»AYº{†ªS[¦5HÒ7ù --,ísòDØ€èk ÞÀîÜ ò@â( ËNˆë›4ô½•/¦o‡€Û7 ê•ÆêòðÜy'Án½µ á˜ݦ ndeo…[ì¶Ê,¥R³Ä=À±—–ß;£™´ñSâ*g§”ïaið‘Jå~™ÓÞ ß³Õ¢»8x埒²52>AÊb&-÷\7´éÄù€T˜,w;3{ï˜k…à¹ÄqÀ«œ{€\ ˆ¾[´¨јr &Úé„Ívˆ±8†¿]|¬ņ4I×pÞS1ÈÖz‰#Ìv‡G!YNògñ:màTz¢Ý1ô©^O=~ë|5Bã™ç•¼µõ•bÆ@úÕS¬ÈŒ#¬zünrŸ û” Z²•èðV"ÁHÚý©wÝ €7¼Ìu1hÑa3Éä û f$o¿É ™Ú›ÝçnpÒ3äÌ3†Í§,Äï]$‰/pê †«À¼¸e9­Æê_C]žƒ·ý·frÁN«, E=›Çq -‰öŒ:aÏ¿±í&£Í:-} 84‘ÿ eƒQÑeëSsuiA ³g㟥ú£?ÿ ʼn*”“÷aühe:ÊWa@ÒÞk±eØ] F Ô—r.åä˜ @ö¥ªZoÐýYL·¥S²G/‡ñ <~*ZÆ´è>JlòàÛÆ½ÿ 窘ìGN¢:I®KšJp/`íIÁÀõ#Ä-€ö­šµŒoF4|ÆQØÆ@Ì|£Ô…¢À{9˜è½Üó›€ôYÒÎYsið;ís¤€à²ˆ‚4qÉVŒI$ ‰"° æµ8cXGjœˏ¡Aâý•ËÜ¢ûï e·çLx']á"oÅÎê3¯Ç—¹”ó0nå‚âg{Œñ> S´˜îè°g238‚ãköÝfÚd´6Ò€;ò÷±¢™¼›º ¢Æ'¥Ðx'e¬ç ]bÈÆV¢ó‹kýBO ðÊâ$Ÿ!×T 3Mýמ žìٍàÌü‘8÷€àæØ8æ©6‰©L´«…oãpð„~Çk‰!ñ;‹”ÛžÍ àž±z Ÿôû øŸÝužÏ;ÿ #|u6™Þ¬ÚˆÐõA4¶â|ôl|Ê2ŽÇ¤ÝÅÇY.<#Aí.k§hóF‚”Y; M½Ö4hŸ4&›­¿tès´%FìL¥£Ãk‰ÇT¤haÁ¤ÚxfÉ`ÑìË›>i 3t‚:,–+^÷´–{Û–Nxi"x‘Ûg î¨>¥Õ܁ùZH,2Û“:8xÊ¢Çí9.É-Ìâã-=çjwµS˜dütžçwýGòú®®ûº_ˆýx$–¡ãøO EÚÛÏ÷R„×w+3£Á£öUMyR²¹âŒ°š›¸Ñãò9§Ó_Dl+Ùßc›úšGÅÌc†Ž!Ko=¶.‘Îÿ c²(2®V mª.ÿ ¹B›¹å ù„öŸSV>™ü¯$y:G¢Z×àøúdî¹û­·ýÇ´:•c LÍõi_‹ö+ÎæGÊè>OŠ•äž´§Þ{X}¨1ÚTc›»Qþ•êô°t¿OP?eæ~É{5]•ÙR£r5†nZ\ã@ &îJõ ¾àC°þV>fé¥/ü5ñÊIº_é5 ;e­h<@ Ä&æÃëE%;X,ÒãÆÞ`Oò¦kŸm#˜!ÀyÄ¢| óLšò¥Ä` ¶R=|ÈCâh5ò3DˆïF†ðÒ#ÅìÛœ?¸yhBãœí ZxßÎÄhºRK„`Þödvײ™ÀÈÑÒgŒuY w³%†ƒÓzõ ÖÏp‚dH®¦A´ù§»ÓÇMæ~)ˆð‡û:ù&Ä •vGD´À n ݇¼Ö8Fö óáà£~Ë¥x`oK|Ä?fxiØü%pìR>éò+Û±éÎ>núlFŤ'tq8LZÏvÃ?„¡ß±È⽆¯³íü@x|PöUäèØã¡ð‚ŒAìÏ"vÍwóŸÍ{ ý0.z È•Ö{,N¡£¡ŸKÕÙž>Ýœþ ÍÀ°<×EA!Å‚D™IúOÍ¡>ôG}Â` ÍßkÜL™Ž Þð™ {IøF²¹òQ3&!ÃÂÞz.d&Ï-sH¸,Ôõ˜ŽP€ 77ˆÝ¼ÊëÜw =cÕ Ú,ØÐ5ÎYÐ)ì´öœgŒ[¤ßv㙑8心>h]§µháYš£²ºÑ.{Ï7Sð•?´~×SÃKýJÛ˜ ™Íäiúu<µX¶1õ^kâçIÑ£sZ4h>j*ÔšD:4­¿_ ÷¸ Õxæÿ ¸?Mù _•­ÊÐ ä ÷ý ÑwL œ­ïnTkÛUÍN©ë:¦fV ¶ÜÔÜMªÅâA½–¿R×TXš-%iTÊT•‡Ù‚JôϐZxWÑè‰f‰òG º ×Õû2aZ7OU3[“×AT–ÞŒ…-‘¤”Ì ì&(ˆ¿­•ƒkï’:ðY¦W‘ Å)“†‘˜³Åtcø˜ñTÂwÚÇ4|üLÇªí–v- qˆèU qPE.†â‘˜µ Æ,ÐÅs]8¾„oúÑ i>ÜxxÈó)ƒ ´æÁâØ$À‰vžŸf$Ž |ãw;ÀÁIJ»b` {¦Ó¤Ú$©YÀ‘n@Óïž«9J¼êG m¤ ܯ¹ÌW4€ÐÒÅÛ‡#褕Ÿn-?í|с¥÷Ú¹¬'´ÞÜ9ÓK `hê£SÄSà?7—Wí_´…óB›»:=Ãïq`<8ñÓŒÑlú2d¬ê³£hÖ[l|$vÝro~'R®‰§°ñmY ͧäP |PUª¹·:3Œ[Û{Xÿ ºâ@‚W–Äé u‚ ¯´*=íή.pûÒdt @G‰¬ s¸ ëÉücr ÞæÑ¨Ê@>¤¢Ö±. Þ'¯°ÌME[YéïĵÂCå½ Ué©Áû'Ê9%eÔðNU”ë‘ÌsD3/®+UI˜9h.WC”빓$#:pz:YÓ ¿xž* ³$Í +$kñAŠ‹†¢ Uê>¸)_š¬÷©ßAÂÔb9ÇU ¯¾á•9¯ÏÏ÷O÷¼¼Fähal1‰3Ì[Ïr•´UCksNÐ] R‘¸¥H+§Šé†c©vÖÞ0iÓ76s†î!§=ß ¼~Ô'°Ãmäoäš³ªøi1úÉ)³yV8 CLÄØÁ‘WYïi€H6ÖÑiámø^ÈY´°Ñ7¥Û*—Ñ©L«Qƒï—Ùrÿ ›£Ð*š¸ˆL©ˆ$ˆ ÷¾D§9È®«qbqC)–ˆïv´çñsÑVT­Ø, <àïºÀO«Jý·õ àfPìð .wFšir´þ’2_Y *Æ€x\« ì€9š@ Ž|F⇥ˆkZ@hÖÄ0t¿-<“‹qµ¾*ZL¤Ú)&BJpÓF5=$„at*Zš$’ÑtdûÝRI1 2މ$€$I$#‰SÞ’Hë¬ï;Á$¡t$’`<(ñÇt)$‡Ð.Êf¢X’Kt=Éé$‚ˆªè¢oÝëòI%Rgcª÷ŠyI%¡‰ÿ !ñ)´õ $¤ Ô’IIGÿÙa 3g@sddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl ZddlZddlmZddlmZddlmZmZz ddlZWneydZYn0edZddlZeedZdd ZGd d d ZGd d d e j Z!Gddde j Z"Gddde j Z#Gddde j Z$Gddde j Z%Gddde j Z&Gddde j Z'Gddde'Z(e )e*dGddde'Z+e )edGd d!d!e'Z,Gd"d#d#e j Z-e.d$kre /dS)%) OrderedDictN)support)MISSING_C_DOCSTRINGS)assert_python_failureassert_python_ok _testcapiZgettotalrefcountcCs|SNselfr r -/opt/python39/lib/python3.9/test/test_capi.py testfunction#sr c@s eZdZeeZeeZdS)InstanceMethodN)__name__ __module__ __qualname__rZinstancemethodidr r r r r r(s rc@sfeZdZddZddZddZddZee d d d Z ee d d d Z e e dddZddZddZddZddZddZddZddZdd Zeeed!d"d#d$Zd%d&Zed'd(d)Zed'd*d+Zd,d-Zd.d/Z d0d1Z!d2d3Z"d4d5Z#d6d7Z$d8d9Z%d:d;Z&dd?Z(d@dAZ)dBdCZ*dDdEZ+dFdGZ,dHdIZ-dJS)KCAPITestcCs~t}|t|||||u||jjtj|tjjtjdtj_|tjd|tt |jdddS)Ntest attribute) r assertEqualr assertTruer __doc__r assertRaisesAttributeErrorsetattrr instr r r test_instancemethod.szCAPITest.test_instancemethodcCsvt,tjtjddgtjtjd}Wdn1s:0Y|\}}||d| | d|dS)N-cz4import _testcapi;_testcapi.crash_no_current_thread())stdoutstderrsFatal Python error: PyThreadState_Get: the function must be called with the GIL held, but the GIL is released (the current Python thread state is NULL)) rSuppressCrashReport subprocessPopensys executablePIPE communicaterrrstrip startswith)r pouterrr r r test_no_FatalError_infinite_loop9s  $   z)CAPITest.test_no_FatalError_infinite_loopcCs|ttjdSr)r ValueErrorrZ!make_memoryview_from_NULL_pointerr r r r !test_memoryview_from_NULL_pointerKsz*CAPITest.test_memoryview_from_NULL_pointerc Cstd}td}z|Wnty}z|j}t}t|j|d}t}tj|}t} ||d|| ||j||f| ||| | || ||j|df| ||WYd}~nd}~00| ddS)N5ZTESTF) r0 TypeError __traceback__r&exc_inforZ set_exc_info __class__rZassertSequenceEqualr) r Zraised_exceptionnew_excetbZorig_sys_exc_infoZ orig_exc_infoZnew_sys_exc_infoZ new_exc_infoZreset_sys_exc_infor r r test_exc_infoNs$   "zCAPITest.test_exc_infoz(_posixsubprocess required for this test.cCsGdddt}|ttjd|dddddd d d d d dddddddddGdddt}|ttjd|dddddd d d d d ddddddddddS)Nc@seZdZddZdS)1CAPITest.test_seq_bytes_to_charp_array..ZcSsdSNr3r r r r r __len__is9CAPITest.test_seq_bytes_to_charp_array..Z.__len__Nrrrr>r r r r ZhsrAr3r3 c@seZdZddZddZdS)r<cSstjSr)r&maxsizer r r r r>osr?cSsdS)Nxr )r ir r r __getitem__qsz=CAPITest.test_seq_bytes_to_charp_array..Z.__getitem__N)rrrr>rYr r r r rAns)objectrr4_posixsubprocess fork_exec MemoryErrorr rAr r r test_seq_bytes_to_charp_arrayes , ,z&CAPITest.test_seq_bytes_to_charp_arraycCsPGdddt}|ttj|dgdddddd d d d d ddddddddddS)Nc@seZdZddZdS)z-CAPITest.test_subprocess_fork_exec..ZcSsdSr=r r r r r r>ysz5CAPITest.test_subprocess_fork_exec..Z.__len__Nr@r r r r rAxsrA1rBrCrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrU)rZrr4r[r\r^r r r test_subprocess_fork_execvs .z"CAPITest.test_subprocess_fork_execz6Signature information for builtins requires docstringscCs|tjjd|tjjd|tjjd|tjjd|tjjd|tjjd|tjjd|tjjd|tjjd|tjjd|tj jd|tj jd|tj jd|tj jd|tj jd|tj jddS)Nz This docstring has no signature.z[docstring_with_invalid_signature($module, /, boo) This docstring has an invalid signature.zedocstring_with_invalid_signature2($module, /, boo) -- This docstring also has an invalid signature.z%This docstring has a valid signature.z($module, /, sig)z> This docstring has a valid signature and some extra newlines.z($module, /, parameter)) rrZ no_docstringr__text_signature__Zdocstring_emptyZdocstring_no_signatureZ docstring_with_invalid_signatureZ!docstring_with_invalid_signature2Zdocstring_with_signatureZ#docstring_with_signature_but_no_docZ+docstring_with_signature_and_extra_newlinesr r r r test_docstring_signature_parsings<       z)CAPITest.test_docstring_signature_parsingcCstj}|}|}|||d||f||dd|df|d|dd|f|}||}||d||f|}|d}||d|dfd}||}||dd|fdS)Nmatmul*imatmul)rZ matmulTyper)r MZm1Zm2or r r &test_c_type_with_matrix_multiplicationsz/CAPITest.test_c_type_with_matrix_multiplicationcCs2t}||dd||ddddS)Nr3)r3NrD)rDrD)rZipowTyper__ipow__)r rhr r r test_c_type_with_ipowszCAPITest.test_c_type_with_ipowcCs|tr4td}td|\}}}||dddnD|t}t Wdn1s\0Y|t |j ddS)Nz import _testcapi from test import support with support.SuppressCrashReport(): _testcapi.return_null_without_error() r r"sFatal Python error: _Py_CheckFunctionResult: a function returned NULL without setting an error\nPython runtime state: initialized\nSystemError: returned NULL without setting an error\n\nCurrent thread.*:\n File .*", line 6 in zBreturn_null_without_error.* returned NULL without setting an error) Py_DEBUGtextwrapdedentr assertRegexreplacer SystemErrorrZreturn_null_without_errorstr exceptionr codercr-r.cmr r r test_return_null_without_errors  & z'CAPITest.test_return_null_without_errorcCs|tr4td}td|\}}}||dddnD|t}t Wdn1s\0Y|t |j ddS)Nz import _testcapi from test import support with support.SuppressCrashReport(): _testcapi.return_result_with_error() rrlr"sgFatal Python error: _Py_CheckFunctionResult: a function returned a result with an error set\nPython runtime state: initialized\nValueError\n\nThe above exception was the direct cause of the following exception:\n\nSystemError: returned a result with an error set\n\nCurrent thread.*:\n File .*, line 6 in z>return_result_with_error.* returned a result with an error set) rmrnrorrprqrrrrZreturn_result_with_errorrsrtrur r r test_return_result_with_errors  & z&CAPITest.test_return_result_with_errorcCs tdSr)rtest_buildvalue_Nr r r r r{szCAPITest.test_buildvalue_NcCs<d}td|\}}}|d||d||d|dS)Na*if 1: import _testcapi class C(): pass # The first loop tests both functions and that remove_mem_hooks() # can be called twice in a row. The second loop checks a call to # set_nomemory() after a call to remove_mem_hooks(). The third # loop checks the start and stop arguments of set_nomemory(). for outer_cnt in range(1, 4): start = 10 * outer_cnt for j in range(100): if j == 0: if outer_cnt != 3: _testcapi.set_nomemory(start) else: _testcapi.set_nomemory(start, start + 1) try: C() except MemoryError as e: if outer_cnt != 3: _testcapi.remove_mem_hooks() print('MemoryError', outer_cnt, j) _testcapi.remove_mem_hooks() break rsMemoryError 1 10sMemoryError 2 20sMemoryError 3 30)rassertInr rvrwr-r.r r r test_set_nomemorys   zCAPITest.test_set_nomemoryc CsGdddt}Gdddt}dddd}it|||t|||||fD]R}|t|t||t|t||t |t| qRdS) Ncs4eZdZfddZfddZfddZZS)z9CAPITest.test_mapping_keys_values_items..Mapping1csttSr)listsuperkeysr r7r r r(sz>CAPITest.test_mapping_keys_values_items..Mapping1.keyscsttSr)rrvaluesr rr r r*sz@CAPITest.test_mapping_keys_values_items..Mapping1.valuescsttSr)rritemsr rr r r,sz?CAPITest.test_mapping_keys_values_items..Mapping1.itemsrrrrrr __classcell__r r rr Mapping1's  rcs4eZdZfddZfddZfddZZS)z9CAPITest.test_mapping_keys_values_items..Mapping2csttSr)tuplerrr rr r r/sz>CAPITest.test_mapping_keys_values_items..Mapping2.keyscsttSr)rrrr rr r r1sz@CAPITest.test_mapping_keys_values_items..Mapping2.valuescsttSr)rrrr rr r r3sz?CAPITest.test_mapping_keys_values_items..Mapping2.itemsrr r rr Mapping2.s  rr3rDrB)fooZbarZspam) dictrZassertListEqualrget_mapping_keysrrget_mapping_valuesrget_mapping_itemsr)r rrZdict_objmappingr r r test_mapping_keys_values_items&s         z'CAPITest.test_mapping_keys_values_itemscCsx|ttjd|ttjd|ttjdGddd}|}|ttj||ttj||ttj|dS)Nc@s$eZdZddZddZddZdS)zCCAPITest.test_mapping_keys_values_items_bad_arg..BadMappingcSsdSrr r r r r rGszHCAPITest.test_mapping_keys_values_items_bad_arg..BadMapping.keyscSsdSrr r r r r rIszJCAPITest.test_mapping_keys_values_items_bad_arg..BadMapping.valuescSsdSrr r r r r rKszICAPITest.test_mapping_keys_values_items_bad_arg..BadMapping.itemsN)rrrrrrr r r r BadMappingFsr)rrrrrrr4)r rZ bad_mappingr r r &test_mapping_keys_values_items_bad_argAsz/CAPITest.test_mapping_keys_values_items_bad_argZnegative_refcountz need _testcapi.negative_refcountcCs*td}td|\}}}||ddS)Nz import _testcapi from test import support with support.SuppressCrashReport(): _testcapi.negative_refcount() rs`_testcapimodule\.c:[0-9]+: _Py_NegativeRefcount: Assertion failed: object has negative ref count)rnrorrpr}r r r test_negative_refcountRs  zCAPITest.test_negative_refcountcCs,ddlm}d}tdD]}||f}qdS)NrMyList)rrrange)r rLrXr r r test_trashcan_subclassds  zCAPITest.test_trashcan_subclassZcpucCs|tdSr)do_test_trashcan_python_classrr r r r test_trashcan_python_class1lsz$CAPITest.test_trashcan_python_class1cCsddlm}||dS)Nrr)rrr)r rr r r test_trashcan_python_class2ps z$CAPITest.test_trashcan_python_class2cCshGddd|}dD]N}d}tdD]}||f}||_q$|rD|f}||jd~||jdqdS)Ncs,eZdZdZfddZfddZZS)z6CAPITest.do_test_trashcan_python_class..PyListrcsjd7_tj|dSr=)numr__init__)r argsrr r r}sz?CAPITest.do_test_trashcan_python_class..PyList.__init__csjd8_dSr=)rr rr r __del__sz>CAPITest.do_test_trashcan_python_class..PyList.__del__)rrrrrrrr r rr PyListys r)rr3ir)rattrZ assertGreaterrr)r baserZparityrrXr r r rus   z&CAPITest.do_test_trashcan_python_classcCsZGdddtj}|}t|}||jd||jd~||dt|dS)NcseZdZfddZZS)z`CAPITest.test_subclass_of_heap_gc_ctype_with_tpdealloc_decrefs_once..HeapGcCTypeSubclasscsd|_tdSNrTvalue2rrr rr r rsziCAPITest.test_subclass_of_heap_gc_ctype_with_tpdealloc_decrefs_once..HeapGcCTypeSubclass.__init__rrrrrr r rr HeapGcCTypeSubclasssrrJrTr3)r HeapGcCTyper& getrefcountrvaluer)r rsubclass_instance type_refcntr r r :test_subclass_of_heap_gc_ctype_with_tpdealloc_decrefs_onces zCCAPITest.test_subclass_of_heap_gc_ctype_with_tpdealloc_decrefs_oncecsGdddtjGfddd}t}t}||jd||jd~||dj||dj||dt||tdS)NcseZdZfddZZS)zdCAPITest.test_subclass_of_heap_gc_ctype_with_del_modifying_dunder_class_only_decrefs_once..Acsd|_tdSrrr rr r rszmCAPITest.test_subclass_of_heap_gc_ctype_with_del_modifying_dunder_class_only_decrefs_once..A.__init__rr r rr Asrcs*eZdZfddZfddZZS)zdCAPITest.test_subclass_of_heap_gc_ctype_with_del_modifying_dunder_class_only_decrefs_once..BcstdSr)rrr rr r rszmCAPITest.test_subclass_of_heap_gc_ctype_with_del_modifying_dunder_class_only_decrefs_once..B.__init__cs"|_t_t_dSr)r7r&r refcnt_in_delr rBr r rs zlCAPITest.test_subclass_of_heap_gc_ctype_with_del_modifying_dunder_class_only_decrefs_once..B.__del__)rrrrrrr rrr rs rrJrTr3)rrr&rrrrrr rrZnew_type_refcntr rr Ptest_subclass_of_heap_gc_ctype_with_del_modifying_dunder_class_only_decrefs_onces   zYCAPITest.test_subclass_of_heap_gc_ctype_with_del_modifying_dunder_class_only_decrefs_oncecCsXt}d|_||jd||j|j||jddit}|i|jdSNrer)rZHeapCTypeWithDictrrdictobj__dict__rr r r test_heaptype_with_dictsz CAPITest.test_heaptype_with_dictcCsXt}d|_||jd||j|j||jddit}|i|jdSr)rZHeapCTypeWithNegativeDictrrrrrr r r test_heaptype_with_negative_dictsz)CAPITest.test_heaptype_with_negative_dictcCs2t}t|}|||||j|dSr)rZHeapCTypeWithWeakrefweakrefrefrZ weakreflist)r rrr r r test_heaptype_with_weakrefs z#CAPITest.test_heaptype_with_weakrefcCs t}t|}||ddS)Ns1234)rZHeapCTypeWithBufferbytesr)r rbr r r test_heaptype_with_buffersz"CAPITest.test_heaptype_with_buffercCsNt}ttj}||jd||jd~||dttjdSNrJrTr3)rHeapCTypeSubclassr&rrrr)r rrr r r 9test_c_subclass_of_heap_ctype_with_tpdealloc_decrefs_onces  zBCAPITest.test_c_subclass_of_heap_ctype_with_tpdealloc_decrefs_oncecCst}ttj}ttj}||jd||jd~||dtjj||dtjj||dttj||ttjdSr) rZHeapCTypeSubclassWithFinalizerr&rrrrrrrr r r Otest_c_subclass_of_heap_ctype_with_del_modifying_dunder_class_only_decrefs_onces  zXCAPITest.test_c_subclass_of_heap_ctype_with_del_modifying_dunder_class_only_decrefs_oncecCs@t}||jdd|_||jd|`||jddS)NrJrLr)rZHeapCTypeSetattrrZpvaluer)r objr r r test_heaptype_with_setattros z$CAPITest.test_heaptype_with_setattrocCsddlm}||ddd||ddd||ddd ||dd d ||d dd ||d dd||d dd||d d d|t|dd|t|d d|t|dddS)Nr)pynumber_tobase{rDZ 0b1111011rHZ0o173rJ123rPZ0x7biz -0b1111011z-0o173z-123z-0x7bg^@)rrrrr4rr)r rr r r test_pynumber_tobases zCAPITest.test_pynumber_tobasecCst}||ddSNz)rZpyobject_repr_from_nullrr sr r r test_pyobject_repr_from_nullsz%CAPITest.test_pyobject_repr_from_nullcCst}||ddSr)rZpyobject_str_from_nullrrr r r test_pyobject_str_from_null sz$CAPITest.test_pyobject_str_from_nullcCst}||ddS)Ns)rZpyobject_bytes_from_nullrrr r r test_pyobject_bytes_from_null$sz&CAPITest.test_pyobject_bytes_from_nullcCs2tj}d}||}t|dd}||j|jdS)Ns%# -*- coding: latin1 -*- print('¤') zexec)rZPy_CompileStringcompiler co_consts)r _compilervresultexpectedr r r test_Py_CompileString(s  zCAPITest.test_Py_CompileStringN).rrrrr/r1r;unittest skipUnlessr[r_raZskipIfrrcrirkryrzr{r~rrhasattrrrrrZrequires_resourcerrrrrrrrrrrrrrrrrr r r r r,sX      )"     #   rc@s6eZdZddZd ddZddZdd Zd d ZdS) TestPendingCallscs>fdd}t|D]$}ttdt|r*qq*qdS)NcsddSr)appendr lr r callback4sz6TestPendingCalls.pendingcalls_submit..callbackg{Gz?)rtimesleeprandomrZ_pending_threadfunc)r rnrrXr rr pendingcalls_submit3s    z$TestPendingCalls.pendingcalls_submitNcCsd}t||krxdr,tjr,tdt|ftdD] }||}q4|rR|jsRq|d7}||dkd|t|fqdrtjrtdt|fdS)NrFz(%i)rr3i'z(timeout waiting for %i callbacks, got %i)lenrverboseprintreventis_setr)r rrcontextcountrXar r r pendingcalls_waitBs      z"TestPendingCalls.pendingcalls_waitcsd}g}Gdddt}|g_d_|j_d_t_t_ fddt jD}t |  j|Wdn1s0YdS)N c@s eZdZdS)z8TestPendingCalls.test_pendingcalls_threaded..fooNrrrr r r r rZr"rrDrcsg|]}tjjfdqS))targetr) threadingThreadpendingcalls_thread).0rXrr r r csz?TestPendingCalls.test_pendingcalls_threaded..)rZrrnThreads nFinishedrLocklockEventrrrZ start_threadsr)r rthreadsrr rr test_pendingcalls_threadedUs     z+TestPendingCalls.test_pendingcalls_threadedcCszv||j|jW|j8|jd7_|j}drDtjrDtd|Wdn1sX0Y||jkr|j nd|j8|jd7_|j}drtjrtd|Wdn1s0Y||jkr|j 0dS)Nr3Fzfinished threads: ) rrrrrrrrrrset)r rrr r r ris  (   ( z$TestPendingCalls.pendingcalls_threadcCs$g}d}||||||dS)N@)rr)r rrr r r test_pendingcalls_non_threadedus z/TestPendingCalls.test_pendingcalls_non_threaded)N)rrrrrrrrr r r r r1s   rc@s,eZdZddZddZddZddZd S) SubinterpreterTestcCsddl}t\}}d|}t|dT}t|}||d|t |t t j |t |t |Wdn1s0YdS)Nrzif 1: import sys, builtins, pickle with open({:d}, "wb") as f: pickle.dump(id(sys.modules), f) pickle.dump(id(builtins), f) rb)builtinsospipeformatopenrrun_in_subinterprZassertNotEqualpickleloadrr&modules)r rrwrvfretr r r test_subinterpss    z"SubinterpreterTest.test_subinterpscCsrt\}}d|}t|d>}t|}||d|t|dddWdn1sd0YdS)Naaif 1: import pickle with open({:d}, "wb") as f: @(lambda x:x) # Py 3.9 def noop(x): return x a = (b := f'1{{2}}3') + noop('x') # Py 3.8 (:=) / 3.6 (f'') async def foo(arg): return await arg # Py 3.5 pickle.dump(dict(a=a, b=b), f) rrZ123xr)rr) rrrrrrrrr )r r r rvr rr r r (test_subinterps_recent_language_featuress     z;SubinterpreterTest.test_subinterps_recent_language_featurescCs(ddl}td|t|jddS)Nrz1import binascii; binascii.Error.foobar = 'foobar'Zfoobar)binasciirrZ assertFalserError)r rr r r test_mutate_exceptions z(SubinterpreterTest.test_mutate_exceptioncCst\}}|tj||tj|td|d}t|t|d}t |}| |dt|d}| ||dS)Na import importlib.machinery import importlib.util import os fullname = '_test_module_state_shared' origin = importlib.util.find_spec('_testmultiphase').origin loader = importlib.machinery.ExtensionFileLoader(fullname, origin) spec = importlib.util.spec_from_loader(fullname, loader) module = importlib.util.module_from_spec(spec) attr_id = str(id(module.Error)).encode() os.write(z, attr_id) dr) rrZ addCleanupclosernrorreadrrr)r r r ZscriptZ main_attr_idrZsubinterp_attr_idr r r "test_module_state_shared_in_globals       z5SubinterpreterTest.test_module_state_shared_in_globalN)rrrrrrrr r r r rs rc@seZdZejddZdS)TestThreadStatecs2fdd}|tj|d}||dS)NcsHgfdd}t||}}tdtdddS)NcstdSr)rr get_identr Zidentsr r rszCTestThreadState.test_thread_state..target..callbackr3rBz/Couldn't find main thread correctly in the list)rZ_test_thread_staterrrrrr)rrrr rr rs   z1TestThreadState.test_thread_state..target)r)rrstartjoin)r rtr r r test_thread_states   z!TestThreadState.test_thread_stateN)rrrrZ reap_threadsrr r r r rsrc@s&eZdZeddeeDdS) Test_testcapiccs0|](}|dr|ds|tt|fVqdS)test__codeN)r+endswithgetattrrrnamer r r szTest_testcapi.N)rrrlocalsupdatedirrr r r r rs rc@s&eZdZeddeeDdS)Test_testinternalcapiccs&|]}|dr|tt|fVqdS)r N)r+r#_testinternalcapir$r r r r&s zTest_testinternalcapi.N)rrrr'r(r)r+r r r r r*s r*c@sleZdZdZdZddZddZddZd d Zd d Z d dZ ddZ ddZ ddZ ddZddZdS)PyMemDebugTestsdebugz(?:0x)?[0-9a-fA-F]+cCsLt"td||jdd}Wdn1s00Y|j}|ddS)Nr junk:false PYTHONMALLOCZ MALLOC_CONFasciirq)rr#rr0r.decode)r rvr-r!r r r checks $zPyMemDebugTests.checkcCs<|d}d}|j|jd}tj|tjd}|||dS)Nz3import _testcapi; _testcapi.pymem_buffer_overflow()a6Debug memory block at address p={ptr}: API 'm'\n 16 bytes originally requested\n The [0-9] pad bytes at p-[0-9] are FORBIDDENBYTE, as expected.\n The [0-9] pad bytes at tail={ptr} are not all FORBIDDENBYTE \(0x[0-9a-f]{{2}}\):\n at tail\+0: 0x78 \*\*\* OUCH\n at tail\+1: 0xfd\n at tail\+2: 0xfd\n .*\n( The block was made by call #[0-9]+ to debug malloc/realloc.\n)? Data at p: cd cd cd .*\n\nEnable tracemalloc to get the memory block allocation traceback\n\nFatal Python error: _PyMem_DebugRawFree: bad trailing pad byteZptr)flags)r3r PTR_REGEXrerDOTALLrpr r-Zregexr r r test_buffer_overflows  z$PyMemDebugTests.test_buffer_overflowcCs,|d}d}|j|jd}|||dS)Nz.import _testcapi; _testcapi.pymem_api_misuse()aDebug memory block at address p={ptr}: API 'm'\n 16 bytes originally requested\n The [0-9] pad bytes at p-[0-9] are FORBIDDENBYTE, as expected.\n The [0-9] pad bytes at tail={ptr} are FORBIDDENBYTE, as expected.\n( The block was made by call #[0-9]+ to debug malloc/realloc.\n)? Data at p: cd cd cd .*\n\nEnable tracemalloc to get the memory block allocation traceback\n\nFatal Python error: _PyMem_DebugRawFree: bad ID: Allocated using API 'm', verified using API 'r'\nr4)r3rr6rpr9r r r test_api_misuses  zPyMemDebugTests.test_api_misusecCs||}d}|||dS)Nz^Fatal Python error: _PyMem_DebugMalloc: Python memory allocator called without holding the GIL)r3r|)r rvr-rr r r check_malloc_without_gil+s z(PyMemDebugTests.check_malloc_without_gilcCsd}||dS)Nz6import _testcapi; _testcapi.pymem_malloc_without_gil()r<r rvr r r test_pymem_malloc_without_gil1sz-PyMemDebugTests.test_pymem_malloc_without_gilcCsd}||dS)Nz9import _testcapi; _testcapi.pyobject_malloc_without_gil()r=r>r r r test_pyobject_malloc_without_gil7sz0PyMemDebugTests.test_pyobject_malloc_without_gilcCs(td|d}td||jdddS)Nz import gc, os, sys, _testcapi # Disable the GC to avoid crash on GC collection gc.disable() try: _testcapi.z() # Exit immediately to avoid a crash while deallocating # the invalid object os._exit(0) except _testcapi.error: os._exit(1) rr.r/)rnrorr0)r func_namervr r r check_pyobject_is_freed=s z'PyMemDebugTests.check_pyobject_is_freedcCs|ddS)NZcheck_pyobject_null_is_freedrBr r r r test_pyobject_null_is_freedPsz+PyMemDebugTests.test_pyobject_null_is_freedcCs|ddS)NZ%check_pyobject_uninitialized_is_freedrCr r r r $test_pyobject_uninitialized_is_freedSsz4PyMemDebugTests.test_pyobject_uninitialized_is_freedcCs|ddS)NZ'check_pyobject_forbidden_bytes_is_freedrCr r r r &test_pyobject_forbidden_bytes_is_freedVsz6PyMemDebugTests.test_pyobject_forbidden_bytes_is_freedcCs|ddS)NZcheck_pyobject_freed_is_freedrCr r r r test_pyobject_freed_is_freedYsz,PyMemDebugTests.test_pyobject_freed_is_freedN)rrrr0r6r3r:r;r<r?r@rBrDrErFrGr r r r r,s r,c@seZdZdZdS)PyMemMallocDebugTestsZ malloc_debugNrrrr0r r r r rH]srHz need pymallocc@seZdZdZdS)PyMemPymallocDebugTestsZpymalloc_debugNrIr r r r rJasrJz need Py_DEBUGc@seZdZdZdS)PyMemDefaultTestsNrIr r r r rKfsrKc@s,eZdZddZddZddZddZd S) Test_ModuleStateAccesscCsNd}tjdj}tj||}tj||}tj|}||||_ dS)NZ!_testmultiphase_meth_state_accessZ_testmultiphase) importlibutil find_specorigin machineryExtensionFileLoaderspec_from_loadermodule_from_spec exec_modulemodule)r fullnamerQloaderspecrWr r r setUpss  zTest_ModuleStateAccess.setUpcCs0Gddd|jj}|}|||jdS)Nc@s eZdZdS)zQTest_ModuleStateAccess.test_subclass_get_module..StateAccessType_SubclassNrr r r r StateAccessType_Subclass~sr\rWStateAccessTypeZassertIsget_defining_moduler r\instancer r r test_subclass_get_module|sz/Test_ModuleStateAccess.test_subclass_get_modulecCs0Gddd|jj}|}|||jdS)NcseZdZfddZZS)z\Test_ModuleStateAccess.test_subclass_get_module_with_super..StateAccessType_Subclasscs tSr)rr_r rr r r_szpTest_ModuleStateAccess.test_subclass_get_module_with_super..StateAccessType_Subclass.get_defining_module)rrrr_rr r rr r\sr\r]r`r r r #test_subclass_get_module_with_supersz:Test_ModuleStateAccess.test_subclass_get_module_with_superc Cs|j}|j}|j|jd}|D]N\}}||(|||||d||||||d|d|||||d|ddd|||||d|t |dd Wdn1s0Y|t |dd dWdn1sP0YWdq*1sp0Yq*dS) N)ZclinicZnoclinicrr3rBT)Ztwice)ZthricerD) rWr^Zincrement_count_clinicZincrement_count_noclinicrZsubTestrZ get_countrr4)r rrmethodsr%Zincrement_countr r r test_state_accesss,    * z(Test_ModuleStateAccess.test_state_accessN)rrrr[rbrcrgr r r r rMls rM__main__)0 collectionsrrrrr7r$r&rnrrrrZimportlib.machineryrNimportlib.utilrrZ test.supportrZtest.support.script_helperrrr[ ImportError import_modulerr+rrmr rZTestCaserrrrrr*r,rHrZ with_pymallocrJrKrMrmainr r r r sX         OSf G