ÿØÿà 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 3g2@sddlZddlZddlZddlZddlZddlZddlmZddlm Z m Z m Z m Z m Z eedZddZGdddejZee d Gd d d ejZd d ZedkredS)N)support) spawn_python kill_pythonassert_python_okassert_python_failure interpreter_requires_environmentZgettotalrefcountcCst|}|}||fSN)rwait)pdata returncoder 1/opt/python39/lib/python3.9/test/test_cmd_line.py_kill_python_and_exit_codesrc@sJeZdZddZddZddZddZd d Zd d Zd dZ e e dddZ ddZddZddZddZddZe ejdddZe ejdkd d!d"Ze ejdkd d#d$Ze ejd%kpejd&d'd(Zd)d*Zd+d,Zd-d.Zd/d0Z d1d2Z!d3d4Z"d5d6Z#d7d8Z$d9d:Z%d;d<Z&d=d>Z'd?d@Z(dAdBZ)e e*j+dCkdDe ejdEkdFdGdHZ,dIdJZ-dKdLZ.dMdNZ/dOdPZ0dQdRZ1dSdTZ2dUdVZ3e e dWdXdYZ4dZd[Z5d\d]Z6d^d^d_d`daZ7dbdcZ8dwdedfZ9dgdhZ:didjZ;dkdlZdrdsZ?dtduZ@dvS)x CmdLineTestcCstdtddS)N.z< .)rselfr r rtest_directoriesszCmdLineTest.test_directoriescCsBt|\}}}||dkp"|d|d||d|dS)N s Traceback)r assertTrueendswith assertNotIn)rZcmd_linercouterrr r rverify_valid_flag!s zCmdLineTest.verify_valid_flagcCs|d|ddS)Nz-Oz-OOrrr r r test_optimize's zCmdLineTest.test_optimizecCs|ddS)N-Srrr r rtest_site_flag+szCmdLineTest.test_site_flagcCsBtd\}}}|}|d|dd|ddddS)Nz-hsusagerrascii)r splitlinesassertInjoindecode)rrrrlinesr r r test_usage.szCmdLineTest.test_usagecCsTdtjddd}dD]2}t|\}}}||||||qdS)Nz Python %d.%dr#)z-Vz --versionz-VV)sys version_infoencoderZ assertFalse startswithr)rversionZswitchrrrr r r test_version6s zCmdLineTest.test_versioncCs8td\}}}|d|td\}}}|d|dS)Nz-vsstack overflowz-vv)rrrrrrr r r test_verbose=s zCmdLineTest.test_verbosez6Cannot run -E tests when PYTHON env vars are required.cCs:dd}|}||i|dd}||ddddS)NcWs4tjdf|}|d7}t|}t|d}|S)N-E)-c import sys; print(sys._xoptions)r)r+ executable subprocess check_outputevalr$)argsroptsr r r get_xoptionsIs  z/CmdLineTest.test_xoptions..get_xoptionsz-Xaz -Xb=c,d=eTzc,d=e)ab) assertEqual)rr<r;r r r test_xoptionsFs    zCmdLineTest.test_xoptionscsfdd}d}|d|\}}}|d|d|ddd|\}}}|d trr|d n |ddS) Ncsdtjg}||tj}tj|||d}|\}}|j|j |j } |d|||fS)Nstdoutstderrr) r+r6extendr7PIPEPopen communicaterBcloserCr r?)r:cmdrEr rrrrr r run_pythonYs     z1CmdLineTest.test_showrefcount..run_pythonr5r4s{}r-X showrefcounts{'showrefcount': True}s^\[\d+ refs, \d+ blocks\])r?rstripPy_DEBUG assertRegex)rrJcoderrrr rrtest_showrefcountXs  zCmdLineTest.test_showrefcountcCs0tdtddtdddtdddddS)N-mZ fnord43520xyzZrunpytimeit-n1rrrr r rtest_run_modulets  zCmdLineTest.test_run_modulecCs\tddddd}|jd|jdt|}||dd k||d d kdS) N-irRrSrTrUsTimer exit() s1 loops__main__.Timer)rstdinwriterrfind)rr r r r rtest_run_module_bug1764407s   z&CmdLineTest.test_run_module_bug1764407cCs`t}tjtd}t|(tdddtdddWdn1sR0YdS)NtestrRunittestztest/test_longexp.pyz./test/test_longexp.py) osgetcwdpathdirname__file__ removesuffixrZ change_cwdr)rZ defaultwdZprojectlibpathr r rtest_relativedir_bug46421s   z%CmdLineTest.test_relativedir_bug46421cCs tdtddtdddS)Nr4zraise ExceptionpassrVrr r r test_run_codes zCmdLineTest.test_run_codezneed support.FS_NONASCIIcCs"dtjttjf}td|dS)Nzassert(ord(%r) == %s)r4)r FS_NONASCIIordr)rZcommandr r rtest_non_asciiszCmdLineTest.test_non_asciiwin32z Windows has a native unicode APIcCsd}tj}d|d<d|d<d|d}tjtjd|gtjtj|d }| \}}|j d krdd }n"|j d krtd }nt d|j |f| |st d||fdS)NCLC_ALL0ZPYTHONCOERCECLOCALEsimport locale; print(ascii("s""), locale.getpreferredencoding())r4)rBrCenvr"s3Unable to decode the command from the command line:rs'\xff' z Unknown exit code: %s, output=%az%a doesn't start with %a) raenvironcopyr7rFr+r6rESTDOUTrGr AssertionErrorr.)rZ undecodablerrrPr rBrCpatternr r rtest_undecodable_codes.      z!CmdLineTest.test_undecodable_codec sdtjdg}fdd}fdd}fdd}d d }d }||g}|||fD]X}|j|d 8|D]"} || } || jt| qjWdqT1s0YqTdS) Nz;import sys, os; s=os.fsencode(sys.argv[1]); print(ascii(s))r4cs tjd|g}tj|tjddS)Nr4TrBtextr+r6r7runrEargrIrPr r run_defaultsz6CmdLineTest.test_invalid_utf8_arg..run_defaultcs4tjd|g}ttj}d|d<tj|tjd|dS)Nr4rorpT)rBrzrr)r+r6dictrarsr7r|rE)r~rIrrrr r run_c_locales   z7CmdLineTest.test_invalid_utf8_arg..run_c_localecs$tjddd|g}tj|tjddS)NrKutf8r4Tryr{r}rr r run_utf8_modesz8CmdLineTest.test_invalid_utf8_arg..run_utf8_modee:é, euro:€, non-bmp:􏿿utf-8sé)run_cmd)r+r6r-subTestr?rBrMr#) rZbase_cmdrrrZ valid_utf8Z invalid_utf8Z test_argsrr~procr rrtest_invalid_utf8_args      z!CmdLineTest.test_invalid_utf8_argdarwinz%test specific to Mac OS X and Androidc Csdd}d}|dd}t|dd}tj}d|d<tjtj d ||ftj |d }| \}}| ||| |j d dS) Nrrz%import sys; print(ascii(sys.argv[1]))surrogateescaper#rrorpr4)rBrrr)r-r'r#rarsrtr7rFr+r6rErGr?r ) rrzrPZdecodedexpectedrrr rBrCr r rtest_osx_android_utf8s      z!CmdLineTest.test_osx_android_utf8cCs@td}tjd|g}tj|tjtjddd}||jddS)Nz import sys out = sys.stdout print(out.isatty(), out.write_through, out.line_buffering) err = sys.stderr print(err.isatty(), err.write_through, err.line_buffering) r4T)rBrCrzcheckz#False False False False False True ) textwrapdedentr+r6r7r|rEr?rB)rrPr:rr r r%test_non_interactive_output_bufferings   z1CmdLineTest.test_non_interactive_output_bufferingcCsdD]|}d|}tdd|\}}}|dkr.|n|}||dd|d|}tdd|\}}}|dkrj|n|}||dd |qdS) NrAz6import os, sys; sys.%s.buffer.write(b'x'); os._exit(0)-ur4rCxzbinary %s not unbufferedz.import os, sys; sys.%s.write('x'); os._exit(0)ztext %s not unbufferedrr?)rstreamrPrrrr r r rtest_unbuffered_outputsz"CmdLineTest.test_unbuffered_outputcCsTd}tdd|}|jd|jt|\}}||d||d|dS)Nz/import sys; sys.stdout.write(sys.stdin.read(1))rr4rr)rr[r\flushrr?rr.)rrPr r rr r rtest_unbuffered_input/s     z!CmdLineTest.test_unbuffered_inputcCsXd}d}|tj|}d}tdd||d\}}}||d|||d|dS)NAABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEAFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJif 1: import sys path = ":".join(sys.path) path = path.encode("ascii", "backslashreplace") sys.stdout.buffer.write(path)r r4Z PYTHONPATHr#)rapathseprr%r-)rZpath1Zpath2rcrPrrrr r rtest_large_PYTHONPATH9s z!CmdLineTest.test_large_PYTHONPATHcCs<d}td|dd\}}}td|dd\}}}|||dS)Nrr4rF)Z __isolatedr)rrPZrc1Zout1Zerr1Zrc2Zout2Zerr2r r r test_empty_PYTHONPATH_issue16309Hsz,CmdLineTest.test_empty_PYTHONPATH_issue16309cCsdD]}tj}||d<tjtjdgtjtjtj|d}d}|j t | dd|j dt |}t| |d }|||qdS) N)r#zlatin-1rZPYTHONIOENCODINGrX)r[rBrCrrua=é b= c=𐀀 d=􏿿r#rrYbackslashreplace)rarsrtr7rFr+r6rErur[r\r#r-rreprr%)rencodingrrr rzr escapedr r rtest_displayhook_unencodableYs   z(CmdLineTest.test_displayhook_unencodablec Cstd}tjd}||d||dt j t j d|f|t j d}|\}}Wdn1sv0YWdn1s0Y|||dS)Nzwb+ASCII)sabcsdefrr4)r[rB)tempfileNamedTemporaryFileralinesepr-r\r&rseekr7rFr+r6rErGr?rM)rrPrr[seprrBrCr r r check_inputks    HzCmdLineTest.check_inputcCs|dddS)Nz-import sys; print(repr(sys.stdin.readline()))s'abc\n'rrr r rtest_stdin_readlinewszCmdLineTest.test_stdin_readlinecCs|dddS)Nzprint(repr(input()))s'abc'rrr r rtest_builtin_input~szCmdLineTest.test_builtin_inputcCsTd}td|\}}}tjdkr8|d||d|n|d||d|dS)Nzif 1: import sys print(1) print(2) print(3, file=sys.stderr) print(4, file=sys.stderr)r4rms1 2 s3 4 s1 2 s3 4 )rr+platformr?rrPrrrr r rtest_output_newlines   zCmdLineTest.test_output_newlinecCs4tdd\}}}||ddd|d|dS)Nr4'r#ignore SyntaxErrorr)rrOr'r?r1r r rtest_unmached_quoteszCmdLineTest.test_unmached_quotecCsDd}td|\}}}|d||d|||ddddS)Nzif 1: import os, sys, test.support test.support.SuppressCrashReport().__enter__() sys.stdout.write('x') os.close(sys.stdout.fileno())r4rxr#rz"Exception ignored in.* OSError: .*)rr?rOr'rr r rtest_stdout_flush_at_shutdowns  z)CmdLineTest.test_stdout_flush_at_shutdowncCs$d}td|\}}}|d|dS)Nzimport sys; sys.stdout.close()r4rrrr r rtest_closed_stdoutszCmdLineTest.test_closed_stdoutposixztest needs POSIX semanticsZvxworksz.test needs preexec support in subprocess.Popencsfdjd}fdd}tjtjdd|gtjtjtj|d}|\}}||d||jd dS) Nzif 1: import os, sys for i, s in enumerate({streams}): if getattr(sys, s) is not None: os._exit(i + 1) os._exit(42)streamscs:dvrtddvr$tddvr6tddS)Nr[rrBr"rCr*)rarHr rr rpreexecs   z+CmdLineTest._test_no_stdio..preexecr3r4)r[rBrC preexec_fnr*) formatr7rFr+r6rErGr?r )rrrPrr rrr rr_test_no_stdios    zCmdLineTest._test_no_stdiocCs|dgdS)Nr[rrr r r test_no_stdinszCmdLineTest.test_no_stdincCs|dgdS)NrBrrr r rtest_no_stdoutszCmdLineTest.test_no_stdoutcCs|dgdS)NrCrrr r rtest_no_stderrszCmdLineTest.test_no_stderrcCs|gddS)N)r[rBrCrrr r rtest_no_std_streamsszCmdLineTest.test_no_std_streamscCs.|dg}tjdddkr:ttj}|d=d|d<ni}tdD]6}d}td|fi|\}}}||d ||qFt t |}|j t |d d |d d }td|dd\}}}|d|td|dd\}}}|d|td|dd\}}}|d|tdd|dd\}}}|d|dS)Nz-RPYTHONHASHSEEDrandomrUZ __cleanenvzprint(hash("spam"))r4rr"z83 runs produced an identical random hash for "spam": {})msgz@rzGCmdLineTest.test_int_max_str_digits..res2int..)rrr'tupler)resrr r rres2int>sz4CmdLineTest.test_int_max_str_digits..res2intrZzint_max_str_digits=0)rrzint_max_str_digits=4000)r%zint_max_str_digits=100000)順r&rqzint_max_str_digits=6000)pr')rrr?r+get_int_max_str_digits)rrPr$r#r r rtest_int_max_str_digits2s6  z#CmdLineTest.test_int_max_str_digitsN)F)A__name__ __module__ __qualname__rrrr!r)r0r2r`skipIfrr@rQrWr^rgriZ skipUnlessrrjrlr+rrxrZ is_androidrrrrrrrrrrrrrrrarrrrrrrrrrrrrr rrrrrrrr)r r r rrs        !  +      %  ;    rrc@s,eZdZddZddZddZddZd S) IgnoreEnvironmentTestcKsd|}tdd|fi|S)Nz@import sys; sys.stderr.write(str(sys.flags)); sys.exit(not ({}))r3r4)rr)r predicaterrPr r rrun_ignoring_varsZs z'IgnoreEnvironmentTest.run_ignoring_varscCsd}|jd||ddS)NZshould_be_ignoredz'{}' not in sys.pathr)r0r)rrcr r rtest_ignore_PYTHONPATHbs z,IgnoreEnvironmentTest.test_ignore_PYTHONPATHcCs|jddddS)Nz!sys.flags.hash_randomization == 1rqrr0rr r rtest_ignore_PYTHONHASHSEEDgsz0IgnoreEnvironmentTest.test_ignore_PYTHONHASHSEEDcCsd}|j|ddddddS)Nz (sys.flags.debug == sys.flags.optimize == sys.flags.dont_write_bytecode == sys.flags.verbose == 0) rUrr2)rZexpected_outcomer r rtest_sys_flags_not_setksz,IgnoreEnvironmentTest.test_sys_flags_not_setN)r*r+r,r0r1r3r4r r r rr.Vsr.cCs tdSr)r reap_childrenr r r rtearDownModulezsr6__main__)rar7r+rrr`r_rZtest.support.script_helperrrrrrhasattrrNrZTestCaserr-r.r6r*rr r r rs.  @"