HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/test/__pycache__/_test_eintr.cpython-311.opt-2.pyc
�

��Vc�H��v�	ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZddlmZejd���Zejeed��d��Gd�d	ej����Zejeed��d��Gd
�de����Zejeed��d��Gd�d
e����Zejeed��d��Gd�de����Zejeed��d��ejeed��d��Gd�de������Zejeed��d��Gd�de����ZGd�de��Zedkrej��dSdS)�N)�support)�	os_helper)�
socket_helperc#�K�	|5	|V�n#|����xYw	ddd��dS#1swxYwYdS�N)�kill)�procs �$D:\Python311\Lib\test\_test_eintr.py�
kill_on_errorrs�����Q�	
���	��J�J�J�J��	��I�I�K�K�K�����
���������������������s�5�
�5�$�5�9�9�	setitimerzrequires setitimer()c�J�eZdZ	dZdZdZd�Zd�Zed���Z	d�Z
d�ZdS)	�
EINTRBaseTestg�������?g�������?c�&�|xjdz
c_dS�N�)�signals)�self�signum�frames   r
�
sighandlerzEINTRBaseTest.sighandler3s�����������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.setUp6su�����"�M�&�.�$�/�J�J������+�T�->��+�	-�	-�	-�
	�)�'��/2�~�	?�	?�	?�	?�	?�	?rc�F�tjtjdd��dS�Nr)rrr�rr
�
stop_alarmzEINTRBaseTest.stop_alarmAs �����+�Q��2�2�2�2�2rc��|���tjtj|j��t	j��dSr)r*rrrr!�cancel_dump_traceback_laterr%s r
�tearDownzEINTRBaseTest.tearDownEs>���������
�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.subprocessJs,���N�D�)�D�0�����/�/�B�/�/�/rN)�__name__�
__module__�__qualname__rr �
sleep_timerr&�staticmethodr*r-r0r)rr
rr's�������'��L��M��J����	?�	?�	?��3�3��\�3�3�3�3�
0�0�0�0�0rrc���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))r8r0)r�codes  r
�new_sleep_processzOSEINTRTest.new_sleep_processSs ��,�t��>�����t�$�$�$rc���d}�fd�t|��D��}t|��D]}|���
|D]}|����dS)N�c�8��g|]}������Sr))r>)�.0�_rs  �r
�
<listcomp>z3OSEINTRTest._test_wait_multiple.<locals>.<listcomp>Ys%���B�B�B�!�T�+�+�-�-�B�B�Br)�range�wait)r�	wait_func�num�	processesrCr	s`     r
�_test_wait_multiplezOSEINTRTest._test_wait_multipleWsq�����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)rJ�osrFr%s r
�	test_waitzOSEINTRTest.test_wait`s��� � ���)�)�)�)�)r�wait3zrequires wait3()c�2�|�d���dS)Nc�*�tjd��Sr()rLrNr)rr
�<lambda>z(OSEINTRTest.test_wait3.<locals>.<lambda>es����!���r)rJr%s r
�
test_wait3zOSEINTRTest.test_wait3cs ��� � �!4�!4�5�5�5�5�5rc�v�|���}||j��|���dSr)r>�pidrF)rrGr	s   r
�_test_wait_singlezOSEINTRTest._test_wait_singlegs6���%�%�'�'���	�$�(�����	�	�����rc�2�|�d���dS)Nc�,�tj|d��Sr()rL�waitpid�rTs r
rQz*OSEINTRTest.test_waitpid.<locals>.<lambda>ns��2�:�c�1�+=�+=�r�rUr%s r
�test_waitpidzOSEINTRTest.test_waitpidms �����=�=�>�>�>�>�>r�wait4zrequires wait4()c�2�|�d���dS)Nc�,�tj|d��Sr()rLr\rYs r
rQz(OSEINTRTest.test_wait4.<locals>.<lambda>rs��2�8�C��+;�+;�rrZr%s r
�
test_wait4zOSEINTRTest.test_wait4ps �����;�;�<�<�<�<�<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)
rL�pipe�
addCleanup�close�joinr8r0�strr�assertEqual�read�lenrF)r�rd�wr�datasr=r	�datas       r
�	test_readzOSEINTRTest.test_readtsn��������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�xrazimport io, os, sys, timerbzrd = int(sys.argv[1])rdzdata = 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))rfr)rLrhrirjr�
PIPE_MAX_SIZErkr8r0rlrro�write�
memoryviewrmrF)rrprqrsr=r	�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�%�
D��2�8�B�
�4�(8�(8����(B�C�C�C���C��I�I�%�
D����T�Y�Y�[�[�!�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�8BE�E�EN)r5r6r7r>rJrM�unittest�
skipUnless�hasattrrLrRrUr[r_rtr}r)rr
r;r;Os�������*�%�%�%����*�*�*��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)rv�y�zra�import os, socket, sys, timerb�fd = int(sys.argv[1])�family = %s�sock_type = %srcrdz)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)rfr)�socketr�rirjrk�int�family�typer8�filenor0rlrrmrorF)	r�	recv_funcrprqrrr=�fdr	rss	         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���sockrss  r
rQz.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)Nsxyzr@rar�rbr�r�r�rdzdata = b"xyz" * %srwz)rd = socket.fromfd(fd, family, sock_type)r�zwith rd:z$    # let the parent block on send()rez'    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))rfr)r�r�rirjr�
SOCK_MAX_SIZErkr�r�r�r8r�r0rlrror{rmrF)
r�	send_funcrprqrsr=r�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_sendalls������
�-�.�.�.�.�.r�sendmsgzneeds sendmsg()c�2�|�d���dS)Nc�.�|�|g��Sr)r�r�s  r
rQz.SocketEINTRTest.test_sendmsg.<locals>.<lambda>s��4�<�<���+?�+?�r)r�r%s r
�test_sendmsgzSocketEINTRTest.test_sendmsgs�����?�?�@�@�@�@�@rc�<�tjtjdf��}|�|j��|���d}d�dddtjzd|zd|jzdd	d
ddf
��}|�	|��}t|��5|���\}}|���|�|�
��d��ddd��dS#1swxYwYdS)
Nrrrazimport socket, timerbz	host = %rz	port = %srdz# let parent block on accept()rxz,with socket.create_connection((host, port)):re)r��
create_serverr�HOSTrirj�getsocknamerkr8r0r�acceptrmrF)rr��portr=r	�client_sockrCs       r
�test_acceptzSocketEINTRTest.test_acceptsT���#�]�%7��$;�<�<������
�#�#�#����!�!�!�$���y�y�!���-�,�,��$�����/��,�$�:�(�
�������t�$�$��
�4�
 �
 �	-�	-�!�[�[�]�]�N�K�����������T�Y�Y�[�[�!�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�0AD�D�D�
r@�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(): %sra�import os, timerbz	path = %ardz# let the parent blockrxr)r�TESTFN�unlinkrLr��PermissionError�skipTestrirkr8r0rrmrF)r�do_open_close_reader�do_open_close_writer�filename�er=r	s       r
�
_test_openzSocketEINTRTest._test_open;s����#��	���"�"�"�	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)�openrj)r�path�fps   r
�python_openzSocketEINTRTest.python_openZs ��
�$��_�_��
���
�
�
�
�
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_open^s-��	
���:��(�	*�	*�	*�	*�	*rc�l�tj|tj��}tj|��dSr)rLr��O_WRONLYrj)rr�r�s   r
�os_openzSocketEINTRTest.os_opends&��
�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_openhs,��	
���G���	&�	&�	&�	&�	&rN)r5r6r7r~rr�r�r�r�r�r�r�r�r�r�r�requires_freebsd_versionrLr�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
}|�||j��dSr)�time�	monotonic�sleepr8r*�assertGreaterEqual�r�t0�dts   r
�
test_sleepzTimeEINTRTest.test_sleepssa��
�^�
�
���
�4�?�#�#�#�������
�^�
�
��
"������D�O�4�4�4�4�4rN)r5r6r7r�r)rr
r�r�os&������,�5�5�5�5�5rr��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
rQz/SignalEINTRTest.check_sigwait.<locals>.<lambda>�s��$�rrar�zpid = %szsignum = %srdrxzos.kill(pid, signum)r)r�SIGUSR1rL�getpidrirkr�r8r��	SIG_BLOCK�SIG_UNBLOCKr�r�r0rrmrF)
rrGrrT�old_handlerr=�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
rGz3SignalEINTRTest.test_sigwaitinfo.<locals>.wait_func�s�����x�(�(�(�(�(r�r��rrGs  r
�test_sigwaitinfoz SignalEINTRTest.test_sigwaitinfo�s-��	)�	)�	)�	
���9�%�%�%�%�%r�sigtimedwaitc�6�d�}|�|��dS)Nc�2�tj|gd��dS)Ng^@)rr�r�s r
rGz4SignalEINTRTest.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)
r5r6r7r�r~rr�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
}|���|�||j��dSr)r�r��selectr8r*r�r�s   r
�test_selectzSelectEINTRTest.test_select�sg��
�^�
�
���
�b�"�b�$�/�2�2�2�
�^�
�
��
"������������D�O�4�4�4�4�4rr�z(poll may fail on macOS; see issue #28087�pollzneed select.pollc��tj��}tj��}|�|jdz��tj��|z
}|���|�||j��dS�Ng@�@)r�r�r�r�r8r*r��r�pollerr�r�s    r
�	test_pollzSelectEINTRTest.test_poll�su�������
�^�
�
�����D�O�c�)�*�*�*�
�^�
�
��
"������������D�O�4�4�4�4�4r�epollzneed select.epollc�D�tj��}|�|j��t	j��}|�|j��t	j��|z
}|���|�	||j��dSr)
r�rrirjr�r�r�r8r*r�r�s    r
�
test_epollzSelectEINTRTest.test_epoll�s�������������%�%�%�
�^�
�
�����D�O�$�$�$�
�^�
�
��
"������������D�O�4�4�4�4�4r�kqueuezneed select.kqueuec�H�tj��}|�|j��t	j��}|�dd|j��t	j��|z
}|���|�	||j��dSr)
r�rrirjr�r��controlr8r*r�)rrr�r�s    r
�test_kqueuezSelectEINTRTest.test_kqueue�s�������������%�%�%�
�^�
�
�����t�Q���0�0�0�
�^�
�
��
"������������D�O�4�4�4�4�4r�devpollzneed select.devpollc�J�tj��}|�|j��t	j��}|�|jdz��t	j��|z
}|���|�	||j��dSr�)
r�rrirjr�r�r�r8r*r�r�s    r
�test_devpollzSelectEINTRTest.test_devpoll�s�����!�!�������%�%�%�
�^�
�
�����D�O�c�)�*�*�*�
�^�
�
��
"������������D�O�4�4�4�4�4rN)r5r6r7r�r~r�r#r�rr�r�r�rrr	r)rr
r�r��s5������.�5�5�5��X�_�S�\�X�-�?�A�A��X������0�0�2D�E�E�5�5�F�E�A�A�5��X������1�1�3F�G�G�5�5�H�G�5��X������2�2�4H�I�I�5�5�J�I�5��X������3�3�5J�K�K�5�5�L�K�5�5�5rr�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
}|�||j��|���ddd��n#1swxYwY|���ddd��dS#1swxYwYdS)Nrazimport 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�?)rirr�r�rkr8r�r�r0rr��	Exception�fcntl�LOCK_EX�LOCK_NB�LOCK_UNr��BlockingIOErrorr�r*rF)r�	lock_func�	lock_namer=�
start_timer	�fr�s        r
�_lockzFNTLEINTRTest._lock�sN�����	�(�)�*:�;�;�;��y�y� �)�I�,<�<�+�i�7��$�/�1�	3�4�4��
�^�%�%�
����t�$�$��
�4�
 �
 �	�	��i�&��-�-�
"��	���)�)�J�6�B��D�y�Q�'�(J�R�(O�P�P�P��!�	�!�U�]�U�]�%B�C�C�C�!�	�!�U�]�3�3�3��
�4�(�(�(�(��*����������	��	�!�U�]�+�+�+��^�%�%�
�2���'�'��D�O�<�<�<����!�!�!�#
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"����
"�
"�
"�
"�$
�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_lockf	s���
�
�5�;��(�(�(�(�(rc�F�|�tjd��dS)N�flock)rrrr%s r
�
test_flockzFNTLEINTRTest.test_flock
s���
�
�5�;��(�(�(�(�(rN)
r5r6r7rr~r�r��systemrrr)rr
rr�sn���������@�X�_�_�X�_�&�&�%�/�1N�O�O�)�)�P�O�)�)�)�)�)�)rr�__main__)�
contextlibr!rrLr�r�rr�r0r#r�r~�testr�test.supportrr�contextmanagerrrr��TestCaserr;r�r�r�r�rr5�mainr)rr
�<module>r(si���������������	�	�	�	�����
�
�
�
�
�
�
�
�
�
�
�
�����
�
�
�
���������������"�"�"�"�"�"�&�&�&�&�&�&�����������W�W�V�[�1�1�3I�J�J�$0�$0�$0�$0�$0�H�%�$0�$0�K�J�$0�N���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�5�5�5�5�5�M�5�5�K�J�5����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�55�55�55�55�55�m�55�55�K�J�55�p&)�&)�&)�&)�&)�M�&)�&)�&)�R�z����H�M�O�O�O�O�O��r