Your IP : 216.73.216.213


Current Path : /opt/alt/python311/lib64/python3.11/test/__pycache__/
Upload File :
Current File : //opt/alt/python311/lib64/python3.11/test/__pycache__/_test_eintr.cpython-311.opt-2.pyc

�

�0�iG��z�	ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZddlmZdZejd���Zejeed��d��Gd	�d
ej����Zejeed��d��Gd�de����Zejeed��d��Gd
�de����Zejeed��d��Gd�de����Zejeed��d��ejeed��d��Gd�de������Zejeed��d��Gd�de����ZGd�de��Zedkrej��dSdS)�N)�support)�	os_helper)�
socket_helperg{�G�z�?c#�K�	|5	|V�n#|����xYw	ddd��dS#1swxYwYdS�N)�kill)�procs �7/opt/alt/python311/lib64/python3.11/test/_test_eintr.py�
kill_on_errorr"s�����Q�	
���	��J�J�J�J��	��I�I�K�K�K�����
���������������������s�5�
�5�$�5�9�9�	setitimerzrequires setitimer()c�P�eZdZ	dZdZdZd�Zd�Zed���Z	d�Z
d�Zd�Zd	S)
�
EINTRBaseTestg�������?g�������?c�&�|xjdz
c_dS�N�)�signals)�self�signum�frames   r
�
sighandlerzEINTRBaseTest.sighandler9s�����������c��d|_tjtj|j��|_tjtj|j|j��tj
ddtj���dS)NriXT)�exit�file)
r�signal�SIGALRMr�orig_handlerr�ITIMER_REAL�signal_delay�
signal_period�faulthandler�dump_traceback_later�sys�
__stderr__�rs r
�setUpzEINTRBaseTest.setUp<su�����"�M�&�.�$�/�J�J������+�T�->��+�	-�	-�	-�
	�)�'��/2�~�	?�	?�	?�	?�	?�	?rc�F�tjtjdd��dS�Nr)rrr�rr
�
stop_alarmzEINTRBaseTest.stop_alarmGs �����+�Q��2�2�2�2�2rc��|���tjtj|j��t	j��dSr)r*rrrr!�cancel_dump_traceback_laterr%s r
�tearDownzEINTRBaseTest.tearDownKs>���������
�f�n�d�&7�8�8�8��0�2�2�2�2�2rc�H�tjdf|z}tj|fi|��S)Nz-c)r#�
executable�
subprocess�Popen)r�args�kw�cmd_argss    r
r0zEINTRBaseTest.subprocessPs,���N�D�)�D�0�����/�/�B�/�/�/rc�L�|�||jtz
��dSr)�assertGreaterEqual�
sleep_time�	CLOCK_RES)r�elapseds  r
�check_elapsed_timez EINTRBaseTest.check_elapsed_timeTs%��������9�)D�E�E�E�E�ErN)
�__name__�
__module__�__qualname__rr r7rr&�staticmethodr*r-r0r:r)rr
rr-s�������'��L��M��J����	?�	?�	?��3�3��\�3�3�3�3�
0�0�0�F�F�F�F�Frrc���eZdZ	d�Zd�Zd�Zejee	d��d��d���Z
d�Zd�Zejee	d	��d
��d���Z
d�Zd
�ZdS)�OSEINTRTestc�@�d|jz}|�|��S)Nzimport time; time.sleep(%r))r7r0)r�codes  r
�new_sleep_processzOSEINTRTest.new_sleep_process\s ��,�t��>�����t�$�$�$rc���d}�fd�t|��D��}t|��D]}|���
|D]}|����dS)N�c�8��g|]}������Sr))rC)�.0�_rs  �r
�
<listcomp>z3OSEINTRTest._test_wait_multiple.<locals>.<listcomp>bs%���B�B�B�!�T�+�+�-�-�B�B�Br)�range�wait)r�	wait_func�num�	processesrHr	s`     r
�_test_wait_multiplezOSEINTRTest._test_wait_multiple`sq�����B�B�B�B�u�S�z�z�B�B�B�	��s���	�	�A��I�K�K�K�K��	�	�D��I�I�K�K�K�K�	�	rc�D�|�tj��dSr)rO�osrKr%s r
�	test_waitzOSEINTRTest.test_waitis��� � ���)�)�)�)�)r�wait3zrequires wait3()c�2�|�d���dS)Nc�*�tjd��Sr()rQrSr)rr
�<lambda>z(OSEINTRTest.test_wait3.<locals>.<lambda>ns����!���r)rOr%s r
�
test_wait3zOSEINTRTest.test_wait3ls ��� � �!4�!4�5�5�5�5�5rc�v�|���}||j��|���dSr)rC�pidrK)rrLr	s   r
�_test_wait_singlezOSEINTRTest._test_wait_singleps6���%�%�'�'���	�$�(�����	�	�����rc�2�|�d���dS)Nc�,�tj|d��Sr()rQ�waitpid�rYs r
rVz*OSEINTRTest.test_waitpid.<locals>.<lambda>ws��2�:�c�1�+=�+=�r�rZr%s r
�test_waitpidzOSEINTRTest.test_waitpidvs �����=�=�>�>�>�>�>r�wait4zrequires wait4()c�2�|�d���dS)Nc�,�tj|d��Sr()rQrar^s r
rVz(OSEINTRTest.test_wait4.<locals>.<lambda>{s��2�8�C��+;�+;�rr_r%s r
�
test_wait4zOSEINTRTest.test_wait4ys �����;�;�<�<�<�<�<rc�X�tj��\}}|�tj|��gd�}d�dddd|zd|jzddd	d
df
��}|�|t|��|g���}t|��5tj|��|D]8}|�	|tj
|t|�������9|�	|���d
��ddd��dS#1swxYwYdS)N)shellosworldsspam�
zimport os, sys, time�zwr = int(sys.argv[1])�
datas = %r�sleep_time = %rzfor data in datas:z$    # let the parent block on read()�    time.sleep(sleep_time)z    os.write(wr, data)��pass_fdsr)
rQ�pipe�
addCleanup�close�joinr7r0�strr�assertEqual�read�lenrK)r�rd�wr�datasrBr	�datas       r
�	test_readzOSEINTRTest.test_read}sn��������B������"�%�%�%�
.�-�-���y�y�"��#��5� ����/�� �2�(�$�
�������t�S��W�W��t��<�<��
�4�
 �
 �	-�	-��H�R�L�L�L��
?�
?��� � ��r�w�r�3�t�9�9�'=�'=�>�>�>�>����T�Y�Y�[�[�!�,�,�,�		-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�A8D�D#�&D#c���tj��\}}|�tj|��dtjz}d�dddd|jzdtjzddd	d
dddd
ddddddf��}|�|t|��|g���}t|��5tj|��d}|t|��kr@|tj|t|��|d���z
}|t|��k�@|�|���d��ddd��dS#1swxYwYdS)N�xrfzimport io, os, sys, timergzrd = int(sys.argv[1])rizdata = b"x" * %s�data_len = len(data)z!# let the parent block on write()�time.sleep(sleep_time)zread_data = io.BytesIO()z+while len(read_data.getvalue()) < data_len:z%    chunk = os.read(rd, 2 * data_len)z    read_data.write(chunk)zvalue = read_data.getvalue()zif value != data:z0    raise Exception("read error: %s vs %s bytes"z-                    % (len(value), data_len))rkr)rQrmrnror�
PIPE_MAX_SIZErpr7r0rqrrt�write�
memoryviewrrrK)rrurvrxrBr	�writtens       r
�
test_writezOSEINTRTest.test_write�s���������B������"�%�%�%��g�+�+���y�y�&��#����/���!6�6�"��/�$��&�9�3�(��*��>�;�'
����,���t�S��W�W��t��<�<��
�4�
 �
 �	-�	-��H�R�L�L�L��G��C��I�I�%�%��2�8�B�
�4�(8�(8����(B�C�C�C���C��I�I�%�%����T�Y�Y�[�[�!�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�8BE�E�EN)r;r<r=rCrOrR�unittest�
skipUnless�hasattrrQrWrZr`rdryr�r)rr
r@r@Xs�������*�%�%�%����*�*�*��X�����W�-�-�/A�B�B�6�6�C�B�6����?�?�?��X�����W�-�-�/A�B�B�=�=�C�B�=�-�-�-�:$-�$-�$-�$-�$-rr@c�(�eZdZ	ejeed��d��d���Zd�Zejeejd��d��d���Z	d�Z
d	�Zd
�Zejeejd��d��d
���Z
d�Zejdd��ejeed��d��d�����Zd�Zejejdkd��d���Zd�Zejejdkd��d���ZdS)�SocketEINTRTest�
socketpairzneeds socketpair()c���tj��\}}|�|j��gd�}d�ddddt|j��zdt|j��zd|zd	|jzdd
dddd
dddf��}|�	��}|�
|t|��|g���}t|��5|���|D]/}|�
|||t|�������0|�
|���d��ddd��dS#1swxYwYdS)N)r{�y�zrf�import os, socket, sys, timerg�fd = int(sys.argv[1])�family = %s�sock_type = %srhriz)wr = socket.fromfd(fd, family, sock_type)�os.close(fd)zwith wr:z    for data in datas:z(        # let the parent block on recv()z        time.sleep(sleep_time)z        wr.sendall(data)rkr)�socketr�rnrorp�int�family�typer7�filenor0rqrrrrtrK)	r�	recv_funcrurvrwrB�fdr	rxs	         r
�
_test_recvzSocketEINTRTest._test_recv�s����"�$�$���B������!�!�!�#�"�"���y�y�*��#��C��	�N�N�*��s�2�7�|�|�+��5� ����/��7����$�6�,�&�!
����&�Y�Y�[�[�����t�S��W�W��t��<�<��
�4�
 �
 �	-�	-��H�H�J�J�J��
A�
A��� � ��y�y��S��Y�Y�'?�'?�@�@�@�@����T�Y�Y�[�[�!�,�,�,�		-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�A/E�E�Ec�N�|�tjj��dSr)r�r��recvr%s r
�	test_recvzSocketEINTRTest.test_recv��������
�*�+�+�+�+�+r�recvmsgzneeds recvmsg()c�2�|�d���dS)Nc�8�|�|��dSr()r���sockrxs  r
rVz.SocketEINTRTest.test_recvmsg.<locals>.<lambda>�s��4�<�<��+=�+=�a�+@�r)r�r%s r
�test_recvmsgzSocketEINTRTest.test_recvmsg�s�����@�@�A�A�A�A�Arc�b�tj��\}}|�|j��dtjdzz}d�ddddt|j��zdt|j	��zd	|j
zd
tjdzzdddd
dddddddddddddf��}|���}|�|t|��|g���}t|��5|���d}|t|��krJ||t!|��|d���}	||	�t|��n|	z
}|t|��k�J|�|���d��ddd��dS#1swxYwYdS)NsxyzrErfr�rgr�r�r�rizdata = b"xyz" * %sr|z)rd = socket.fromfd(fd, family, sock_type)r�zwith rd:z$    # let the parent block on send()rjz'    received_data = bytearray(data_len)z	    n = 0z    while n < data_len:z8        n += rd.recv_into(memoryview(received_data)[n:])zif received_data != data:z0    raise Exception("recv error: %s vs %s bytes"z5                    % (len(received_data), data_len))rkr)r�r�rnror�
SOCK_MAX_SIZErpr�r�r�r7r�r0rqrrtr�rrrK)
r�	send_funcrurvrxrBr�r	r��sents
          r
�
_test_sendzSocketEINTRTest._test_send�s����"�$�$���B������!�!�!���.�!�3�4���y�y�*��#��C��	�N�N�*��s�2�7�|�|�+����/� �G�$9�Q�$>�?�"��7����2�(��5��%�F��'�>�C�1
����6�Y�Y�[�[�����t�S��W�W��t��<�<��
�4�
 �
 �	-�	-��H�H�J�J�J��G��C��I�I�%�%� �y��Z��%5�%5�g�h�h�%?�@�@�����3�t�9�9�9�$�>���C��I�I�%�%�
���T�Y�Y�[�[�!�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�;BF$�$F(�+F(c�N�|�tjj��dSr)r�r��sendr%s r
�	test_sendzSocketEINTRTest.test_sendr�rc�N�|�tjj��dSr)r�r��sendallr%s r
�test_sendallzSocketEINTRTest.test_sendall!s������
�-�.�.�.�.�.r�sendmsgzneeds sendmsg()c�2�|�d���dS)Nc�.�|�|g��Sr)r�r�s  r
rVz.SocketEINTRTest.test_sendmsg.<locals>.<lambda>&s��4�<�<���+?�+?�r)r�r%s r
�test_sendmsgzSocketEINTRTest.test_sendmsg$s�����?�?�@�@�@�@�@rc�<�tjtjdf��}|�|j��|���d}d�dddtjzd|zd|jzdd	d
ddf
��}|�	|��}t|��5|���\}}|���|�|�
��d��ddd��dS#1swxYwYdS)
Nrrrfzimport socket, timergz	host = %rz	port = %sriz# let parent block on accept()r}z,with socket.create_connection((host, port)):rj)r��
create_serverr�HOSTrnro�getsocknamerpr7r0r�acceptrrrK)rr��portrBr	�client_sockrHs       r
�test_acceptzSocketEINTRTest.test_accept(sT���#�]�%7��$;�<�<������
�#�#�#����!�!�!�$���y�y�!���-�,�,��$�����/��,�$�:�(�
�������t�$�$��
�4�
 �
 �	-�	-�!�[�[�]�]�N�K�����������T�Y�Y�[�[�!�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�0AD�D�D�
rE�mkfifozneeds mkfifo()c�B�tj}tj|��	tj|��n/#t
$r"}|�d|z��Yd}~nd}~wwxYw|�tj|��d�ddd|zd|j	zdddd|f	��}|�
|��}t|��5||��|�|�
��d	��ddd��dS#1swxYwYdS)
Nzos.mkfifo(): %srf�import os, timergz	path = %ariz# let the parent blockr}r)r�TESTFN�unlinkrQr��PermissionError�skipTestrnrpr7r0rrrrK)r�do_open_close_reader�do_open_close_writer�filename�erBr	s       r
�
_test_openzSocketEINTRTest._test_openDs����#��	���"�"�"�	1��I�h�������	1�	1�	1��M�M�+�a�/�0�0�0�0�0�0�0�0�����	1�������	�(�(�3�3�3��y�y����(�"����/��$�$�� �

�
�
�����t�$�$��
�4�
 �
 �	-�	-� � ��*�*�*����T�Y�Y�[�[�!�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s'�7�
A#�A�A#�4D�D�Dc�N�t|d��}|���dS)N�w)�openro)r�path�fps   r
�python_openzSocketEINTRTest.python_opencs ��
�$��_�_��
���
�
�
�
�
r�darwinz+hangs under macOS; see bpo-25234, bpo-35363c�<�|�d|j��dS)Nzfp = open(path, 'r')
fp.close())r�r�r%s r
�	test_openzSocketEINTRTest.test_opengs-��	
���:��(�	*�	*�	*�	*�	*rc�l�tj|tj��}tj|��dSr)rQr��O_WRONLYro)rr�r�s   r
�os_openzSocketEINTRTest.os_openms&��
�W�T�2�;�
'�
'��
�������rc�<�|�d|j��dS)Nz,fd = os.open(path, os.O_RDONLY)
os.close(fd))r�r�r%s r
�test_os_openzSocketEINTRTest.test_os_openqs,��	
���G���	&�	&�	&�	&�	&rN)r;r<r=r�r�r�r�r�r�r�r�r�r�r�r�r�requires_freebsd_versionrQr�r��skipIfr#�platformr�r�r�r)rr
r�r��s������.��X������6�6�8L�M�M�!-�!-�N�M�!-�F,�,�,��X������	�:�:�<M�N�N�B�B�O�N�B�,-�,-�,-�\,�,�,�/�/�/��X������	�:�:�<M�N�N�A�A�O�N�A�-�-�-�8&�W�%�b�!�,�,��X�����X�.�.�0@�A�A�-�-�B�A�-�,�-�:����X�_�S�\�X�-�B�D�D�*�*�D�D�*�����X�_�S�\�X�-�B�D�D�&�&�D�D�&�&�&rr�c��eZdZ	d�ZdS)�
TimeEINTRTestc���tj��}tj|j��|���tj��|z
}|�|��dSr)�time�	monotonic�sleepr7r*r:�r�t0�dts   r
�
test_sleepzTimeEINTRTest.test_sleep|s]��
�^�
�
���
�4�?�#�#�#�������
�^�
�
��
"������#�#�#�#�#rN)r;r<r=r�r)rr
r�r�xs&������,�$�$�$�$�$rr��pthread_sigmaskzneed signal.pthread_sigmask()c��eZdZ	d�Zejeed��d��d���Zejeed��d��d���Z	dS)�SignalEINTRTestc��tj}tj��}tj|d���}|�tj||��d�ddtj��zdt
|��zd|jzddf��}tjtj	|g��}|�tjtj
|g��tj��}|�
|��}t|��5||��tj��|z
}	ddd��n#1swxYwY|�|���d	��dS)
Nc��dSrr))r2s r
rVz/SignalEINTRTest.check_sigwait.<locals>.<lambda>�s��$�rrfr�zpid = %szsignum = %srir}zos.kill(pid, signum)r)r�SIGUSR1rQ�getpidrnrpr�r7r��	SIG_BLOCK�SIG_UNBLOCKr�r�r0rrrrK)
rrLrrY�old_handlerrB�old_maskr�r	r�s
          r
�
check_sigwaitzSignalEINTRTest.check_sigwait�s�������i�k�k���m�F�,>�,>�?�?������
�v�{�;�;�;��y�y�������$��C��K�K�'����/�$�"�

�����)�&�*:�V�H�E�E������.��0B�V�H�M�M�M�
�^�
�
�����t�$�$��
�4�
 �
 �	'�	'��I�f������!�!�B�&�B�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	
��������a�(�(�(�(�(s�!"E�E�E�sigwaitinfozneed signal.sigwaitinfo()c�6�d�}|�|��dS)Nc�0�tj|g��dSr)rr��rs r
rLz3SignalEINTRTest.test_sigwaitinfo.<locals>.wait_func�s�����x�(�(�(�(�(r�r��rrLs  r
�test_sigwaitinfoz SignalEINTRTest.test_sigwaitinfo�s-��	)�	)�	)�	
���9�%�%�%�%�%r�sigtimedwaitc�6�d�}|�|��dS)Nc�2�tj|gd��dS)Ng^@)rr�r�s r
rLz4SignalEINTRTest.test_sigtimedwait.<locals>.wait_func�s������%�0�0�0�0�0rr�r�s  r
�test_sigtimedwaitz!SignalEINTRTest.test_sigtimedwait�s-��	1�	1�	1�	
���9�%�%�%�%�%rN)
r;r<r=r�r�r�r�rr�r�r)rr
r�r��s�������/�)�)�)�6�X������7�7�4�6�6�&�&�6�6�&��X������8�8�4�6�6�&�&�6�6�&�&�&rr�c�v�eZdZ	d�Zejejdkd��eje	e
d��d��d�����Zeje	e
d��d��d	���Zeje	e
d
��d��d���Z
eje	e
d
��d��d���ZdS)�SelectEINTRTestc���tj��}tjggg|j��tj��|z
}|���|�|��dSr)r�r��selectr7r*r:r�s   r
�test_selectzSelectEINTRTest.test_select�sc��
�^�
�
���
�b�"�b�$�/�2�2�2�
�^�
�
��
"������������#�#�#�#�#rr�z(poll may fail on macOS; see issue #28087�pollzneed select.pollc�
�tj��}tj��}|�|jdz��tj��|z
}|���|�|��dS�Ng@�@)r�r�r�r�r7r*r:�r�pollerr�r�s    r
�	test_pollzSelectEINTRTest.test_poll�sq�������
�^�
�
�����D�O�c�)�*�*�*�
�^�
�
��
"������������#�#�#�#�#r�epollzneed select.epollc�8�tj��}|�|j��t	j��}|�|j��t	j��|z
}|���|�	|��dSr)
r�rrnror�r�r�r7r*r:rs    r
�
test_epollzSelectEINTRTest.test_epoll�s~������������%�%�%�
�^�
�
�����D�O�$�$�$�
�^�
�
��
"������������#�#�#�#�#r�kqueuezneed select.kqueuec�<�tj��}|�|j��t	j��}|�dd|j��t	j��|z
}|���|�	|��dSr)
r�rrnror�r��controlr7r*r:)rrr�r�s    r
�test_kqueuezSelectEINTRTest.test_kqueue�s�������������%�%�%�
�^�
�
�����t�Q���0�0�0�
�^�
�
��
"������������#�#�#�#�#r�devpollzneed select.devpollc�>�tj��}|�|j��t	j��}|�|jdz��t	j��|z
}|���|�	|��dSr)
r�rrnror�r�r�r7r*r:rs    r
�test_devpollzSelectEINTRTest.test_devpoll�s�����!�!�������%�%�%�
�^�
�
�����D�O�c�)�*�*�*�
�^�
�
��
"������������#�#�#�#�#rN)r;r<r=r�r�r�r#r�r�r�r�rrr
r
r)rr
r�r��s5������.�$�$�$��X�_�S�\�X�-�?�A�A��X������0�0�2D�E�E�$�$�F�E�A�A�$��X������1�1�3F�G�G�$�$�H�G�$��X������2�2�4H�I�I�$�$�J�I�$��X������3�3�5J�K�K�$�$�L�K�$�$�$rr�c�p�eZdZd�Zejej��dkd��d���Zd�Z	dS)�
FNTLEINTRTestc��|�tjtj��d�ddtjzd|zd|jzf��}t
j��}|�|��}t|��5ttjd��5}	t
j��|z
}|dkrtd	|z���	||tj
tjz��||tj��t
jd
��n#t"$rYnwxYw��||tj
��t
j��|z
}|���|�|��ddd��n#1swxYwY|���ddd��dS#1swxYwYdS)Nrfzimport fcntl, timezwith open('%s', 'wb') as f:z   fcntl.%s(f, fcntl.LOCK_EX)z   time.sleep(%s)�wbTgN@z failed to sync child in %.1f secg{�G�z�?)rnrr�r�rpr7r�r�r0rr��	Exception�fcntl�LOCK_EX�LOCK_NB�LOCK_UNr��BlockingIOErrorr*r:rK)r�	lock_func�	lock_namerB�
start_timer	�fr�s        r
�_lockzFNTLEINTRTest._lock�sF�����	�(�)�*:�;�;�;��y�y� �)�I�,<�<�+�i�7��$�/�1�	3�4�4��
�^�%�%�
����t�$�$��
�4�
 �
 �	�	��i�&��-�-�
,��	���)�)�J�6�B��D�y�y�'�(J�R�(O�P�P�P��!�	�!�U�]�U�]�%B�C�C�C�!�	�!�U�]�3�3�3��
�4�(�(�(�(��*����������	��	�!�U�]�+�+�+��^�%�%�
�2�����!�!�!��'�'��+�+�+�#
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,�$
�I�I�K�K�K�'	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s\�G�.0F�A
D-�,F�-
D:�7F�9D:�:AF�G�F#	�#G�&F#	�'G�G�G�AIXzAIX returns PermissionErrorc�F�|�tjd��dS)N�lockf)rrrr%s r
�
test_lockfzFNTLEINTRTest.test_lockfs���
�
�5�;��(�(�(�(�(rc�F�|�tjd��dS)N�flock)rrr"r%s r
�
test_flockzFNTLEINTRTest.test_flocks���
�
�5�;��(�(�(�(�(rN)
r;r<r=rr�r�r��systemr r#r)rr
rr�sn���������@�X�_�_�X�_�&�&�%�/�1N�O�O�)�)�P�O�)�)�)�)�)�)rr�__main__) �
contextlibr!rrQr�r�rr�r0r#r�r��testr�test.supportrrr8�contextmanagerrr�r��TestCaserr@r�r�r�r�rr;�mainr)rr
�<module>r,sv���������������	�	�	�	�����
�
�
�
�
�
�
�
�
�
�
�
�����
�
�
�
���������������"�"�"�"�"�"�&�&�&�&�&�&�

�	�����������W�W�V�[�1�1�3I�J�J�'F�'F�'F�'F�'F�H�%�'F�'F�K�J�'F�T���W�W�V�[�1�1�3I�J�J�e-�e-�e-�e-�e-�-�e-�e-�K�J�e-�P���W�W�V�[�1�1�3I�J�J�s&�s&�s&�s&�s&�m�s&�s&�K�J�s&�l���W�W�V�[�1�1�3I�J�J�$�$�$�$�$�M�$�$�K�J�$����W�W�V�[�1�1�3I�J�J����W�W�V�%6�7�7�4�6�6�,&�,&�,&�,&�,&�m�,&�,&�6�6�K�J�
,&�^���W�W�V�[�1�1�3I�J�J�5$�5$�5$�5$�5$�m�5$�5$�K�J�5$�p&)�&)�&)�&)�&)�M�&)�&)�&)�R�z����H�M�O�O�O�O�O��r