K i)ddlZddlZddlZddlZddlZddlZddlZddlZddlm Z m Z ddl m Z ddl mZddlmZmZmZddlmZddlmZmZmZmZddlmZdd lmZmZeGd d ej>Z eGd d eZ!y)N) HTTPClient HTTPError) HTTPServer)gen_log)fork_processestask_id Subprocess)SimpleAsyncHTTPClient)bind_unused_port ExpectLog AsyncTestCasegen_test) skipIfNonUnixRequestHandler Applicationc*eZdZdZfdZdZxZS) ProcessTestc<Gddt}td|fgS)NceZdZdZy)+ProcessTest.get_app..ProcessHandlerc~|jddr-tjt|jd|jddr@tjtj t|jd|j ttj y)Nexitsignal) get_argumentos_exitintkillgetpidwritestr)selfs _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/tornado/test/process_test.pygetz/ProcessTest.get_app..ProcessHandler.gets{$$VT2HHS!2!26!:;<$$Xt4GGBIIKT->->x-H)IJ 3ryy{+,N)__name__ __module__ __qualname__r%r&r$ProcessHandlerrs -r&r+/r)r#r+s r$get_appzProcessTest.get_apps# -^ -S.1233r&ct>tjdtjt j dt jdt|%y)Nz$aborting child process from tearDownr) rloggingerrorshutdownrrralarmsupertearDown)r# __class__s r$r5zProcessTest.tearDown$sG 9  MM@ A     HHQK Q r&c~ ttd5t\ fdtjd t dd}j |tjd |dvr;j|t fd}tj|n|d k(rj|t jtt dfd }|d d |dd t#|dj$|dd t#|dj$}|dd t#|dj$}j'|||dd t)j*ddddy#t$rW}j|jdjt jYd}~dddyd}~wwxYw#t,$rt/j0d|d wxYw#1swYyxYw)Nz:(Starting .* processes|child .* exited|uncaught exception)cd|fzS)Nzhttp://127.0.0.1:%d%sr*)pathports r$get_urlz/ProcessTest.test_multi_process..get_url=s.$==r&) max_restartsr)rr/cKtj}|jgtjj d{y7wN)rr- add_socketsasyncioEventwait)serverr#socks r$fz)ProcessTest.test_multi_process..fQs?!+DLLN!;**D62%mmo22444sAAAAc j|S#t$r}|r|jdk(sYd}~yd}~wwxYw)NiW)fetchrcode)urlfail_okeclientr;s r$rJz-ProcessTest.test_multi_process..fetch`s@&#)<< #==(&$+# %1>&s ?:?z/?exit=2T)rMz/?exit=3r,z/?exit=0z/?exit=4zexception in child process %d)exc_info)F)r rr rr3rassertIsNotNone SystemExit assertEqualrK assertIsNonercloserBrunrr rbodyassertNotEqualrr Exceptionr0r1) r#idrNrGrJpidpid2rOr;r:rFs ` @@@@r$test_multi_processzProcessTest.test_multi_process3s  Q L *+JD$ > LLO #AA6$$R( Q7 <$$R35 KK$1W$$R3JJL ((=>F&*d3*d3c (*d3eCjoo.C*d3uSz/D''T2*d3HHQKSL L    +!!'), )L L  x  =rDQ UL L sB(H33F*3D.H * H 3AH8H3H  H3 #H00H33H<)r'r(r)r-r5r] __classcell__)r6s@r$rrs 4 Qr&rc~eZdZdZedZedZedZdZedZ dZ edZ ed Z y ) SubprocessTestcl|jj|jjyr@)proc terminaterDr#subprocs r$ term_and_waitzSubprocessTest.term_and_waits"   r&c#Kttjddgtjtjtj j fdj jjj jjjjdjjdjjd}j|djjdjjd jj}j|d yw) N-u-istdinstdoutstderrc&jSr@rfrdsr$z0SubprocessTest.test_subprocess.. 2 27 ;r&>>> sprint('hello')  hello sraise SystemExit r&)r sys executableSTREAM subprocessSTDOUT addCleanuprlrUrk read_untilr!rSread_until_closer#datares` @r$test_subprocesszSubprocessTest.test_subprocesss ^^T4 (##$$$$   ;< ,,-  ++,nn''00 /0^^..u55 z*nn''00 12^^4466 s#sE8E<c#Kttjddgtjtjtj j fdjjdjjjj}j|dyw)Nrhrirjc&jSr@rordsr$rpz1SubprocessTest.test_close_stdin..rqr&rrrs) r rurvrwrxryrzrlr{rkrUr|rSr}s` @r$test_close_stdinzSubprocessTest.test_close_stdins ^^T4 (##$$$$   ;<nn''00 ^^4466 u%sCC c#&Kttjdddgtjj fdj j d}j|dj jyw)Nrh-cz'import sys; sys.stderr.write('hello\n'))rmc&jSr@rordsr$rpz,SubprocessTest.test_stderr..rqr&rsrt) r rurvrwrzrmr{rSrUr}s` @r$ test_stderrzSubprocessTest.test_stderrss ^^T4)S T$$  ;<^^..u55 z*sB BcTtj|jtjttj ddg}|j |j|j}|j|d|j|j|yNrpassr) r initializerz uninitializerurvset_exit_callbackstoprDrS returncoder#rerets r$ test_sigchildzSubprocessTest.test_sigchildsx  //0cnndF;<!!$)),iik a  ++S1r&c#*Ktj|jtjttj ddg}|j }|j|d|j|j|ywr) r rrzrrurv wait_for_exitrSrrs r$test_sigchild_futurez#SubprocessTest.test_sigchild_futuresp  //0cnndF;<))++ a  ++S1sBBcDtjjtjttj ddgtj }j|jj|jjtjdtj|jt j" j%}j-|j.|j-|t j" y#t&$rc|jj)}|j+fd j%t'd#t&$r t'dwxYwwxYw)Nrzimport time; time.sleep(30))rlg?c$jSr@)r)rGr#s r$rpz5SubprocessTest.test_sigchild_signal..s DIIKr&z=subprocess closed stdout but failed to get termination signalzsubprocess failed to terminate)r rrzrrurvrwrlrUrrtimesleeprrr[rSIGTERMrDAssertionErrorr|add_done_callbackrSr)r#rerfuts` r$test_sigchild_signalz#SubprocessTest.test_sigchild_signalsA  //0 ^^T#@ A$$  ,,-!!$)), 3  V^^, ))+C$ ++S1 v~~o.% ..113C  ! !"7 8  %V" G$%EFF G s$%D337F+F; FFFc#Ktj|jtjttj ddg}|j tj5}|jddd|jjjdy#1swY0xYww)Nrimport sys; sys.exit(1)r/) r rrzrrurv assertRaisesrxCalledProcessErrorrrS exceptionr)r#recms r$test_wait_for_exit_raisez'SubprocessTest.test_wait_for_exit_raises  //0cnnd4MNO   z<< = *'') ) * 00!4 * *sA/B?1B3/B?3B<8B?c#Ktj|jtjttj ddg}|j d}|j|dyw)NrrF) raise_errorr/)r rrzrrurvrrSrs r$!test_wait_for_exit_raise_disabledz0SubprocessTest.test_wait_for_exit_raise_disableds`  //0cnnd4MNO))e)<< a sA7A9N) r'r(r)rfrrrrrrrrrr*r&r$r`r`s$$( & &  222&/P55!!r&r`)"rBr0rrrxrurunittesttornado.httpclientrrtornado.httpserverr tornado.logrtornado.processrrr tornado.simple_httpclientr tornado.testingr r r rtornado.test.utilr tornado.webrrTestCaserr`r*r&r$rs~  4)??;PP+3n(##nnb@!]@!@!r&