W{tSSKrSSKrSSKrSSKrSSKrSSKJr SSKrSSKrSSK J r SSK J r SSK J r SSK Jr \ R"S5r\ R"S5rSS KJr S rS rS,S jr\R,S 5rSr"SS\R25r"SS\R25r"SS\R25r"SS\5r"SS\5r"SS\5r"SS\5r "SS\5r!"SS \5r""S!S"\5r#"S#S$\5r$"S%S&\5r%"S'S(\5r&"S)S*\5r'\(S+:Xa\RR"5 gg)-N)dedent)support) import_helper) os_helper) script_helper _interpreters_testinternalcapi)InterpreterNotFoundErrorc[R"5upURSS5n[SUSUS35nU[ USS94$)N  z- import contextlib with open(zg, 'w', encoding="utf-8") as spipe: with contextlib.redirect_stdout(spipe): z utf-8encoding)ospipereplaceropen)scriptrwindentedwrappeds >/opt/alt/python313/lib64/python3.13/test/test__interpreters.py_captured_scriptrs\ 779DA~~d$89H#    G DW- --c[U5up#U [RX5 UR5sSSS5 $!,(df  g=fN)rr run_stringread)interprequestrrpipes r _run_outputr$$s2$W-MF   0zz| s %? A cUc[Rn[R"USS9Hn[R U5(dM g [ S5e)NF)errorzinterp is not running)r SHORT_TIMEOUTsleeping_retryr is_running RuntimeError)r!timeout_s r_wait_for_interp_to_runr-+sM''  # #G5 9  # #F + + :233rc#@^^# [R"5umnUU4Sjn[R"US9nUR 5 [ T5 Sv [ USSS9nURS5 SSS5 UR5 g!,(df  N=f7f)NcL>[RT[STS355 g)Nz7 # wait for "signal" with open(zG, encoding="utf-8") as rpipe: rpipe.read() )rrr)r!rsrrun_running..run;s.  5c 1* rtargetrrrdone) rr threadingThreadstartr-rwritejoin)r!rr0tspipers` @r_runningr<8sp 779DAq $AGGIF# aw '5 F (FFH ( 'sAB"B 4B BBc[R5H"tpUS:XaM [RU5 M$ g![Ra M>f=f)Nr)rlist_alldestroyInterpreterError)idr,s rclean_up_interpretersrBMsN((* 7    ! !" % + --   s<AAc\rSrSrSrSrg)TestBaseWc[5 gr)rBselfs rtearDownTestBase.tearDownYsrN)__name__ __module__ __qualname____firstlineno__rI__static_attributes__rKrrrDrDWs rrDc \rSrSrSrSrSrg)IsShareableTests`c/SQnUHAnURU5 UR[RU55 SSS5 MC g!,(df  MU=f)N) Nspamspam iTFgY@))rVeggs)subTest assertTruer is_shareable)rH shareablesobjs rtest_default_shareables(IsShareableTests.test_default_shareablesbsJ  Cc"!..s35#"""s %A  A c `"SS5n"SS[5n[S[[[5[ 5UU"S5U"S5/ nUHJnUR [ U55 UR[RU55 SSS5 ML g!,(df  M^=f)Nc \rSrSrSrSrSrg)3IsShareableTests.test_not_shareable..CheesevcXlgrname)rHrgs r__init__.Cheese.__init__ws rcUR$rrfrGs r__str__;IsShareableTests.test_not_shareable..Cheese.__str__ys yy rrfN)rLrMrNrOrhrkrPrKrrCheesercvs  ! !rrmc\rSrSrSrg)5IsShareableTests.test_not_shareable..SubBytes|rKNrLrMrNrOrPrKrrSubBytesro|srrr. WensleydalerU) bytesNotImplementedtypeobject ExceptionrZrepr assertFalserr\)rHrmrrnot_shareablesr^s rtest_not_shareable#IsShareableTests.test_not_shareableus ! !  2u 2  }%! "Cd3i(  !..s35)("((s ,%B B- rKN)rLrMrNrOr_r|rPrKrrrRrR`s 5&5rrRcV\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rg)ShareableTypeTestsc,UH|nURU5 [RU5n[RU5nUR XB5 UR [ U5[ U55 SSS5 M~ g!,(df  M=fr)rZr get_crossinterp_datarestore_crossinterp_data assertEqualassertIsrv)rHvaluesr^xidgots r_assert_values!ShareableTypeTests._assert_valuesskCc"'<0ShareableTypeTests.test_bytes..s&5%3JJq(4J@%3s )rrangerGs r test_bytesShareableTypeTests.test_bytess# 5%*2s^5 5rc*UR/SQ5 g)N)z hello worldu 你好世界rrGs r test_strsShareableTypeTests.test_strss ?@rcUR[R"[SS5[R [R *S- /55 g)NrrrX)r itertoolschainrsysmaxsizerGs rtest_intShareableTypeTests.test_ints< IOOE"cN-0[[3;;,:J,KM NrcL[RS-[R*S- SS-/nUHPnURU5 UR[5 [ R U5 SSS5 SSS5 MR g!,(df  N=f!,(df  Mu=f)NrXri)rrrZ assertRaises OverflowErrorr r)rHintsrs rtest_non_shareable_int)ShareableTypeTests.test_non_shareable_intsw KK!O [[L1  tG  Aa&&}5%::1=6!55!s$BB.B B B B# c*URSS/5 g)NTFrrGs r test_boolShareableTypeTests.test_bools T5M*rc*UR/SQ5 g)N)gg?ggȑݚ?gȑݚrrGs r test_floatShareableTypeTests.test_floats EFrcPUR/SQ5 UR/SQ5 g)N)rKrX)helloworld)rXTr))r)rXr)rr)rrGs r test_tupleShareableTypeTests.test_tuples$ PQ   rcb[5[5/nUHn[SSU/5nUR[ U55 UR [ 5 [RU5 SSS5 SSS5 [SSU4/5nURS[ U5-5 UR [ 5 [RU5 SSS5 SSS5 M g!,(df  N=f!,(df  N=f!,(df  N==f!,(df  GM=f)Nrg?znested ) rxrwtuplerZryr ValueErrorr r)rHnon_shareablessvalues r*test_tuples_containing_non_shareable_types=ShareableTypeTests.test_tuples_containing_non_shareable_typess   A1c1+&Ed5k*&&z2%::5A3+ 1b1$-(Ei$u+56&&z2%::5A376 32+*3276sHC<C+.C<*DD D+ C9 5C<< D D D D. rKN)rLrMrNrOrrrrrrrrrrrrPrKrrrrs=4( 5AN >+G Brrc\rSrSrSrSrg) ModuleTestsc@[[R5S5 g)Nzimport _interpreters)r$rcreaterGs rtest_import_in_interpreter&ModuleTests.test_import_in_interpreters  " " rrKN)rLrMrNrOrrPrKrrrrs rrc&\rSrSrSrSrSrSrg) ListAllTestsc[R5tp[R5VVs/sHtp2UPM nnnURXA/5 gs snnfr)rget_mainr>r)rHmainr,rAidss r test_initialListAllTests.test_initialsH ))+ - 6 6 89 8fbr 89 f%:s Ac[R5tp[R5n[R5n[R5VVs/sHtpRUPM nnnUR XaX4/5 gs snnfr)rrrr>rrHrr,firstsecondrArs rtest_after_creating ListAllTests.test_after_creatingsg ))+$$&%%' - 6 6 89 8fbr 89 U34:s A9c([R5tp[R5n[R5n[RU5 [R 5VVs/sHtpRUPM nnnUR XaU/5 gs snnfr)rrrr?r>rrs rtest_after_destroying"ListAllTests.test_after_destroyingst ))+$$&%%'e$ - 6 6 89 8fbr 89 Vn-:s* BrKN)rLrMrNrOrrrrPrKrrrrs& 5.rrc \rSrSrSrSrSrg)GetCurrentTestsic[R5tp[R5tp2URX15 UR U[ 5 gr)rr get_currentrassertIsInstanceint)rHrr,curs r test_mainGetCurrentTests.test_main s@ ))+++- # c3'rcV[R5tp[R5n[U[ S55n[ UR 55n[R5VVs/sHtpbUPM snnup'URXW5 URXQ5 gs snnf)Nz import _interpreters cur, *_ = _interpreters.get_current() print(cur) assert isinstance(cur, int) ) rrrr$rrstripr>rassertNotEqual)rHrr,r!outrrAexpecteds rtest_subinterpreter#GetCurrentTests.test_subinterpreters ))+%%'&&*# #))+(5(>(>(@A(@fbr(@A  ' C&Bs/ B%rKN)rLrMrNrOrrrPrKrrrrs ( 'rrc \rSrSrSrSrSrg) GetMainTestsic[R5VVs/sHtpUPM snnun[R5tpBURXC5 UR U[ 5 gs snnfr)rr>rrrr)rHrAr,rrs rtest_from_mainGetMainTests.test_from_main!sY'4'='='?@'?VRb'?@  ))+ ( dC(As A(c [R5VVs/sHtpUPM snnun[R5n[U[ S55n[ UR 55nURXc5 gs snnf)Nz import _interpreters main, *_ = _interpreters.get_main() print(main) assert isinstance(main, int) )rr>rr$rrrr)rHrAr,rr!rrs rtest_from_subinterpreter%GetMainTests.test_from_subinterpreter'sq'4'='='?@'?VRb'?@ %%'&&*# 399; (As A?rKN)rLrMrNrOrrrPrKrrrrs ) )rrcb\rSrSrSr\R "S5S5rSrSr Sr Sr S r g ) IsRunningTestsi4cv[R5tpUR[RU55 gr)rrr[r))rHrr,s rrIsRunningTests.test_main6s) ))+  0067rzFails on FreeBSDcN[R5nUR[RU55 [ U5 UR [RU55 SSS5 UR[RU55 g!,(df  N3=fr)rrrzr)r<r[rHr!s rr"IsRunningTests.test_subinterpreter:so%%' 11&9: f  OOM44V< = 11&9: s %B B$c[R5n[U[SUS355nUR UR 5S5 g)NzJ import _interpreters if _interpreters.is_running(zZ): print(True) else: print(False) True)rrr$rrr)rHr!rs rr'IsRunningTests.test_from_subinterpreterCsO%%'&&.))/1 *# f-rc[R5n[RU5 UR[5 [R U5 SSS5 g!,(df  g=fr)rrr?rr r)rs rtest_already_destroyed%IsRunningTests.test_already_destroyedNsG%%'f%   7 8  $ $V ,9 8 8 A A,cUR[5 [RS5 SSS5 g!,(df  g=fNi@B)rr rr)rGs rtest_does_not_exist"IsRunningTests.test_does_not_existTs+   7 8  $ $Y /9 8 8 5 AcUR[5 [RS5 SSS5 g!,(df  g=fNr)rrrr)rGs r test_bad_idIsRunningTests.test_bad_idXs*   z *  $ $R (+ * *rrKN) rLrMrNrOrunittestskiprrrr rrPrKrrrr4s98]]%&;'; .- 0)rrch\rSrSrSr\R "S5S5rSrSr Sr Sr S r S r g ) CreateTestsi]c[R5nURU[5 [R 5VVs/sHtpUPM nnnUR WU5 gs snnfr)rrrrr>assertIn)rHrAr,afters r test_in_mainCreateTests.test_in_main_sT  ! ! # b#&"/"8"8":;":":; b% [R5mTR5 TR5 gr)rracquirerelease)rAlocksrf%CreateTests.test_in_thread..fss#%%'B LLN LLNrr2c3(# UHtpUv M g7frrKrrAr,s rr-CreateTests.test_in_thread..}>%=62B%=) r5Lockr6r7r9rrr>r)rHr*r:rrAr)s @@rtest_in_threadCreateTests.test_in_threadpst~~     A &  GGI >]%;%;%=>> b% Ts B B%cV[R5VVs/sHtpUPM snnun[R5n[U[ S55n[ UR 55n[S[R555nURXsXF15 gs snnf)Nz import _interpreters id = _interpreters.create() print(id) assert isinstance(id, int) c3(# UHtpUv M g7frrKr-s rr5CreateTests.test_in_subinterpreter..r/r0) rr>rr$rrrrr)rHrAr,rid1rid2rs rtest_in_subinterpreter"CreateTests.test_in_subinterpreters"/"8"8":;":":;""$#v'  #))+>]%;%;%=>> s 01[T[S55n[UR55mg)Nz| import _interpreters id = _interpreters.create() print(id) )r$rrr)rr7r8s rr*6CreateTests.test_in_threaded_subinterpreter..fs-c6+$C ciik"Crr2c3(# UHtpUv M g7frrKr-s rr>CreateTests.test_in_threaded_subinterpreter..r/r0) rr>rr5r6r7r9rr) rHrAr,rr*r:rr7r8s @@rtest_in_threaded_subinterpreter+CreateTests.test_in_threaded_subinterpreters"/"8"8":;":":;""$ #   A &   >]%;%;%=>> sC 01#.?&>FBR&>r0rc3(# UHtpUv M g7frrKr-s rrrDr/r0)rrr>rrappendr?r)rHbeforerr,rArs rtest_after_destroy_all"CreateTests.test_after_destroy_alls?m&<&<&>??qA%%'B JJrNB  ! !" % ! ! #>]%;%;%=>> " .rc[S[R555n[R5n[R5n[R5n[R U5 [R U5 [R5n[S[R555nUR XaXS1-5 g)Nc3(# UHtpUv M g7frrKr-s rr6CreateTests.test_after_destroy_some..rEr0c3(# UHtpUv M g7frrKr-s rrrMr/r0)rrr>rr?r)rHrHr7r8id3rArs rtest_after_destroy_some#CreateTests.test_after_destroy_somes?m&<&<&>??""$""$""$c"c"  ! ! #>]%;%;%=>> " 23rrKN)rLrMrNrOrrrr#r2r9r@rIrPrPrKrrrr]s?!]]?@)A)! 22( / 4rrcP\rSrSrSrSrSrSrSrSr Sr S r S r S r S rg ) DestroyTestsic[R5n[R5n[R5n[S[R555nUR X$5 [R U5 [S[R555nUR X%5 UR X5 UR X55 g)Nc3(# UHtpUv M g7frrKr-s rr(DestroyTests.test_one..rEr0c3(# UHtpUv M g7frrKr-s rrrVr/r0)rrrr>rr? assertNotIn)rHr7r8rOrHrs rtest_oneDestroyTests.test_ones""$""$""$?m&<&<&>?? c"c">]%;%;%=>> $ c! c!rc[S[R555n[5n[S5H(n[R 5nUR U5 M* [S[R555nUR XQU-5 UHn[RU5 M [S[R555nUR Xa5 g)Nc3(# UHtpUv M g7frrKr-s rr(DestroyTests.test_all..s@'?VRb'?r0rc3(# UHtpUv M g7frrKr-s rrr]rEr0c3(# UHtpUv M g7frrKr-s rrr]r/r0)rrr>rrr rr?)rHinitialrr,rArHrs rtest_allDestroyTests.test_alls@}'='='?@@eqA%%'B GGBK?m&<&<&>?? 3/B  ! !" %>]%;%;%=>> (rcz^^[R5VVs/sHtpUPM snnumTR[R5 [R T5 SSS5 UU4Sjn[ R "US9nUR5 UR5 gs snnf!,(df  NP=f)Nc>TR[R5 [RT5 SSS5 g!,(df  g=fr)rrr@r?)rrHsrr*!DestroyTests.test_main..fs2""=#A#AB%%d+CBBs A Ar2) rr>rr@r?r5r6r7r9)rHrAr,r*r:rs` @rrDestroyTests.test_mains"/"8"8":;":":;   }== >  ! !$ '? ,   A &   < > >s B& B,, B:c[R5n[RU5 UR[5 [RU5 SSS5 g!,(df  g=fr)rrr?rr rHrAs rr#DestroyTests.test_already_destroyedsG  ! ! #b!   7 8  ! !" %9 8 8r cUR[5 [RS5 SSS5 g!,(df  g=fr )rr rr?rGs rr  DestroyTests.test_does_not_exists+   7 8  ! !) ,9 8 8rcUR[5 [RS5 SSS5 g!,(df  g=fr)rrrr?rGs rrDestroyTests.test_bad_ids*   z *  ! !" %+ * *rcB[R5VVs/sHtpUPM snnun[R5n[SUS35n[R X5 [ S[R555nUR XSU15 gs snnf)NzY import _interpreters try: _interpreters.destroy(zV) except _interpreters.InterpreterError: pass c3(# UHtpUv M g7frrKr-s rr1DestroyTests.test_from_current..r/r0rr>rrrrr)rHrAr,rrrs rtest_from_currentDestroyTests.test_from_currents"/"8"8":;":":;  ! ! #'(*d+    ,>]%;%;%=>> r +.r/r0rq)rHrAr,rr7r8rrs rtest_from_siblingDestroyTests.test_from_siblings"/"8"8":;":":;""$""$##&%(    ->]%;%;%=>> s ,[RT5 gr)rr?rAsrr*.DestroyTests.test_from_other_thread..fs  ! !" %rr2)rrr5r6r7r9)rHr*r:rAs @rtest_from_other_thread#DestroyTests.test_from_other_threads:  ! ! # &   A &   rc[R5VVs/sHtpUPM snnun[R5n[U5 UR [R U5SUS3S9 UR [RSUS3S9 [RU5 SSS5 UR [R U55 SSS5 gs snnf!,(df  NA=f!,(df  g=f)NzInterp z& should be running before destruction.)msgz%Should not be able to destroy interp z while it's still running.) rr>rr<r[r)rr@r?)rHrAr,rr!s rtest_still_runningDestroyTests.test_still_runnings"/"8"8":;":":;%%' f  OOM44V<")&1W X  Z""=#A#A)NvhVp'q#s%%f-s OOM44V< = < ss  s* C A C6C%*,C6% C3 /C66 DrKN)rLrMrNrOrYrarrr rrrrxr~rrPrKrrrSrSs4 " ) & -& , - >rrSc4^\rSrSrU4SjrSrSrSrU=r$) CommonTestsi*cT>[TU]5 [R5UlgrsupersetUprrrArH __class__s rrCommonTests.setUp+  &&(rcSnUR[U5 [RURSS5 SSS5 UR[U5 [RURSSS9 SSS5 UR[U5 [R URSSS9 SSS5 UR[U5 [R URSSS9 SSS5 g!,(df  N=f!,(df  N=f!,(df  Np=f!,(df  g=f)Nzexpected 'shared' to be a dictarXsharedcgrrKrKrr-CommonTests.test_signatures..9Dr)assertRaisesRegex TypeErrorrexecrArrun_func)rHrs rtest_signaturesCommonTests.test_signatures/s.  # #Is 3   twwQ /4  # #Is 3   twwA  64  # #Is 3  $ $TWWc! $ <4  # #Is 3  " "477L " C4 3 4 3 3 3 3 3 3 3s/"C? D D!!D2? D  D! D/2 EcSS0nSnUR[U5 [RURSUS9 SSS5 UR[U5 [R URSUS9 SSS5 UR[U5 [R URSUS9 SSS5 g!,(df  N=f!,(df  N_=f!,(df  g=f)Nurzsurrogates not allowedrrcgrrKrKrrr:CommonTests.test_invalid_shared_encoding..Drr)rUnicodeEncodeErrorrrrArr)rH bad_sharedrs rtest_invalid_shared_encoding(CommonTests.test_invalid_shared_encoding;s] &  # #$6 <   twwJ  ?=  # #$6 <  $ $TWWc* $ E=  # #$6 <  " "477L " L= < = < < < < [TU]5 [R5Ulgrrrs rrRunStringTests.setUpIrrc[S5upU [RURU5 UR 5nSSS5 UR WS5 g!,(df  N!=f)Nprint("it worked!", end="") it worked!)rrrrAr r)rHrfilers r test_successRunStringTests.test_successMsP'(EF    $ $TWWf 5))+C l+ Ts 1A A*c^^[S5umnU UU4Sjn[R"US9nUR5 UR 5 UR 5nSSS5 TR WS5 g!,(df  N!=f)NrcF>[RTRT5 gr)rrrA)rrHsrr*(RunStringTests.test_in_thread..fXs((&9rr2r)rr5r6r7r9r r)rHrr*r:rrs` @rr2RunStringTests.test_in_threadUsh'(EF   :  *A GGI FFH))+C l+Ts A A:: Bc[R5n[S5up#U [RX5 UR 5nSSS5 UR WS5 g!,(df  N!=f)Nz import threading def f(): print('it worked!', end='') t = threading.Thread(target=f) t.start() t.join() rrrrrr r)rH subinterprrrs rtest_create_thread!RunStringTests.test_create_threadbs^!((* ')   $ $Y 7))+C l+ Ts &A%% A3cURS5 Sn[RS5n[SUS35up4U [R X#5 UR 5nSSS5 UR WU5 SSS5 URS5 [RS5n[S5up4U [R X#5 UR 5nSSS5 UR WS5 SSS5 g!,(df  N=f!,(df  N=f!,(df  NK=f!,(df  g=f) Nisolatedspam spam spam spam spama< import threading def f(): print('it worked!', end='') try: t = threading.Thread(target=f, daemon=True) t.start() t.join() except RuntimeError: print('z', end='') z not isolatedlegacyz import threading def f(): print('it worked!', end='') t = threading.Thread(target=f, daemon=True) t.start() t.join() r)rZrrrrr rrHrrrrrs rtest_create_daemon_thread(RunStringTests.test_create_daemon_threadss \\* %1H%,,Z8I+ 1%:& - LF((;iik   S( +'&*\\. )%,,X6I+-LF((;iik   S, /* ) & %@* )sF+D&D#D%D7;&D&!D7 D D D#& D4 0D77 Ec [R5n/SQnUHUnURU5 [RU[ US95 [R USU<S35 SSS5 MW g!,(df  Mi=f)N)NrVrU*)r^zassert(obj == ))rrrZset___main___attrsdictr)rHr!objectsr^s rtest_shareable_types#RunStringTests.test_shareable_typesso%%'  Cc"00#G(($SG1-#"""s 9A55 B cSn[R5n[SUS35up4U [RX#5 UR 5nSSS5 UR WU5 g!,(df  N!=f)Nrz import os, sys try: os.execl(sys.executable) except RuntimeError: print('z', end='') rrs r test_os_execRunStringTests.test_os_execst-!((* '- !z" )   $ $Y 7))+C h' Ts &A++ A9cSSKnURSSS9nURS5 UR5 Sn[ SUR SUS 35n[ RURU5 URS5 UR5nURXS5 SSS5 g!,(df  g=f) Nrzw+rrrrz import os try: os.fork() except RuntimeError: with open('zE', 'w', encoding='utf-8') as out: out.write('z') ) tempfileNamedTemporaryFiler8flushrrgrrrAseekr r)rHrrrrcontents r test_forkRunStringTests.test_forks  ( ( ( @D JJrN JJL1H! !% {+$$,:. F  $ $TWWf 5 IIaLiikG   W /#A @ @s BB00 B>c[UR5 UR[R5 [R URS5 SSS5 SSS5 g!,(df  N=f!,(df  g=f)N print("spam"))r<rArrr@rrGs rtest_already_running#RunStringTests.test_already_runningsT dgg ""=#A#AB((/BC BB s" A9!A(A9( A6 2A99 Bc@SnU[S[R555;a/US- nU[S[R555;aM/UR[5 [R US5 SSS5 g!,(df  g=f)Nrc3(# UHtpUv M g7frrKr-s rr5RunStringTests.test_does_not_exist..sB)Avr)Ar0rXr)rrr>rr rrhs rr "RunStringTests.test_does_not_existsu CB)?)?)ABBB !GBCB)?)?)ABBB   7 8  $ $R 99 8 8s /B BcUR[5 [RSS5 SSS5 g!,(df  g=f)Nrr)rrrrrGs r test_error_idRunStringTests.test_error_ids,   z *  $ $R 9+ * * 6 AcUR[5 [RSS5 SSS5 g!,(df  g=f)NrVr)rrrrrGs rrRunStringTests.test_bad_ids,   y )  $ $V_ =* ) )rcUR[5 [RURS5 SSS5 g!,(df  g=f)NrWrrrrrArGs rtest_bad_scriptRunStringTests.test_bad_scripts0   y )  $ $TWWb 1* ) ) !A AcUR[5 [RURS5 SSS5 g!,(df  g=f)Ns print("spam")rrGs rtest_bytes_for_script$RunStringTests.test_bytes_for_scripts1   y )  $ $TWW.> ?* ) )rc~"SS[5n[URU"S55nURUS5 g)Nc\rSrSrSrg).StrSubclassirKNrqrKrr StrSubclassrsrrz print(1 + 2)z3 )strr$rAr)rHroutputs rtest_str_subclass_string'RunStringTests.test_str_subclass_strings/$#$TWWk.&AB 'rc[R"5upSSSS.n[SUS35n[R UR U5 [R UR U5 [US5n[R"U5nSSS5 URWSS5 URUS S 5 URUS S 5 URUS 5 g!,(df  Nb=f)Nhams-1)rVrYcheddarz eggs = int(eggs) spam = 42 result = spam + eggs ns = dict(vars()) del ns['__builtins__'] import pickle with open(C, 'wb') as chan: pickle.dump(ns, chan) rbrVrrYrresult)r) rrrrrrArrpickleloadr assertIsNonerHrrrrchannss rtest_with_sharedRunStringTests.test_with_sharedswwy c    ((&9  &1 !T]dT"B FR( FR( Hr* "Y-( ]s 9C,, C:c[RUR[S55 SS0n[S5n[R URU5 [RURU5 [ R "5up4[SUS35n[RURU5 [US5n[R"U5nSSS5 URWSSS 5 URUS SS5 URUSS5 g!,(df  NT=f) Nzj spam = 'eggs' ns1 = dict(vars()) del ns1['__builtins__'] rVrzL ns2 = dict(vars()) del ns2['__builtins__'] zr ns = dict(vars()) del ns['__builtins__'] import pickle with open(rrns1rYns2) rrrArrrrrrrr)rHrrrrrrs rtest_shared_overwrites%RunStringTests.test_shared_overwritess  &2+  &!   ((&9  &1wwyc    &1 !T]dT"B E6*F3 E6*F3 FV, ]s D00 D>cz[R"5upSS0n[SUS35n[R UR U5 [R UR U5 [US5n[R"U5nSSS5 URWSS5 g!,(df  N$=f)NrLs not __main__z spam = 42 ns = dict(vars()) del ns['__builtins__'] import pickle with open(rr) rrrrrrArrrrrrs r#test_shared_overwrites_default_vars2RunStringTests.test_shared_overwrites_default_vars.swwyo. c  ((&9  &1 !T]dT"B J9]s 7B,, B:c[R"5up[RUR[ SUS355 [ US5n[R"U5nSSS5 [R"5up[RUR[ SUS355 [ US5n[R"U5nSSS5 URSW5 URSU5 URSW5 URSU5 g!,(df  N=f!,(df  Nh=f)Nz spam = True ns = dict(vars()) del ns['__builtins__'] import pickle with open(zd, 'wb') as chan: pickle.dump(ns, chan) del ns, pickle, chan rz eggs = False ns = dict(vars()) del ns['__builtins__'] import pickle with open(rrVrY) rrrrrArrrrrrX)rHrrrrrs rtest_main_reusedRunStringTests.test_main_reusedBs wwy  &6 c 2 + !T]d++d#Cwwy  &6 c 2+ !T]d++d#C fc" % fc" fc"']]sD(D9( D69 Ec ~[R"5up[SUS35n[R UR U5 [ US5n[R"U5nSSS5 WRS5 URS5 URUS0SSSSS.5 g!,(df  NJ=f) Nz spam = 42 ns = dict(vars()) ns['__builtins__'] = str(ns['__builtins__']) import pickle with open(rr __builtins__ __loader____main__r)rL__annotations____doc__ __package____spec__rV) rrrrrrArrrpopr)rHrrrrrs r test_execution_namespace_is_main/RunStringTests.test_execution_namespace_is_maincswwy c    &1 !T]dT"B ~ | "!   ]s B.. B<zblocking forevercL[S5n[R"5n[R"USU5n[R "U5nUR 5nSSS5 SSS5 URWS5 g!,(df  N)=f!,(df  N2=f)Na from textwrap import dedent import threading import _interpreters id = _interpreters.create() def f(): _interpreters.run_string(id, dedent(''' import time # Give plenty of time for the main interpreter to finish. time.sleep(1_000_000) ''')) t = threading.Thread(target=f) t.start() r!r)rrtemp_dirr make_script spawn_pythonwaitr)rHrdirnamefilenameprocretcodes rtest_still_running_at_exit)RunStringTests.test_still_running_at_exits~     7$00(FKH++H5))+6 !$65 s#/BB!B B B B#r|)rLrMrNrOrrr2rrrrr requires_forkrrr rrrrrrrrrrrrrrPrrs@rrrGs), ,,"%0N (  00*C ::>2@( ):->:(#B8]]%&%'%rrcx^\rSrSrU4SjrSrSS.SjrSrSrS r S r S r S r S r SrSrSrSrU=r$)RunFailedTestsicT>[TU]5 [R5Ulgrrrs rrRunFailedTests.setUprrc^SSKnUR5mURU4Sj5 [R UR [ ST<S355 [R"TX5$)Nrc0>[R"T5$r)rrmtree)tempdirsrr+RunFailedTests.add_module..s 0 0 9rz7 import sys sys.path.insert(0, ru) rmkdtemp addCleanuprrrArrr)rHmodnametextrr(s @r add_moduleRunFailedTests.add_modulese""$ 9:  &6 '{+ 2+ (('@@rFfailsc[R"5up4[SUSUS35R[U55nU(a`[R UR U5nURUS5 U[R"U5 [R"U5 $[R UR U5nURUS5 [R"U5 [R"U5 g! e=f![R"U5 [R"U5 f=f)Nz9 import os, sys os.write(z, b'0') # This raises an exception: {} # Nothing from here down should ever run. os.write(z{, b'1') class NeverError(Exception): pass raise NeverError # never raised ) rrrformatrrrA assertIsNotcloserr r)rHr-r1rrrerrrs r run_scriptRunFailedTests.run_scriptswwy !   VF4L) #..tww?  d+ HHQK HHQK$..tww? c4( HHQK HHQK   HHQK HHQKsA$D *2D D  D.D>cz[U[5(aUnSnO URnURUSS9nUR UR RU5 Uc0UR UR RS5SU5 U$UR UR SRXB55 U$)NTr0:rz{}: {}) isinstancerrLr7rrv formattedsplitr3)rHexctyperr exctype_nameexcinfos r_assert_run_failed!RunFailedTests._assert_run_faileds gs # #"LG"++L//&/5 .. = ;   W..44S9!<) +    W..%__\? Arc*URUSU5 grrA)rHr>rs rassert_run_failed RunFailedTests.assert_run_faileds v6rc(URXU5 grrD)rHr>rrs rassert_run_failed_msg$RunFailedTests.assert_run_failed_msgs f5rcURS5 UR[S5 SSS5 URS5 UR[S5 SSS5 URS5 UR[SS5 SSS5 URS5 UR[SS 5 SSS5 g!,(df  N=f!,(df  N=f!,(df  Nb=f!,(df  g=f) Nz sys.exit(0)z- sys.exit(0) z sys.exit()zG import sys sys.exit() z sys.exit(42)42zI import sys sys.exit(42) SystemExitz6 raise SystemExit(42) )rZrErLrHrGs r test_exitRunFailedTests.test_exits \\- (  " ":0 ) \\, '  " ":0 ( \\. )  & &z4: * \\, '  & &z4: ( '%) ( ( ' * ) ( 's/CC2C&#C7 C C#& C47 Dc2UR[SS5 g)NrVz1 raise Exception("spam") )rHrxrGs rtest_plain_exception#RunFailedTests.test_plain_exceptions ""9f7 rcL[S5nURS5 UR[U5 SSS5 URS5 SnUR X!5nUR[SUS35 SSS5 g!,(df  NV=f!,(df  g=f)Nz x = 1 + 2 y = 2 + 4 z = 4 + 8 # missing close paren print("spam" if x + y + z < 20: ... rmodulespam_spam_spamz import r )rrZrE SyntaxErrorr.)rHrr,rs rtest_invalid_syntax"RunFailedTests.test_invalid_syntaxs  \\( #  " "; 7$\\( #&Gw7H  " ";5y!1 $ #$ #$ #sB .B B B#c0UR[S5 g)Nz+ res = spam + eggs )rE NameErrorrGs rtest_NameErrorRunFailedTests.test_NameErrors y+ rc0UR[S5 g)Nz' object().spam )rEAttributeErrorrGs rtest_AttributeError"RunFailedTests.test_AttributeErrors ~0 rc0UR[S5 g)Nz raise ExceptionGroup('exceptions', [ Exception('spam'), ImportError('eggs'), ]) )rEExceptionGrouprGs rtest_ExceptionGroup"RunFailedTests.test_ExceptionGroup%s ~0 rc*URSSS5 g)NMyErrorrVzj class MyError(Exception): pass raise MyError('spam') )rHrGs rtest_user_defined_exception*RunFailedTests.test_user_defined_exception-s ""9f7 rr|)rLrMrNrOrr.r7rArErHrMrPrVrZr^rbrfrPrrs@rr"r"sP)A).@*764 .  rr"cj^\rSrSrU4SjrSrSrSrSr\ RS5r Sr S r U=r$) RunFuncTestsi5cT>[TU]5 [R5Ulgrrrs rrRunFuncTests.setUp7rrcR[R"5upSn[RUR[ US95 [R URU5 [USS9nUR5nSSS5 URWS5 g!,(df  N!=f)NcSSKn[[SSS9nUR"U5 [ SSS9 SSS5 SSS5 g!,(df  N=f!,(df  g=fNrrrrrr)end contextlibrrredirect_stdoutprintrqr;s rr)RunFuncTests.test_success..script=H aw/5//6,B/70/660/!A AA A A A"rrrr) rrrrrArrrr r)rHrrroutfilers rrRunFuncTests.test_success;sywwy 0 (($)<tww/ !g &',,.C' l+' &s ,B B&cD^^^[R"5unmSmUUU4Sjn[R"US9nUR 5 UR 5 [ USS9nUR5nSSS5 TRWS5 g!,(df  N!=f)NcSSKn[[SSS9nUR"U5 [ SSS9 SSS5 SSS5 g!,(df  N=f!,(df  g=frnrprts rr+RunFuncTests.test_in_thread..scriptMrvrwc>[RTR[TS95 [R TRT5 g)Nrx)rrrArr)rrHrsrr*&RunFuncTests.test_in_thread..fSs/  , ,TWWdQi @  " "477F 3rr2rrr) rrr5r6r7r9rr r)rHrr*r:ryrrrs` @@rr2RunFuncTests.test_in_threadKswwwy1 0  4   A &    !g &',,.C' l+' &s %B Bcj[R"5upSnURn[R UR [ US95 [RUR U5 [USS9nUR5nSSS5 URWS5 g!,(df  N!=f)NcSSKn[[SSS9nUR"U5 [ SSS9 SSS5 SSS5 g!,(df  N=f!,(df  g=frnrprts rr-RunFuncTests.test_code_object..scriptbrvrwrxrrr) rr__code__rrrArrrr r)rHrrrcoderyrs rtest_code_objectRunFuncTests.test_code_object_swwy 0 (($)<tww- !g &',,.C' l+' &s 8B$$ B2c^SmU4SjnUR[5 [RURU5 SSS5 g!,(df  g=f)NTc>grrKrVsrr)RunFuncTests.test_closure..scriptssrrrrrrA)rHrrVs @r test_closureRunFuncTests.test_closureqs=   z *  " "477F 3+ * *s !A  AcSnUR[5 [RURU5 SSS5 g!,(df  g=f)Ncg)NrVrKrKrrr.RunFuncTests.test_return_value..script|srrrHrs rtest_return_valueRunFuncTests.test_return_valuezs5    z *  " "477F 3+ * *s !A AcURS5 S SjnUR[5 [R UR U5 SSS5 SSS5 URS5 SnUR[5 [R UR U5 SSS5 SSS5 URS5 SnUR[5 [R UR U5 SSS5 SSS5 URS5 SS .S jnUR[5 [R UR U5 SSS5 SSS5 URS 5 S nUR[5 [R UR U5 SSS5 SSS5 g!,(df  GN=f!,(df  GN=f!,(df  GNQ=f!,(df  GN[=f!,(df  GN=f!,(df  GN$=f!,(df  N=f!,(df  N=f!,(df  N=f!,(df  g=f)NargscgrrK)rbs rr&RunFuncTests.test_args..scriptrz*argscgrrK)rs rrrrrz**kwargscgrrK)kwargss rrrrrkwonlyTrcgrrKrs rrrrrposonlycgrrKrs rrrrr)r)rZrrrrrArs r test_argsRunFuncTests.test_argss \\& ! "":.&&tww7/" \\' " "":.&&tww7/# \\* % """:.&&tww7/& \\( ## "":.&&tww7/$ \\) $ "":.&&tww7/% $+/." !/.# "/.& %/.$ #/.% $sG!!GG!/H!G3)H H)#!HH)%I !H;#I I.!I>I. G G!! G03 H =H H H& !H)) H8; I I  I I+ 'I.. I<r|)rLrMrNrOrrr2rrrexpectedFailurerrrPrrs@rriri5s@), ,(,$444 88rrir r)*rqrrrrtextwraprr5rtestr test.supportrrr import_modulerr r rr$r-contextmanagerr<rBTestCaserDrRrrrrrrrrSrrr"rirLrrKrrrsh &"&++O< !//0CD2 . 4   ( x   05x((05fOB**OBd ( .8..'h'.)8)*&)X&)R`4(`4Fg>8g>TM(M:N%XN%b ZXZzi88i8X z MMOr