+
    ‚V@i  ã                   óØ   € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHtHtHtHt ^ RIHt  ! R	 R
]4      t] ! R R]P.                  4      4       tR# )é    N)Úgen)ÚIOStream)Úapp_log)Ú	TCPServer)ÚskipIfNonUnix)ÚAsyncTestCaseÚ	ExpectLogÚbind_unused_portÚgen_test)ÚTuplec                   óV   a € ] tR t^t o ]R 4       t]R 4       tR t]R 4       tRt	V t
R# )ÚTCPServerTestc              #  óh  "  €  ! R  R\         4      pR;r# \        4       w  rEV! 4       pVP                  V4       \        \        P                  ! 4       4      p\        \        R4      ;_uu_ 4        VP                  RV34      x € VP                  R4      x € VP                  4       x € \        P                  x € RRR4       Ve   VP                  4        Ve   VP                  4        R# R#   + '       g   i     L<; i  Te   TP                  4        Te   TP                  4        i i ; i5i)c                   óD   a € ] tR t^t o ]P
                  R 4       tRtV tR# )ÚFTCPServerTest.test_handle_stream_coroutine_logging.<locals>.TestServerc              3  óx   "  € VP                  \        R 4      4      x € VP                  4        ^^ ,           R# 5i)ó   helloN)Ú
read_bytesÚlenÚclose©ÚselfÚstreamÚaddresss   &&&Ú=/usr/lib/python3/dist-packages/tornado/test/tcpserver_test.pyÚhandle_streamÚTTCPServerTest.test_handle_stream_coroutine_logging.<locals>.TestServer.handle_stream   s,   é € à×'Ñ'¬¨H«Ó6Ò6Ø—‘”Ø�A—�ùs   ‚8:© N©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú	coroutiner   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   Ú
TestServerr      s   ø‡ € Ø�]‰]ñó öó    r)   NzException in callbackÚ	localhostr   )r   r
   Ú
add_socketr   Úsocketr	   r   ÚconnectÚwriteÚread_until_closer   ÚmomentÚstopr   )r   r)   ÚserverÚclientÚsockÚports   &     r   Ú$test_handle_stream_coroutine_loggingÚ2TCPServerTest.test_handle_stream_coroutine_logging   sñ   é € ô	œô 	ð Ðˆð	Ü)Ó+‰JˆDÙ“\ˆFØ×Ñ˜dÔ#ÜœfŸmšm›oÓ.ˆFÜœ7Ð$;×<Õ<Ø—n‘n k°4Ð%8Ó9Ò9Ø—l‘l 8Ó,Ò,Ø×-Ñ-Ó/Ò/Ü—j‘jÒ ÷	 =ð Ò!Ø—‘”ØÒ!Ø—‘–ñ "÷ =×<ûð Ò!Ø—‘”ØÒ!Ø—‘•ð "üs6   ‚D2–AD Á0AC1Â=D Ã,D2Ã1D	Ã<D Ä+D/Ä/D2c              #  ób  "  €  ! R  R\         4      p\        4       w  r#V! 4       pVP                  V4       \        \        P                  ! 4       4      pVP                  RV34      x € VP                  4       x €pV P                  VR4       VP                  4        VP                  4        R# 5i)c                   ó&   a € ] tR t^2t o R tRtV tR# )ÚETCPServerTest.test_handle_stream_native_coroutine.<locals>.TestServerc              “  óP   "  € VP                  R 4       VP                  4        R# 5i)ó   dataN)r/   r   r   s   &&&r   r   ÚSTCPServerTest.test_handle_stream_native_coroutine.<locals>.TestServer.handle_stream3   s   é € Ø—‘˜WÔ%Ø—‘–ùs   ‚$&r   N)r    r!   r"   r#   r   r%   r&   r'   s   @r   r)   r;   2   s   ø‡ € ÷ð r*   r)   r+   r=   N)
r   r
   r,   r   r-   r.   r0   ÚassertEqualr2   r   )r   r)   r5   r6   r3   r4   Úresults   &      r   Ú#test_handle_stream_native_coroutineÚ1TCPServerTest.test_handle_stream_native_coroutine.   s‰   é € ô	œô 	ô
 &Ó'‰
ˆÙ“ˆØ×Ñ˜$ÔÜœ&Ÿ-š-›/Ó*ˆØ�n‰n˜k¨4Ð0Ó1Ò1Ø×.Ñ.Ó0Ñ0ˆØ×Ñ˜ Ô)Ø�‰ŒØ�‰Žùs   ‚B-B/c                ó”   € \        4       w  r\        4       pVP                  V4       VP                  4        VP                  4        R # ©N)r
   r   r,   r2   )r   r5   r6   r3   s   &   r   Útest_stop_twiceÚTCPServerTest.test_stop_twiceA   s3   € Ü%Ó'‰
ˆÜ“ˆØ×Ñ˜$ÔØ�‰ŒØ�‰Žr*   c              #  ó`  a	a
a"  €  ! V
3R  lR\         4      p\        4       w  r#V! 4       o
S
P                  V4       RV3o^(p\        V4       Uu. uF!  p\	        \
        P
                  ! 4       4      NK#  	  pp. o	\        P                  V	V3R l4       pV Uu. uF
  q‡! V4      NK  	  upx € V P                  \        S	4      ^ R4        \        S	4      V8X  d   V P                  R4       S	 F  pVP                  4        K  	  R# u upi u upi   S	 F  pTP                  4        K  	  i ; i5i)c                   óL   <a € ] tR t^Nt o ]P
                  V3R l4       tRtV tR# )Ú7TCPServerTest.test_stop_in_callback.<locals>.TestServerc              3  óT   <"  € SP                  4        VP                  4       x € R # 5irD   )r2   r0   )r   r   r   r3   s   &&&€r   r   ÚETCPServerTest.test_stop_in_callback.<locals>.TestServer.handle_streamO   s   øé € à—‘”Ø×-Ñ-Ó/Ô/ùs   ƒ%(r   Nr   )r(   r3   s   @€r   r)   rI   N   s   ù‡ € Ø�]‰]ô0ó ö0r*   r)   r+   c              3   ó~   <"  €  V P                  S4      x € SP                  V 4       R #   \         d     R # i ; i5irD   )r.   ÚappendÚOSError)ÚcÚconnected_clientsÚserver_addrs   &€€r   r.   Ú4TCPServerTest.test_stop_in_callback.<locals>.connect\   s=   øé € ð,Ø—i‘i Ó,Ò,ð "×(Ñ(¨Ö+øô ô Úðüs   ƒ=…+ ˜=«:¶=¹:º=zall clients failed connectingzHat least one client should fail connecting for the test to be meaningfulN)r   r
   r,   Úranger   r-   r   r$   ÚassertGreaterr   ÚskipTestr   )r   r)   r5   r6   ÚNÚiÚclientsr.   rO   rP   r3   rQ   s   &        @@@r   Útest_stop_in_callbackÚ#TCPServerTest.test_stop_in_callbackH   s  úé € ÷	0œô 	0ô &Ó'‰
ˆÙ“ˆØ×Ñ˜$ÔØ" DÐ)ˆØˆÜ6;¸A´hÓ?±h°”8œFŸMšM›OÖ,±hˆÐ?ØÐä	�‰õ	,ó 
ð	,ñ $+Ó+¡7˜aˆw�qŽz¡7Ñ+Ò+à×Ñœ3Ð0Ó1°1Ð6UÔVð
	ÜÐ$Ó%¨Ô*ð —‘ð4ôó
 '�Ø—‘–	ó 'ùò1 @ùò ,øó '�Ø—‘–	ò 'üs6   …A
D.Á'DÁ6"D.ÂDÂ(!D.Ã
!D Ã+%D.ÄD+Ä+D.r   N)r    r!   r"   r#   r   r7   rA   rE   rY   r%   r&   r'   s   @r   r   r      sD   ø‡ € Øñó ðð6 ñó ðò$ð ñ)ó ö)r*   r   c                   óJ   a € ] tR t^wt o V 3R lR ltR tR tR tR tRt	V t
R# )	ÚTestMultiprocessc                ó<   <€ V ^8„  d   QhRS[ RS[S[ S[ 3,          /# )é   ÚcodeÚreturn)Ústrr   )Úformatr(   s   "€r   Ú__annotate__ÚTestMultiprocess.__annotate__~   s#   ø€ ÷ ,ñ ,¡ð ,©©c±3¨h­ñ ,r*   c           	     ó*  €  \         P                  ! \        P                  R .RVRRR7      pTP                  TP                  3#   \         P                   d9   p\        RTP                   RTP                   RTP                   24      ThRp?ii ; i)z-Werror::DeprecationWarningTÚutf8)Úcapture_outputÚinputÚencodingÚcheckzProcess returned z stdout=z stderr=N)	Ú
subprocessÚrunÚsysÚ
executableÚCalledProcessErrorÚRuntimeErrorÚ
returncodeÚstdoutÚstderr)r   r_   r@   Úes   &&  r   Úrun_subprocÚTestMultiprocess.run_subproc~   s�   € ð	Ü—^’^Ü—‘Ð!>Ð?Ø#ØØØôˆFð �}‰}˜fŸm™mÐ+Ð+øô	 ×,Ñ,ô 	ÜØ# A§L¡L >°¸!¿(¹(¸À8ÈAÏHÉHÈ:ÐVóàðûð	ús   ‚+A ÁBÁ3BÂBc                óÐ   € \         P                  ! R 4      pV P                  V4      w  r#V P                  RP	                  \        V4      4      R4       V P                  VR4       R# )a  
            import asyncio
            from tornado.tcpserver import TCPServer

            async def main():
                server = TCPServer()
                server.listen(0, address='127.0.0.1')

            asyncio.run(main())
            print('012', end='')
        Ú Ú012N©ÚtextwrapÚdedentru   r?   ÚjoinÚsorted©r   r_   ÚoutÚerrs   &   r   Útest_listen_singleÚ#TestMultiprocess.test_listen_single�   sX   € ô �Šð
ó
ˆð ×#Ñ# DÓ)‰ˆØ×Ñ˜Ÿ™¤¨£Ó-¨uÔ5Ø×Ñ˜˜bÖ!r*   c                óÐ   € \         P                  ! R 4      pV P                  V4      w  r#V P                  RP	                  \        V4      4      R4       V P                  VR4       R# )aÀ  
            import warnings

            from tornado.ioloop import IOLoop
            from tornado.process import task_id
            from tornado.tcpserver import TCPServer

            warnings.simplefilter("ignore", DeprecationWarning)

            server = TCPServer()
            server.bind(0, address='127.0.0.1')
            server.start(3)
            IOLoop.current().run_sync(lambda: None)
            print(task_id(), end='')
        rx   ry   Nrz   r   s   &   r   Útest_bind_startÚ TestMultiprocess.test_bind_start¡   óV   € Ü�Šðó
ˆð" ×#Ñ# DÓ)‰ˆØ×Ñ˜Ÿ™¤¨£Ó-¨uÔ5Ø×Ñ˜˜bÖ!r*   c                óÐ   € \         P                  ! R 4      pV P                  V4      w  r#V P                  RP	                  \        V4      4      R4       V P                  VR4       R# )a  
            import asyncio
            from tornado.netutil import bind_sockets
            from tornado.process import fork_processes, task_id
            from tornado.ioloop import IOLoop
            from tornado.tcpserver import TCPServer

            sockets = bind_sockets(0, address='127.0.0.1')
            fork_processes(3)
            async def post_fork_main():
                server = TCPServer()
                server.add_sockets(sockets)
            asyncio.run(post_fork_main())
            print(task_id(), end='')
        rx   ry   Nrz   r   s   &   r   Útest_add_socketsÚ!TestMultiprocess.test_add_sockets·   r‡   r*   c                óÐ   € \         P                  ! R 4      pV P                  V4      w  r#V P                  RP	                  \        V4      4      R4       V P                  VR4       R# )aÍ  
            import asyncio
            import socket
            from tornado.netutil import bind_sockets
            from tornado.process import task_id, fork_processes
            from tornado.tcpserver import TCPServer

            # Pick an unused port which we will be able to bind to multiple times.
            (sock,) = bind_sockets(0, address='127.0.0.1',
                family=socket.AF_INET, reuse_port=True)
            port = sock.getsockname()[1]

            fork_processes(3)

            async def main():
                server = TCPServer()
                server.listen(port, address='127.0.0.1', reuse_port=True)
            asyncio.run(main())
            print(task_id(), end='')
            rx   ry   Nrz   r   s   &   r   Útest_listen_multi_reuse_portÚ-TestMultiprocess.test_listen_multi_reuse_portÍ   sV   € Ü�Šðó
ˆð, ×#Ñ# DÓ)‰ˆØ×Ñ˜Ÿ™¤¨£Ó-¨uÔ5Ø×Ñ˜˜bÖ!r*   r   N)r    r!   r"   r#   ru   r‚   r…   r‰   rŒ   r%   r&   r'   s   @r   r\   r\   w   s(   ø‡ € ÷,ð ,ò"ò("ò,"÷,"ð "r*   r\   )r-   rk   rm   r{   ÚunittestÚtornador   Útornado.iostreamr   Útornado.logr   Útornado.tcpserverr   Útornado.test.utilr   Útornado.testingr   r	   r
   r   Útypingr   r   ÚTestCaser\   r   r*   r   Ú<module>r—      s_   ðÛ Û Û 
Û Û å Ý %Ý Ý 'Ý +ß PÓ På ôa�Mô aðL ôn"�x×(Ñ(ó n"ó òn"r*   