403Webshell
Server IP : 54.37.205.81  /  Your IP : 216.73.216.76
Web Server : nginx/1.22.1
System : Linux vps-249481fa 6.1.0-50-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.176-1 (2026-07-02) x86_64
User : debian ( 1000)
PHP Version : 8.2.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/tornado/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/tornado/test/__pycache__/iostream_test.cpython-311.pyc
�

��bϸ����ddlmZddlmZddlmZddlmZddlmZm	Z	m
Z
mZmZddl
mZddlmZmZddlmZdd	lmZmZdd
lmZddlmZddlmZmZmZmZm Z m!Z!dd
l"m#Z#m$Z$m%Z%m&Z&ddl'm(Z(m)Z)ddl*Z*ddl+Z+ddl,Z,ddl-Z-ddl.Z.ddl/Z/ddl0Z0ddl1Z1ddl2Z2ddl3Z3ddl4m5Z5ddl4Z4d�Z6Gd�de(��Z7Gd�de8��Z9Gd�de8��Z:Gd�de:��Z;Gd�de9e��Z<Gd�de9e��Z=Gd�de;e��Z>Gd �d!e;e��Z?Gd"�d#e;e��Z@Gd$�d%e��ZAGd&�d'e��ZBe#Gd(�d)e:e����ZCGd*�d+e4jD��ZEdS),�)�Future)�gen)�netutil)�IOLoop)�IOStream�SSLIOStream�PipeIOStream�StreamClosedError�
_StreamBuffer)�HTTPHeaders)�	Condition�Event)�gen_log)�ssl_options_to_context�ssl_wrap_socket)�AddThreadSelectorEventLoop)�	TCPServer)�AsyncHTTPTestCase�AsyncHTTPSTestCase�
AsyncTestCase�bind_unused_port�	ExpectLog�gen_test)�
skipIfNonUnix�
refusing_port�skipPypy3V58�ignore_deprecation)�RequestHandler�ApplicationN)�mockc�$�ttj�tj�t
��d��tj�tj�t
��d�����S)N�test.crt�test.key)�certfile�keyfile)�dict�os�path�join�dirname�__file__���</usr/lib/python3/dist-packages/tornado/test/iostream_test.py�_server_ssl_optionsr//s[�������b�g�o�o�h�7�7��D�D�����R�W�_�_�X�6�6�
�C�C����r-c��eZdZd�ZdS)�HelloHandlerc�0�|�d��dS)N�Hello)�write��selfs r.�getzHelloHandler.get7s���
�
�7�����r-N)�__name__�
__module__�__qualname__r7r,r-r.r1r16s#����������r-r1c��eZdZd�Zd�Zdejfd�Zedejfd���Z	edejfd���Z
edejfd���Zedejfd���Zedejfd	���Z
edejfd
���ZdS)�TestIOStreamWebMixinc��t����N��NotImplementedErrorr5s r.�_make_client_iostreamz*TestIOStreamWebMixin._make_client_iostream<���!�#�#�#r-c�0�tdtfg��S)N�/)rr1r5s r.�get_appzTestIOStreamWebMixin.get_app?s���S�,�/�0�1�1�1r-r6c�`�|�dddi���}|���dS)NrD�
Connection�close)�headers)�fetch�rethrow)r6�responses  r.�test_connection_closedz+TestIOStreamWebMixin.test_connection_closedBs6���:�:�c�L�'�+B�:�C�C���������r-c#�~K�|���}|�d|���f��V�|�d��|���V�}|�|�d����|�|�d����dS)N�	127.0.0.1�GET / HTTP/1.0

sHTTP/1.1 200�Hello)rA�connect�
get_http_portr4�read_until_close�
assertTrue�
startswith�endswith)r6�stream�datas   r.�test_read_until_closez*TestIOStreamWebMixin.test_read_until_closeLs������+�+�-�-���n�n�k�4�+=�+=�+?�+?�@�A�A�A�A�A����.�/�/�/��,�,�.�.�.�.���������8�8�9�9�9�����
�
�h�/�/�0�0�0�0�0r-c#�.K�|���|_|j�d|���f��V�|j�d��|j�d��V�}|�|d��|j�d��V�}|�|d��|j�d��V�}|�|d��|j���dS)	NrOrP�	s	HTTP/1.1 rr-�s200)rArXrRrSr4�
read_bytes�assertEqualrH)r6rYs  r.�test_read_zero_bytesz)TestIOStreamWebMixin.test_read_zero_bytesVs�����0�0�2�2����k�!�!�;��0B�0B�0D�0D�"E�F�F�F�F�F�����3�4�4�4��[�+�+�A�.�.�.�.������|�,�,�,��[�+�+�A�.�.�.�.������s�#�#�#��[�+�+�A�.�.�.�.������v�&�&�&���������r-c#�K�|���}|�d|���f��}|�d��}|�|�����t
j||��}g}|���sD|���V�|�	|j
��|����D|�|||g��|���V�}|�
|�d����|���dS)NrO�%GET / HTTP/1.0
Connection: close

rQ)rArRrSr4�assertFalse�doner�WaitIterator�next�append�current_futurer_rTrUrWrH)r6rX�connect_fut�	write_fut�it�resolved_orderrYs       r.�test_write_while_connectingz0TestIOStreamWebMixin.test_write_while_connectingjs3�����+�+�-�-���n�n�k�4�3E�3E�3G�3G�%H�I�I���L�L�!O�P�P�	�����)�)�+�+�,�,�,��
�k�9�
5�
5�����'�'�)�)�	5��'�'�)�)�O�O�O��!�!�"�"3�4�4�4��'�'�)�)�	5�	
����+�y�)A�B�B�B��,�,�.�.�.�.������
�
�h�/�/�0�0�0��������r-c#�dK�|���}|�d|���f��V�}|�||��|�d��V�|�d��V�}|�|d��|�d��V�}tj|�	d����}t|d��}|�|��V�}|�|d��|���d	S)
z3Basic test of IOStream's ability to return Futures.rOrP�
sHTTP/1.1 200 OK
�

�latin1zContent-LengthrQN)
rArRrS�assertIsr4�
read_untilr_r�parse�decode�intr^rH)r6rX�connect_result�
first_line�header_datarI�content_length�bodys        r.�test_future_interfacez*TestIOStreamWebMixin.test_future_interface�s(�����+�+�-�-��%�~�~�{�D�<N�<N�<P�<P�.Q�R�R�R�R���
�
�n�f�-�-�-��l�l�4�5�5�5�5�5�!�,�,�W�5�5�5�5�
�����%;�<�<�<�"�-�-�k�:�:�:�:���#�K�$6�$6�x�$@�$@�A�A���W�%5�6�7�7���&�&�~�6�6�6�6������x�(�(�(��������r-c#�pK�|���}|�d|���f��V�|�d��V�|�t
��5|�d��V�ddd��n#1swxYwY|���dS)NrOrP�)rArRrSr4�assertRaisesr
r^rH)r6rXs  r.�test_future_close_while_readingz4TestIOStreamWebMixin.test_future_close_while_reading�s������+�+�-�-���n�n�k�4�+=�+=�+?�+?�@�A�A�A�A�A��l�l�4�5�5�5�5�5�
�
�
�0�
1�
1�	1�	1��#�#�K�0�0�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1��������s�3B�B�Bc#��K�|���}|�d|���f��V�|�d��V�|�d��V�|���V�}|�|d��|�t��5|�	d��ddd��dS#1swxYwYdS)NrOrbrprQ�)
rArRrSr4rsrTr_rr
r^)r6rXr{s   r.�test_future_read_until_closez1TestIOStreamWebMixin.test_future_read_until_close�s1�����+�+�-�-���n�n�k�4�+=�+=�+?�+?�@�A�A�A�A�A��l�l�I�J�J�J�J�J�����,�,�,�,�,��,�,�.�.�.�.������x�(�(�(��
�
�0�
1�
1�	!�	!����a� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�	!�	!s�6C�C� CN)r8r9r:rArE�typing�AnyrMrrZr`rmr|r�r�r,r-r.r<r<;sE������$�$�$�2�2�2��V�Z������1�F�J�1�1�1��X�1���6�:�����X��&��&�*�����X��*��F�J�����X�� ��f�j�����X���!�6�:�!�!�!��X�!�!�!r-r<c�Z�eZdZd�Zd�Zed���Zedejfd���Z	edejfd���Z
edejfd���Zedejfd���Zed	���Z
edejfd
���Zedejfd���Zedejfd���Zedejfd
���Zedejfd���Zedejfd���Zedejfd���Zedejfd���Zedejfd���Zedejfd���Zed���Zedejfd���Zedejfd���Zed���Zedejfd���Zedejfd���Zedejfd���Zed���ZdS)�TestReadWriteMixinc��t�r>r?)r6�kwargss  r.�make_iostream_pairz%TestReadWriteMixin.make_iostream_pair�s��!�!r-c�4�Gd�d��}|||��S)z�Like make_iostream_pair, but called by ``async with``.

        In py37 this becomes simpler with contextlib.asynccontextmanager.
        c� �eZdZd�Zd�Zd�ZdS)�=TestReadWriteMixin.iostream_pair.<locals>.IOStreamPairContextc�"�||_||_dSr>)�testr�)r6r�r�s   r.�__init__zFTestReadWriteMixin.iostream_pair.<locals>.IOStreamPairContext.__init__�s�� ��	�$����r-c��XK�|jjdi|j���d{V��|_|jS)Nr,)r�r�r��pairr5s r.�
__aenter__zHTestReadWriteMixin.iostream_pair.<locals>.IOStreamPairContext.__aenter__�s>����">�$�)�">�"M�"M���"M�"M�M�M�M�M�M�M��	��y� r-c��FK�|jD]}|����dSr>)r�rH)r6�typ�value�tb�ss     r.�	__aexit__zGTestReadWriteMixin.iostream_pair.<locals>.IOStreamPairContext.__aexit__�s0��������A��G�G�I�I�I�I��r-N)r8r9r:r�r�r�r,r-r.�IOStreamPairContextr��sA������
%�
%�
%�
!�
!�
!�
�
�
�
�
r-r�r,)r6r�r�s   r.�
iostream_pairz TestReadWriteMixin.iostream_pair�s?��	�	�	�	�	�	�	�	�#�"�4��0�0�0r-c#�K�|���V�\}}|�d��V�|���|���dS)Nr-)r�r4rH)r6�rs�wss   r.�test_write_zero_bytesz(TestReadWriteMixin.test_write_zero_bytes�sW�����.�.�0�0�0�0���B��h�h�s�m�m����
���
�
�
�
���
�
�
�
�
r-r6c#�K�|���V�\}}	|�d��g}|�|�d��V���|���|�|�d��V���|�|ddg��|���|���dS#|���|���wxYw)N�12r��1�2)r�r4rgr^rHr_)r6r�r��chunkss    r.�"test_future_delayed_close_callbackz5TestReadWriteMixin.test_future_delayed_close_callback�s������.�.�0�0�0�0���B�		��H�H�U�O�O�O��F��M�M����q�!1�!1�1�1�3�3�3��H�H�J�J�J��M�M����q�!1�!1�1�1�3�3�3����V�d�D�\�2�2�2��H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���s�BC�*Dc#�K�|�d���V�\}}	|�d��|�d��V�}|�d|��|���tjd��V�|�d��V�}|�d|��|���|���dS#|���|���wxYw)N�)�read_chunk_sizesAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg{�G�z�?)r�r4r^r_rHr�sleep�r6r�r�rYs    r.�test_close_buffered_dataz+TestReadWriteMixin.test_close_buffered_data�s������.�.�s�.�C�C�C�C���B�
	��H�H�Z� � � ����s�+�+�+�+�D����Z��.�.�.��H�H�J�J�J��)�D�/�/�!�!�!����s�+�+�+�+�D����Z��.�.�.��H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���s�BC"�"*Dc#��K�|���V�\}}	|�d��|�d��V�}|���|�|d��|���V�}|�|d��|���|���dS#|���|���wxYw)Ns1234r�r�s234)r�r4r^rHr_rTr�s    r.�!test_read_until_close_after_closez4TestReadWriteMixin.test_read_until_close_after_close�s������.�.�0�0�0�0���B�	��H�H�W�������q�)�)�)�)�D��H�H�J�J�J����T�4�(�(�(��,�,�.�.�.�.�D����T�6�*�*�*��H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���s�BC	�	*C3c#�dK�|���V�\}}	t|t��r+tj��dkrtjd���d}t|��D]}|�d���|�d��|�	d��V�}|�
t|��|dzdz��|���|���dS#|���|���wxYw)N�PyPyz$pypy gc causes problems with openssl�sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAro��)
r��
isinstancer�platform�python_implementation�unittest�SkipTest�ranger4rsr_�lenrH)r6r�r��NUM_KB�irYs      r.�test_large_read_untilz(TestReadWriteMixin.test_large_read_untils ����
�.�.�0�0�0�0���B�	�
�2�{�+�+�
P��2�4�4��>�>��'�(N�O�O�O��F��6�]�]�
&�
&������%�%�%�%��H�H�W�������w�/�/�/�/�D����S��Y�Y���
��(9�:�:�:��H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���s�B>D�*D/c��K�|���4�d{V��\}}tj|�d����}tjd���d{V��|�d���d{V��|�d��|���|�d{V��ddd���d{V��dS#1�d{V��swxYwYdS)N�done皙�����?�xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)r��asyncio�
ensure_futurersr�r4rH�r6r�r��rfs    r.�.test_read_until_with_close_after_second_packetzATestReadWriteMixin.test_read_until_with_close_after_second_packet%sm�����%�%�'�'�		�		�		�		�		�		�		�8�B���&�r�}�}�W�'=�'=�>�>�B��-��$�$�$�$�$�$�$�$�$��(�(�;�'�'�'�'�'�'�'�'�'��H�H�W�����H�H�J�J�J��H�H�H�H�H�H�H�		�		�		�		�		�		�		�		�		�		�		�		�		�		�		�		�		�		�		�		�		�		�		�		����		�		�		�		�		�		s�BC�
C�Cc���K�|���4�d{V��\}}tj|�d����}|�d���d{V��|�d��|���|�t��5|�d{V��ddd��n#1swxYwYddd���d{V��dS#1�d{V��swxYwYdS)Nr�r�sfoo)r�r�r�rsr4rHrr
r�s    r.�'test_read_until_unsatisfied_after_closez:TestReadWriteMixin.test_read_until_unsatisfied_after_close=s������%�%�'�'�	�	�	�	�	�	�	�8�B���&�r�}�}�W�'=�'=�>�>�B��(�(�;�'�'�'�'�'�'�'�'�'��H�H�V�����H�H�J�J�J��"�"�#4�5�5�
�
���������
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s6�B	C�&	B;�/C�;B?	�?C�B?	�C�
C#�&C#c#�>K�d}|���V�\}}t��}|�|j��	|�|��|�d��V�}|�||��|���|�d��|���V�|���|���dS#|���|���wxYw)NsOK
ro)	r�r�set_close_callback�setr4rsr_rH�wait)r6�OKr�r��event�ress      r.�%test_close_callback_with_pending_readz8TestReadWriteMixin.test_close_callback_with_pending_readKs�����
���.�.�0�0�0�0���B�����
���e�i�(�(�(�
	��H�H�R�L�L�L��
�
�g�.�.�.�.�C����S�"�%�%�%��H�H�J�J�J��M�M�'�"�"�"��*�*�,�,�����H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���s
�BC2�2*Dc#���K�|���V�\}}dg�t�����fd�}|�|��	|�d��|�d��V�}|�|d��|��d��|�������V�|�	�d��|���|���dS#|���|���wxYw)NFc�:��d�d<����dS)NTr)�notify)�closed�conds��r.�close_callbackzETestReadWriteMixin.test_future_close_callback.<locals>.close_callbackks����F�1�I��K�K�M�M�M�M�Mr-�ar�r)
r�r
r�r4r^r_rcrHr�rU)r6r�r�r�r�r�r�s     @@r.�test_future_close_callbackz-TestReadWriteMixin.test_future_close_callbackcs9�������.�.�0�0�0�0���B�����{�{��	�	�	�	�	�	�	���n�-�-�-�
	��H�H�T�N�N�N��
�
�a�(�(�(�(�C����S�$�'�'�'����V�A�Y�'�'�'��H�H�J�J�J��)�)�+�+�����O�O�F�1�I�&�&�&��H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���s
�B"D�*Ec#�K�|���V�\}}	|�d��}|�td����|V�}|�|d��|���|���dS#|���|���wxYw)N��helloshell)r�r^r4�
memoryviewr_rH�r6r�r��futrYs     r.�test_write_memoryviewz(TestReadWriteMixin.test_write_memoryview|s������.�.�0�0�0�0���B�	��-�-��"�"�C��H�H�Z��)�)�*�*�*��9�9�D����T�7�+�+�+��H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���s�AB�*Cc#�^K�|���V�\}}	|�dd���}|�d��|V�}|�|d��|�dd���}|�d��|V�}|�|d��|�dd���V�}|�|d	��|���|���dS#|���|���wxYw)
N�2T��partialr�r]sworld�worrr-)r�r^r4r_rHr�s     r.�test_read_bytes_partialz*TestReadWriteMixin.test_read_bytes_partial�s'�����.�.�0�0�0�0���B�	��-�-��D�-�1�1�C��H�H�X�����9�9�D����T�8�,�,�,��-�-��4�-�0�0�C��H�H�X�����9�9�D����T�6�*�*�*����q�$��7�7�7�7�D����T�3�'�'�'��H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���s�B;D�*D,c#�FK�|���V�\}}t��}|�|j��	|�dd���}|�d��|V�}|�|d��|�dd���}|�d��|V�}|�|d��ttdtj
���5|�dd���}|�d	��|���V�ddd��n#1swxYwY|���|���dS#|���|���wxYw�
N�defr���	max_bytes�abcdef��Unsatisfiable read��level��123456)
r�rr�r�rsr4r_rr�logging�INFOr�rH�r6r�r�r�r�rYs      r.�test_read_until_max_bytesz,TestReadWriteMixin.test_read_until_max_bytes�s������.�.�0�0�0�0���B�����
���f�j�)�)�)�	��-�-��"�-�5�5�C��H�H�Y�����9�9�D����T�9�-�-�-��-�-��!�-�4�4�C��H�H�Y�����9�9�D����T�9�-�-�-��7�$8���M�M�M�
$�
$��m�m�F�a�m�8�8������#�#�#��k�k�m�m�#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$�

�H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J����2�B-E6�2AE�5E6�E�E6�E�	E6�6*F c#�K�|���V�\}}t��}|�|j��	|�d��ttdtj���5|�	t��5|�dd���V�ddd��n#1swxYwYddd��n#1swxYwY|���V�|�
��|�
��dS#|�
��|�
��wxYw�Nr�r�r�r�r�r�)r�rr�r�r4rrr�r�rr
rsr�rH�r6r�r�r�s    r.� test_read_until_max_bytes_inlinez3TestReadWriteMixin.test_read_until_max_bytes_inline�s������.�.�0�0�0�0���B�����
���f�j�)�)�)�	�

�H�H�Y�����7�$8���M�M�M�
=�
=��&�&�'8�9�9�=�=��-�-��!�-�<�<�<�<�<�=�=�=�=�=�=�=�=�=�=�=����=�=�=�=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=��+�+�-�-�����H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���sT�6D�;C�B<�0C�<C	�C�C	�C�D�C�D�C�D�*Ec#�.K�|���V�\}}t��}|�|j��	|�d��ttdtj���5|�	dd���|�
��V�ddd��n#1swxYwY|���|���dS#|���|���wxYw�Nr�r�r�r�r�r�)r�rr�r�r4rrr�r�rsr�rHr�s    r.�'test_read_until_max_bytes_ignores_extraz:TestReadWriteMixin.test_read_until_max_bytes_ignores_extra�s2�����.�.�0�0�0�0���B�����
���f�j�)�)�)�
	�
�H�H�Y�����7�$8���M�M�M�
$�
$��
�
�f��
�2�2�2��k�k�m�m�#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$�
�H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J����0�6C*�;.B5�)C*�5B9�9C*�<B9�=C*�**Dc#�FK�|���V�\}}t��}|�|j��	|�dd���}|�d��|V�}|�|d��|�dd���}|�d��|V�}|�|d��ttdtj
���5|�dd���|�d	��|���V�ddd��n#1swxYwY|���|���dS#|���|���wxYwr�)
r�rr�r��read_until_regexr4r_rrr�r�r�rHr�s      r.�test_read_until_regex_max_bytesz2TestReadWriteMixin.test_read_until_regex_max_bytes�s������.�.�0�0�0�0���B�����
���f�j�)�)�)�	��%�%�f��%�;�;�C��H�H�Y�����9�9�D����T�9�-�-�-��%�%�f��%�:�:�C��H�H�Y�����9�9�D����T�9�-�-�-��7�$8���M�M�M�
$�
$��#�#�F�a�#�8�8�8�����#�#�#��k�k�m�m�#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$�

�H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���r�c#�.K�|���V�\}}t��}|�|j��	|�d��ttdtj���5|�	dd���|�
��V�ddd��n#1swxYwY|���|���dS#|���|���wxYwr��r�rr�r�r4rrr�r�r�r�rHr�s    r.�&test_read_until_regex_max_bytes_inlinez9TestReadWriteMixin.test_read_until_regex_max_bytes_inline�s5�����.�.�0�0�0�0���B�����
���f�j�)�)�)�	�

�H�H�Y�����7�$8���M�M�M�
$�
$��#�#�F�a�#�8�8�8��k�k�m�m�#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$�
�H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���r�c#�.K�|���V�\}}t��}|�|j��	|�d��ttdtj���5|�	dd���|�
��V�ddd��n#1swxYwY|���|���dS#|���|���wxYwr�rr�s    r.�-test_read_until_regex_max_bytes_ignores_extraz@TestReadWriteMixin.test_read_until_regex_max_bytes_ignores_extras5�����.�.�0�0�0�0���B�����
���f�j�)�)�)�
	�
�H�H�Y�����7�$8���M�M�M�
$�
$��#�#�F�a�#�8�8�8��k�k�m�m�#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$�
�H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���r�c#�K�|�d���V�\}}	|�ddz��td��D]/}|�d��V�}|�|d���0	|���|���dS#|���|���wxYw)N�(��max_buffer_sizesaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa�dr�)r�r4r�r^r_rH�r6r�r�r�rYs     r.�"test_small_reads_from_large_bufferz5TestReadWriteMixin.test_small_reads_from_large_buffer s�����
�.�.�y�.�I�I�I�I���B�	��H�H�[�3�&�'�'�'��3�Z�Z�
4�
4���]�]�4�0�0�0�0��� � ��{�3�3�3�3�
4�
�H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���s�AB!�!*Cc#�K�|�d���V�\}}	|�ddz��td��D]1}|�dd���V�}|�|d���2	|���|���dS#|���|���wxYw)Nrrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
r
�
r�r�)r�r4r�rsr_rHrs     r.�(test_small_read_untils_from_large_bufferz;TestReadWriteMixin.test_small_read_untils_from_large_buffer/s�����
�.�.�y�.�I�I�I�I���B�	��H�H�)�S�0�1�1�1��3�Z�Z�
<�
<���]�]�5�D�]�A�A�A�A��� � ��':�;�;�;�;�
<�
�H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���s�AB#�#*C
c#��K�d}|�d|z���V�\}}	|�d|z��|�|��V�tjd��V�td��D]}|�|��V��	|���|���dS#|���|���wxYw)Nr~r�rs
aaaaaaaaaar�r\)r�r4r^rr�r�rH)r6�MBr�r�r�s     r.�test_flow_controlz$TestReadWriteMixin.test_flow_control>s�����
���.�.�q�2�v�.�F�F�F�F���B�	��H�H�Y��^�$�$�$��-�-��#�#�#�#�#��)�C�.�.� � � ��1�X�X�
(�
(���m�m�B�'�'�'�'�'�'�
(�
�H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���s�A.B=�=*C'c#��K�����V�\}}�fd�}	td��}|�|��}|�d��t	jd��V���|�����|�d��|V�}��|�������	|d����	t|��d��|�|��}t	jd��V���|�����|�d��|V�}��|�������	|d����	t|��d��td	��}|�d
��|�|��V�}��	|d	����	t|��d��|�d��V�}��	|d
��|���|���dS#|���|���wxYw)Nc�>���j�d���dS)Nc�*�tjd��S)N皙�����?)rr�r,r-r.�<lambda>zGTestReadWriteMixin.test_read_into.<locals>.sleep_some.<locals>.<lambda>Us��#�)�D�/�/�r-)�io_loop�run_syncr5s�r.�
sleep_somez5TestReadWriteMixin.test_read_into.<locals>.sleep_someTs#����L�!�!�"9�"9�:�:�:�:�:r-�
r�rsworld!!s
helloworlds
1234567890s
!!12345678r�s	abcdefghis90ab�scdefghi)
r��	bytearray�	read_intor4rr�rU�readingrcr_�bytesr^rH)r6r�r�r�bufr�rYs`      r.�test_read_intoz!TestReadWriteMixin.test_read_intoPs�������.�.�0�0�0�0���B�	;�	;�	;�	;�	;�!	��B�-�-�C��,�,�s�#�#�C��H�H�X�����)�D�/�/�!�!�!��O�O�B�J�J�L�L�)�)�)��H�H�Z� � � ��9�9�D����R�Z�Z�\�\�*�*�*����T�2�&�&�&����U�3�Z�Z��7�7�7��,�,�s�#�#�C��)�D�/�/�!�!�!��O�O�B�J�J�L�L�)�)�)��H�H�]�#�#�#��9�9�D����R�Z�Z�\�\�*�*�*����T�2�&�&�&����U�3�Z�Z��7�7�7��A�,�,�C��H�H�\�"�"�"����c�*�*�*�*�D����T�1�%�%�%����U�3�Z�Z��1�1�1����q�)�)�)�)�D����T�:�.�.�.��H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���s�IJ(�(*Kc#�K�|���V�\}}	td��}|�|d���}|�d��|V�}|�|�����|�|d��|�t|��d��|�d��|�|d���V�}|�|d��|�t|��d��|�|d���V�}|�|d	��|�t|��d
��|���|���dS#|���|���wxYw)NrTr�r�r�s
hellosworld!1234567890s
world!1234r�s
5678901234)	r�rrr4rcrr_r rH)r6r�r�r!r�rYs      r.�test_read_into_partialz)TestReadWriteMixin.test_read_into_partialzs������.�.�0�0�0�0���B�	��B�-�-�C��,�,�s�D�,�1�1�C��H�H�X�����9�9�D����R�Z�Z�\�\�*�*�*����T�1�%�%�%����U�3�Z�Z�);�<�<�<�
�H�H�(�)�)�)����c�4��8�8�8�8�D����T�2�&�&�&����U�3�Z�Z��7�7�7����c�4��8�8�8�8�D����T�1�%�%�%����U�3�Z�Z��7�7�7�
�H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���s�EF�*G	c#�~K�|���V�\}}	t��}|�|��}|�|���d��|���|���dS#|���|���wxYw�Nr)r�rrr_�resultrH)r6r�r�r!r�s     r.�test_read_into_zero_bytesz,TestReadWriteMixin.test_read_into_zero_bytes�s������.�.�0�0�0�0���B�	��+�+�C��,�,�s�#�#�C����S�Z�Z�\�\�1�-�-�-��H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���s�AB�*B<c#�Z������K�tjd���d�|���V�\��tj���tj���t
j����fd���}t
j����fd���}	|��|��gV���������ksJ�	��������dS#��������wxYw)N�*i@Bc3�
�K��}|dkro��dtd|����}tj|��}��|����|��V�||z}|dk�o|dksJ�dS)Nrr���)�randint�minr'�urandom�updater4)�	remaining�sizerY�nbytes�produce_hash�rr�s   ����r.�producez9TestReadWriteMixin.test_many_mixed_reads.<locals>.produce�s�������I��a�-�-��y�y��C��i�$8�$8�9�9���z�$�'�'���#�#�D�)�)�)��h�h�t�n�n�$�$�$��T�!�	��a�-�-���>�>�>�>�>�>r-c3���K��}|dkr����dkrV��dtd|����}��|��V�}��|��||z}nl��dtd|����}t|��}��|��V�}||ksJ���|��||z}|dk��|dksJ�dS)Nrg�?r�r,)�randomr-r.r^r0rr)	r1r2rYr!�n�consume_hashr3r5r�s	     ����r.�consumez9TestReadWriteMixin.test_many_mixed_reads.<locals>.consume�s������I��a�-�-��8�8�:�:��#�#��9�9�Q��D�)�(<�(<�=�=�D�!#���t�!4�!4�4�4�D� �'�'��-�-�-���%�I�I��9�9�Q��D�)�(<�(<�=�=�D�#�D�/�/�C� �l�l�3�/�/�/�/�A���9�9�9�9� �'�'��,�,�,���%�I��a�-�-���>�>�>�>�>�>r-)	r8�Randomr��hashlib�sha1r�	coroutine�	hexdigestrH)	r6r6r;r:r3r4r5r�r�s	   @@@@@@r.�test_many_mixed_readsz(TestReadWriteMixin.test_many_mixed_reads�sK����������

�M�"�������.�.�0�0�0�0���B��|�~�~���|�~�~��	��	"�	"�	"�	"�	"�	"�	"�
��	"�

��	"�	"�	"�	"�	"�	"�	"�
��	"�&	��7�9�9�g�g�i�i�(�(�(�(��)�)�+�+�|�/E�/E�/G�/G�G�G�G�G�G��H�H�J�J�J��H�H�J�J�J�J�J��
�H�H�J�J�J��H�H�J�J�J�J���s
�AD�*D*N) r8r9r:r�r�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrr"r$r(rAr,r-r.r�r��s�������"�"�"�1�1�1�*����X���
���
�
�
��X�
���v�z�����X��2���
�����X��$��F�J�����X��0����X��.��F�J�����X����F�J�����X��.��������X��0�	�F�J�	�	�	��X�	���f�j�����X��0���
�����X��6��v�z�����X��$��f�j�����X�� ��f�j�����X��6��V�Z�����X��"����X�� ��������X����v�z�����X������X��"�'�V�Z�'�'�'��X�'�R��V�Z�����X��8���
�����X���/�/��X�/�/�/r-r�c�>�eZdZd�Zd�Zejdejfd���Z	e
dejfd���Ze
dejfd���Ze
dejfd���Z
eee
dejfd�������Zee
d	�����Ze
d
���ZdS)�TestIOStreamMixinc��t���r>r?�r6�
connectionr�s   r.�_make_server_iostreamz'TestIOStreamMixin._make_server_iostream�rBr-c��t���r>r?rEs   r.rAz'TestIOStreamMixin._make_client_iostream�rBr-r6c+����K�t��\}}t������fd�}tj||���jtj��fi���}|�d|f��}�|gV�\}}�j�|�	����|�
��tj||f���)Nc�J�����j|fi�����dSr>)�
set_resultrG)rF�addressr�r6�server_stream_futs  ���r.�accept_callbackz=TestIOStreamMixin.make_iostream_pair.<locals>.accept_callback�s=����(�(�*��*�:�@�@��@�@�
�
�
�
�
r-rO)
rrr�add_accept_handlerrA�socketrRr�remove_handler�filenorHr�Return)	r6r��listener�portrN�
client_streamri�
server_streamrMs	``      @r.r�z$TestIOStreamMixin.make_iostream_pair�s��������)�+�+���$�"�H�H��	�	�	�	�	�	�	�
	�"�8�_�=�=�=�2��2�6�=�?�?�M�M�f�M�M�
�#�+�+�[�$�,?�@�@��.?��-M�'M�'M�$�
�}���#�#�H�O�O�$5�$5�6�6�6��������j�-��7�8�8�8r-c#�$K�t��\}}|�|��ttj����}|�|j��t
tdd���5|�t��5|�
d|f��V�ddd��n#1swxYwYddd��n#1swxYwY|�t|j
t��|j
��dS)Nz.*F)�requiredrO)r�
addCleanuprrPr��stoprrrr
rRrUr��error�ConnectionRefusedError)r6�cleanup_funcrUrXs    r.�test_connection_refusedz)TestIOStreamMixin.test_connection_refused�sm����
+�_�_���d�����%�%�%��&�-�/�/�*�*���!�!�$�)�,�,�,�
�w��u�
5�
5�
5�	:�	:��"�"�#4�5�5�
:�
:��n�n�k�4�%8�9�9�9�9�9�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:����
:�
:�
:�
:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:����	:�	:�	:�	:�	
���
�6�<�1G�H�H�&�,�W�W�W�W�Ws6�:C�B;�/C�;B?	�?C�B?	�C�C�Cc#�>K�tjtjtjd��}t|��}|�|j��t
jdtjtj
d�����5|�t��5|�
d��V�ddd��n#1swxYwY|�t|jtj����ddd��dS#1swxYwYdS)Nrzsocket.socket.connect�boom��side_effect)�	localhost�P)rP�AF_INET�SOCK_STREAMrr�r[r �patch�gaierror�errno�EIOrr
rRrUr�r\)r6r�rXs   r.�
test_gaierrorzTestIOStreamMixin.test_gaierror�s�����
�M�&�.�&�*<�a�@�@���!�����!�!�$�)�,�,�,�
�Z�#�����F�1S�1S�
�
�
�	G�	G��"�"�#4�5�5�
8�
8��n�n�%6�7�7�7�7�7�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8����
8�
8�
8�
8��O�O�J�v�|�V�_�E�E�F�F�F�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�	G�	Gs6�	D�$C�<D�C	�D�C	�5D�D�Dc#��K�|���V�\}}	tjdtd�����5|�td��5|���ddd��n#1swxYwYddd��n#1swxYwY|���|���dS#|���|���wxYw)Nz.tornado.iostream.BaseIOStream._try_inline_readrarb)r�r rh�IOError�assertRaisesRegexrTrH)r6�server�clients   r.� test_read_until_close_with_errorz2TestIOStreamMixin.test_read_until_close_with_errors_����#�6�6�8�8�8�8����		���@�#�F�O�O����
.�
.��+�+�G�V�<�<�.�.��+�+�-�-�-�.�.�.�.�.�.�.�.�.�.�.����.�.�.�.�	
.�
.�
.�
.�
.�
.�
.�
.�
.�
.�
.����
.�
.�
.�
.�
�L�L�N�N�N��L�L�N�N�N�N�N��
�L�L�N�N�N��L�L�N�N�N�N���sS�#C	�B�A=�1B�=B	�B�B	�B�C	�B�C	�B�C	�	*C3c#�ZK�tj��}t|jt��r|�d��|���V�\}}	tj|j	�
����|�tj��5|�
d��ddd��n#1swxYwY|���|���dS#|���|���wxYw)Nz(AddThreadSelectorEventLoop not supportedr�)r�currentr��
selector_loopr�skipTestr�r'rHrPrRrr\r^)r6rrprqs    r.�test_inline_read_errorz(TestIOStreamMixin.test_inline_read_errorsE����(�.�"�"����!�&�
�
�	F�
�M�M�D�E�E�E�#�6�6�8�8�8�8����	��H�V�]�)�)�+�+�,�,�,��"�"�6�<�0�0�
%�
%��!�!�!�$�$�$�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%����
%�
%�
%�
%�
�L�L�N�N�N��L�L�N�N�N�N�N��
�L�L�N�N�N��L�L�N�N�N�N���s1�A
D�)C�?D�C�D�C�D�*D*c#�,�K�|���V�\�}t��}��|j��	��d��|�d���fd�}|�_ttd��5|�	��V�ddd��n#1swxYwY��
��|�
��dS#��
��|�
��wxYw)Nr�r�c���tj�j������j����dSr>)r'rHrPrR�	__class__�read_from_fd)rps�r.�fake_read_from_fdzJTestIOStreamMixin.test_async_read_error_logging.<locals>.fake_read_from_fdOs>�������-�-�/�/�0�0�0�� �-�-�f�5�5�5�5�5r-z
error on read)r�rr�r�r^r4r{rrr�rH)r6rqr�r|rps    @r.�test_async_read_error_loggingz/TestIOStreamMixin.test_async_read_error_loggingAsL�����
 $�6�6�8�8�8�8���������!�!�&�*�-�-�-�	����a� � � ��L�L�����
6�
6�
6�
6�
6�#4�F���7�O�4�4�
$�
$��k�k�m�m�#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$�
�L�L�N�N�N��L�L�N�N�N�N�N��
�L�L�N�N�N��L�L�N�N�N�N���s1�AC)�B4�(C)�4B8�8C)�;B8�<C)�)*Dc#��������K�d\��d}��z|z�|�����V�\��tj���fd����tj���fd���}	�fd�t|��D��|��gzV���������dS#��������wxYw)z?
        Test that write() Futures are never orphaned.
        )i�r,rrc3�h�K�d�z}t���D]}��|��V��dS)N�x)r�r4)rYr��mr9rps  ���r.r6z4TestIOStreamMixin.test_future_write.<locals>.producegsJ������!�8�D��1�X�X�
)�
)���l�l�4�(�(�(�(�(�(�
)�
)r-c3�~�K�d}|�kr1�����V�}|t|��z
}|�k�/dSdSr&)r^r�)�nreadr�rqr��total_bytess  ���r.r;z4TestIOStreamMixin.test_future_write.<locals>.consumemsY������E��+�%�%�"�-�-�a�0�0�0�0����S���!���+�%�%�%�%�%�%r-c�$��g|]}�����
Sr,r,)�.0r�r6s  �r.�
<listcomp>z7TestIOStreamMixin.test_future_write.<locals>.<listcomp>us���8�8�8��7�7�9�9�8�8�8r-N)r�rr?r�rH)	r6�
nproducersr;rqr�r9r6rpr�s	   @@@@@@r.�test_future_writez#TestIOStreamMixin.test_future_write[s$�������������1��
��!�e�j�(��#�6�6�{�6�S�S�S�S����	��	)�	)�	)�	)�	)�	)�
��	)�


��	"�	"�	"�	"�	"�	"�
��	"�	�8�8�8�8�e�J�&7�&7�8�8�8�G�G�I�I�;�F�F�F�F��L�L�N�N�N��L�L�N�N�N�N�N��
�L�L�N�N�N��L�L�N�N�N�N���s�&)B9�9*C#N)r8r9r:rGrArr?r�r�r�rr_rlrrrrrwr}r�r,r-r.rCrC�s`������$�$�$�$�$�$�	�]�9���9�9�9��]�9�"�X�f�j�X�X�X��X�X� �G�F�J�G�G�G��X�G� ��v�z�����X����
��V�Z�����X��\��]��@�
����X��\��0����X���r-rCc��eZdZd�ZdS)�TestIOStreamWebHTTPc�B�ttj����Sr>)rrPr5s r.rAz)TestIOStreamWebHTTP._make_client_iostream|s����
���(�(�(r-N�r8r9r:rAr,r-r.r�r�{s#������)�)�)�)�)r-r�c��eZdZd�ZdS)�TestIOStreamWebHTTPSc�v�ttj��ttj������S)N��	cert_reqs��ssl_options)rrPr&�ssl�	CERT_NONEr5s r.rAz*TestIOStreamWebHTTPS._make_client_iostream�s(���6�=�?�?��s�}�8U�8U�8U�V�V�V�Vr-Nr�r,r-r.r�r��s(������W�W�W�W�Wr-r�c��eZdZd�Zd�ZdS)�TestIOStreamc��t|fi|��Sr>�rrEs   r.rGz"TestIOStream._make_server_iostream�����
�-�-�f�-�-�-r-c��t|fi|��Sr>r�rEs   r.rAz"TestIOStream._make_client_iostream�r�r-N�r8r9r:rGrAr,r-r.r�r��s2������.�.�.�.�.�.�.�.r-r�c��eZdZd�Zd�ZdS)�TestIOStreamSSLc��tt��d���}|�|dd���}t|fi|��S)NT)�server_sideF�r��do_handshake_on_connect)rr/�wrap_socketr)r6rFr��ssl_ctxs    r.rGz%TestIOStreamSSL._make_server_iostream�sV��(�)<�)>�)>�D�Q�Q�Q���(�(���$)�)�
�
�
�
�:�0�0��0�0�0r-c�P�t|fdttj���i|��S)Nr�r�)rr&r�r�rEs   r.rAz%TestIOStreamSSL._make_client_iostream�s9����
�
�$(�3�=�$A�$A�$A�
�EK�
�
�	
r-Nr�r,r-r.r�r��s2������1�1�1�
�
�
�
�
r-r�c��eZdZd�Zd�ZdS)�TestIOStreamSSLContextc��tjtjj��}|�t
j�t
j�t��d��t
j�t
j�t��d����t||dd���}t|fi|��S)Nr"r#TFr�)r��create_default_context�Purpose�CLIENT_AUTH�load_cert_chainr'r(r)r*r+rr�r6rFr��contexts    r.rGz,TestIOStreamSSLContext._make_server_iostream�s����,�S�[�-D�E�E������G�L�L������2�2�J�?�?��G�L�L������2�2�J�?�?�	
�	
�	
�%���T�5�
�
�
�
��:�0�0��0�0�0r-c��tjtjj��}d|_tj|_t|fd|i|��S)NFr�)r�r�r��SERVER_AUTH�check_hostnamer��verify_moderr�s    r.rAz,TestIOStreamSSLContext._make_client_iostream�sD���,�S�[�-D�E�E��!&���!�m����:�E�E�7�E�f�E�E�Er-Nr�r,r-r.r�r��s7������	1�	1�	1�F�F�F�F�Fr-r�c����eZdZ�fd�Z�fd�Zd�Zejd���Zejd���Z	d
d�Z
dd�Zed	���Z
ed
���Zed���Zed���Z�xZS)�TestIOStreamStartTLSc���	t�����t��\|_|_d|_t
��|_tj	|j|j
��ttj����|_
|j�|j
�d|jf��|j��|���|j�|j|j��|���dS#t&$r}t)|���d}~wwxYw)NrO)�super�setUprrTrUrWr�server_acceptedrrO�acceptrrPrVr�
add_futurerRr[r��	Exception�print)r6�erzs  �r.r�zTestIOStreamStartTLS.setUp�s���	��G�G�M�M�O�O�O�'7�'9�'9�$�D�M�4�9�!%�D��#)�8�8�D� ��&�t�}�d�k�B�B�B�!)��
���"�"�D��
�L�#�#��"�*�*�K���+C�D�D�d�i�
�
�
�
�I�I�K�K�K��L�#�#�D�$8�$�)�D�D�D��I�I�K�K�K�K�K���	�	�	��!�H�H�H������	���s�D%D*�*
E	�4E�E	c�\��|j�|j���|j�|j���|j�|j�����|j���t�����dSr>)	rWrHrVrrQrTrRr��tearDown)r6rzs �r.r�zTestIOStreamStartTLS.tearDown�s������)���$�$�&�&�&���)���$�$�&�&�&���#�#�D�M�$8�$8�$:�$:�;�;�;��
������
���������r-c��|j�|�d��t|��|_|j�d��dS)Nzshould only get one connection)rW�failrr�rK)r6rFrLs   r.r�zTestIOStreamStartTLS.accept�sK����)��I�I�6�7�7�7�%�j�1�1�����'�'��-�-�-�-�-r-c#��K�|j�J�|j�|��|j�J�|j�d��V�}|�||��dS�Nro)rVr4rWrsr_�r6�line�	recv_lines   r.�client_send_linez%TestIOStreamStartTLS.client_send_line��s�����!�-�-�-��� � ��&�&�&��!�-�-�-��,�7�7��@�@�@�@�	�����y�)�)�)�)�)r-c#��K�|j�J�|j�|��|j�J�|j�d��V�}|�||��dSr�)rWr4rVrsr_r�s   r.�server_send_linez%TestIOStreamStartTLS.server_send_line�r�r-Nc�^�|j�J�|j}d|_|�d||��S)NF)rV�	start_tls)r6r��server_hostnamerVs    r.�client_start_tlsz%TestIOStreamStartTLS.client_start_tls�s9���!�-�-�-��*�
�!����&�&�u�k�?�K�K�Kr-c�\�|j�J�|j}d|_|�d|��S)NT)rWr�)r6r�rWs   r.�server_start_tlsz%TestIOStreamStartTLS.server_start_tls�s7���!�-�-�-��*�
�!����&�&�t�[�9�9�9r-c#��K�|�d��V�|�d��V�|�d��V�|�d��V�|�d��V�|�d��V�|�ttj�����}|�t����}|V�|_|V�|_	|�
t|jt����|�
t|j	t����|�d��V�|�d��V�dS)	Ns220 mail.example.com ready
sEHLO mail.example.com
s250-mail.example.com welcome
s250 STARTTLS
s
STARTTLS
s220 Go ahead
r�s250 mail.example.com welcome
)
r�r�r�r&r�r�r�r/rVrWrUr�r)r6�
client_future�
server_futures   r.�test_start_tls_smtpz(TestIOStreamStartTLS.test_start_tls_smtp�sy�����#�#�$E�F�F�F�F�F��#�#�$@�A�A�A�A�A��#�#�$G�H�H�H�H�H��#�#�$7�8�8�8�8�8��#�#�O�4�4�4�4�4��#�#�$7�8�8�8�8�8��-�-�d�S�]�.K�.K�.K�L�L�
��-�-�.A�.C�.C�D�D�
�#0�0�0���#0�0�0������
�4�#5�{�C�C�D�D�D����
�4�#5�{�C�C�D�D�D��#�#�$@�A�A�A�A�A��#�#�$G�H�H�H�H�H�H�Hr-c#��K�|�t����}ttd��5|�d���}|�tj��5|V�ddd��n#1swxYwY|�tjtj	f��5|V�ddd��n#1swxYwYddd��dS#1swxYwYdS)N�	SSL Errorrd�r�)
r�r/rrr�rr��SSLErrorrPr\�r6r�r�s   r.�test_handshake_failz(TestIOStreamStartTLS.test_handshake_fails������-�-�.A�.C�.C�D�D�
�
�w��
,�
,�	$�	$� �1�1�+�1�N�N�M��"�"�3�<�0�0�
$�
$�#�#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$��"�"�C�L�&�,�#?�@�@�
$�
$�#�#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$�		$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	$�	$sY�6C�/B�4C�B	�C�B	�.C�6C�;C�C	�C�C	�C�C#�&C#c#��K�|�t����}ttd��5|�tj��d���}|�t
j��5|V�ddd��n#1swxYwY|�t��5|V�ddd��n#1swxYwYddd��dS#1swxYwYdS)Nr�rOr�)
r�r/rrr�r�r�rr�r�r�s   r.�test_check_hostnamez(TestIOStreamStartTLS.test_check_hostnames�����
�-�-�.A�.C�.C�D�D�
�
�w��
,�
,�		$�		$� �1�1��*�,�,�k�2���M��"�"�3�<�0�0�
$�
$�#�#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$��"�"�9�-�-�
$�
$�#�#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$�		$�		$�		$�		$�		$�		$�		$�		$�		$�		$�		$�		$����		$�		$�		$�		$�		$�		$sZ�AC �B�C �B	�C �B	�C �7C�<C �C	�C �C	�C � C$�'C$c#�fK�ttd�����d��}|j�J�|j�|��V�|j�J�|j�|j��V�}|�t|��t|����dS)Nre�L)	r�r �castrWr4rVr^r3r_)r6r!�recvs   r.�test_typed_memoryviewz*TestIOStreamStartTLS.test_typed_memoryview$s�������r���#�#�(�(��-�-���!�-�-�-�� �&�&�s�+�+�+�+�+��!�-�-�-��'�2�2�3�:�>�>�>�>������t���e�C�j�j�1�1�1�1�1r-)NNr>)r8r9r:r�r�r�rr?r�r�r�r�rr�r�r�r��
__classcell__)rzs@r.r�r��s5������������(�����.�.�.�	�]�*�*��]�*�	�]�*�*��]�*�L�L�L�L�:�:�:�:��I�I��X�I�(�$�$��X�$��$�$��X�$� �2�2��X�2�2�2�2�2r-r�c�p�eZdZejd���Zed���Zed���Zed���Z	dS)�WaitForHandshakeTestc#�(K�dx}}	t��\}}|t�����}|�|��tjtjj��}d|_tj|_	t��5|xjttdd��zc_ttj��|���}ddd��n#1swxYwY|�d|f��V�|�|j�����|�|���|�|���dSdS#|�|���|�|���wwxYw)Nr�F�
OP_NO_TLSv1_3rrO)rr/�
add_socketr�r�r�r�r�r�r�r�options�getattrrrPrR�assertIsNotNone�cipherr[rH)r6�
server_clsrprq�sockrUr�s       r.�connect_to_serverz&WaitForHandshakeTest.connect_to_server1s���������	�)�+�+�J�D�$��Z�,?�,A�,A�B�B�B�F����d�#�#�#��0���1H�I�I�G�%*�G�"�"%�-�G��$�%�%�
K�
K����7�3���#C�#C�C���$�V�]�_�_�'�J�J�J��
K�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K����
K�
K�
K�
K��.�.�+�t�!4�5�5�5�5�5�� � ���!5�!5�!7�!7�8�8�8��!����
�
�
��!���������"�!���!����
�
�
��!��������"���s2�BE"�AC"�E"�"C&�&E"�)C&�*AE"�"/Fc#���K�|�t���G��fd�dt��}|�|��V��V�dS)Nc�>��eZdZ�fd�Zej�fd���ZdS)�GWaitForHandshakeTest.test_wait_for_handshake_future.<locals>.TestServerc�����|j������j�|j|��dSr>)�assertIsNonerPr�r�spawn_callback�handle_connection)r6rXrLr�s   �r.�
handle_streamzUWaitForHandshakeTest.test_wait_for_handshake_future.<locals>.TestServer.handle_streamTsF����!�!�&�-�"6�"6�"8�"8�9�9�9���+�+�D�,B�F�K�K�K�K�Kr-c3�b�K�|���V���d��dSr>��wait_for_handshakerK)r6rX�handshake_futures  �r.r�zYWaitForHandshakeTest.test_wait_for_handshake_future.<locals>.TestServer.handle_connectionXs9������/�/�1�1�1�1�1� �+�+�D�1�1�1�1�1r-N)r8r9r:r�rr?r��r�r�s��r.�
TestServerr�SsZ�������
L�
L�
L�
L�
L��]�
2�
2�
2�
2��]�
2�
2�
2r-r��rrr��r6r�r�r�s  @@r.�test_wait_for_handshake_futurez3WaitForHandshakeTest.test_wait_for_handshake_futureNs~��������!�8�8��	2�	2�	2�	2�	2�	2�	2�	2��	2�	2�	2��$�$�Z�0�0�0�0�0������r-c#���K�|�t���G��fd�dt��}|�|��V��V�dS)Nc�6��eZdZej��fd���ZdS)�VWaitForHandshakeTest.test_wait_for_handshake_already_waiting_error.<locals>.TestServerc3��K�|���}��t|j��|V���d��dSr>)r�r�RuntimeErrorrK)r6rXrLr�r�r�s    ��r.r�zdWaitForHandshakeTest.test_wait_for_handshake_already_waiting_error.<locals>.TestServer.handle_streamfsT������/�/�1�1���!�!�,��0I�J�J�J��	�	�	� �+�+�D�1�1�1�1�1r-N�r8r9r:rr?r�r�s��r.r�res?�������
�]�
2�
2�
2�
2�
2��]�
2�
2�
2r-r�r�r�s  @@r.�-test_wait_for_handshake_already_waiting_errorzBWaitForHandshakeTest.test_wait_for_handshake_already_waiting_error`s~��������!�8�8��	2�	2�	2�	2�	2�	2�	2�	2��	2�	2�	2��$�$�Z�0�0�0�0�0������r-c#��K�t���G�fd�dt��}|�|��V��V�dS)Nc�4��eZdZej�fd���ZdS)�RWaitForHandshakeTest.test_wait_for_handshake_already_connected.<locals>.TestServerc3��K�|���V�|���V���d��dSr>r�)r6rXrLr�s   �r.r�z`WaitForHandshakeTest.test_wait_for_handshake_already_connected.<locals>.TestServer.handle_streamvsQ������/�/�1�1�1�1�1��/�/�1�1�1�1�1� �+�+�D�1�1�1�1�1r-Nr)r�s�r.r�r
us:�������
�]�
2�
2�
2�
2��]�
2�
2�
2r-r�r�)r6r�r�s  @r.�)test_wait_for_handshake_already_connectedz>WaitForHandshakeTest.test_wait_for_handshake_already_connectedqss�����!�8�8��	2�	2�	2�	2�	2�	2�	2��	2�	2�	2��$�$�Z�0�0�0�0�0������r-N)
r8r9r:rr?r�rrrrr,r-r.r�r�0s��������]����]��8����X��"����X�� ����X���r-r�c�Z�eZdZejd���Zed���Zed���ZdS)�TestPipeIOStreamc�b�tj��\}}t|fi|��t|fi|��fSr>)r'�piper	)r6r�r5�ws    r.r�z#TestPipeIOStream.make_iostream_pair�s<���w�y�y���1��A�(�(��(�(�,�q�*C�*C�F�*C�*C�C�Cr-c#��K�|���V�\}}|�d��|�d��|�d��V�}|�|d��|�d��V�}|�|d��|���|���V�}|�|d��|���dS)Nshelslo world� shello r]r�sld)r�r4rsr_r^rHrTr�s    r.�test_pipe_iostreamz#TestPipeIOStream.test_pipe_iostream�s������.�.�0�0�0�0���B�
�������
��������]�]�4�(�(�(�(������y�)�)�)��]�]�1�%�%�%�%������v�&�&�&�
���
�
�
��(�(�*�*�*�*������u�%�%�%�
���
�
�
�
�
r-c#� K�|���V�\}}d}|�d|z��|�|��V�}|�|d|z��|���|���dS)Nr~r�)r�r4r^r_rH)r6r�r��	NUM_BYTESrYs     r.�test_pipe_iostream_big_writez-TestPipeIOStream.test_pipe_iostream_big_write�s������.�.�0�0�0�0���B��	�	����	�!�"�"�"��]�]�9�-�-�-�-������t�i�/�0�0�0�
���
�
�
�
���
�
�
�
�
r-N)	r8r9r:rr?r�rrrr,r-r.rr�sh�������]�D�D��]�D�
����X��&����X���r-rc�>�eZdZdZd�Zd�Zdd�Zd�Zd�Zd�Z	d	�Z
d
S)�TestStreamBufferz9
    Unit tests for the private _StreamBuffer class.
    c�8�tjd��|_dS)Nr*)r8r<r5s r.r�zTestStreamBuffer.setUp�s���m�B�'�'����r-c���t|ttf��rt|��St|t��r|���St|���r>)r�r rr��tobytes�	TypeError)r6�bs  r.�to_byteszTestStreamBuffer.to_bytes�sP���a�%��+�,�,�	���8�8�O�
��:�
&�
&�	��9�9�;�;���A�,�,�r-rc�B�t��}|jsJ�||_|Sr>)r�_large_buf_threshold)r6�large_buf_thresholdr!s   r.�make_streambufferz"TestStreamBuffer.make_streambuffer�s'���o�o���'�'�'�'�#6�� ��
r-c��d}|dt|��zkr�|�|�|����}|�|��|�t|��|��|�|�|��||f��|dzdzdz}|dt|��zk��dSdS)Nr�r�r])r�r�peekrU�assertLessEqualrV)r6r!�expectedr2�gots     r.�
check_peekzTestStreamBuffer.check_peek�s������Q��X���&�&�&��-�-�������/�/�C��O�O�C� � � �� � ��S���4�0�0�0��O�O�H�/�/��4�4�x��o�F�F�F��1�H�q�L�Q�&�D��Q��X���&�&�&�&�&�&�&r-c��|�t|��d��d}|D]k}||z
}|�||����|�t|��t|����|�||���l|r�|j�dt|��dz��}||d�}|�|��|�t|��t|����|�||��|��|�t|��d��dS)Nrr-r�)r_r�rgr)r8�	randrange�advance)r6r!�objs�
input_typer'�or9s       r.�check_append_all_then_skip_allz/TestStreamBuffer.check_append_all_then_skip_all�s8������S���1�%�%�%����	+�	+�A���M�H��J�J�z�z�!�}�}�%�%�%����S��X�X�s�8�}�}�5�5�5��O�O�C��*�*�*�*��	+���%�%�a��X����):�;�;�A�����|�H��K�K��N�N�N����S��X�X�s�8�}�}�5�5�5��O�O�C��*�*�*��	+�	
����S���1�%�%�%�%�%r-c���gd�}|���}|�||t��|���}|�||t��|���}|�||t��|�d��}td��D]}|�d���|�t|j	��d��td��D]}|�d���|�t|j	��d��|�
d��|�t|j	��d��|�
d��|�t|j	��d��|�t|��d��dS)	N)r�s345s67s89a�bcdesfghsijklmnrr\r�r�r��r�r#r0r rr�r�rgr_r��_buffersr,�r6r-r!r�s    r.�
test_smallzTestStreamBuffer.test_small�s���I�I�I���$�$�&�&���+�+�C��u�=�=�=��$�$�&�&���+�+�C��y�A�A�A��$�$�&�&���+�+�C��z�B�B�B��$�$�R�(�(���q���	�	�A��J�J�t���������S�\�*�*�A�.�.�.��q���	�	�A��J�J�t���������S�\�*�*�A�.�.�.����B��������S�\�*�*�A�.�.�.����A��������S�\�*�*�A�.�.�.�����S���1�%�%�%�%�%r-c�$�gd�}|���}|�||t��|���}|�||t��|���}|�||t��|�d��}td��D]}|�d���|�t|j	��d��|�d��|�t|j	��d��|�d��|�t|j	��d��|�
d��|�t|j	��d	��|�
d
��|�t|j	��d��|�t|��d��dS)N)s
1212121212s345345s(6767676767676767676767676767676767676767s$89a89a89a89a89a89a89a89a89a89a89a89ar2sfghfghfghfghfghfghfghsijklmnijklmnrr]sxxxxxxxxxxx�yr��z�!r�r�rr4r6s    r.�
test_largezTestStreamBuffer.test_large�s���
�
�
���$�$�&�&���+�+�C��u�=�=�=��$�$�&�&���+�+�C��y�A�A�A��$�$�&�&���+�+�C��z�B�B�B��$�$�R�(�(���q���	"�	"�A��J�J�y�!�!�!�!�����S�\�*�*�A�.�.�.��
�
�4��������S�\�*�*�A�.�.�.��
�
�4��������S�\�*�*�A�.�.�.����B��������S�\�*�*�A�.�.�.����A��������S�\�*�*�A�.�.�.�����S���1�%�%�%�%�%r-N)r)r8r9r:�__doc__r�rr#r)r0r7r<r,r-r.rr�s���������(�(�(��������'�'�'�&�&�&�(&�&�&�4!&�!&�!&�!&�!&r-r)F�tornado.concurrentr�tornadorr�tornado.ioloopr�tornado.iostreamrrr	r
r�tornado.httputilr�
tornado.locksr
r�tornado.logr�tornado.netutilrr�tornado.platform.asyncior�tornado.tcpserverr�tornado.testingrrrrrr�tornado.test.utilrrrr�tornado.webrrr�rjr=r�r'r�r8rPr�r�r�r r/r1�objectr<r�rCr�r�r�r�r�r�r�r�TestCaserr,r-r.�<module>rMs���%�%�%�%�%�%�������������!�!�!�!�!�!���������������)�(�(�(�(�(�*�*�*�*�*�*�*�*�������C�C�C�C�C�C�C�C�?�?�?�?�?�?�'�'�'�'�'�'�����������������������������4�3�3�3�3�3�3�3�����������������	�	�	�	�����
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�������������������>����
l!�l!�l!�l!�l!�6�l!�l!�l!�^h�h�h�h�h��h�h�h�Vc�c�c�c�c�*�c�c�c�L)�)�)�)�)�.�0A�)�)�)�
W�W�W�W�W�/�1C�W�W�W�
.�.�.�.�.�$�m�.�.�.�

�

�

�

�

�'��

�

�

�&F�F�F�F�F�.�
�F�F�F�&z2�z2�z2�z2�z2�=�z2�z2�z2�zM�M�M�M�M�=�M�M�M�`�(�(�(�(�(�)�=�(�(���(�Vn&�n&�n&�n&�n&�x�(�n&�n&�n&�n&�n&r-

Youez - 2016 - github.com/yon3zu
LinuXploit