HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/test_asyncio/__pycache__/test_proactor_events.cpython-37.pyc
B

��g���@sdZddlZddlZddlZddlZddlmZddlZddlmZddlm	Z	ddlm
Z
ddlmZddlmZdd	l
mZdd
lmZdd�ZGd
d�dej�Ze�d�Gdd�dej��ZGdd�dej�Ze�ejdkd�Gdd�dej��Zedk�r
e��dS)zTests for proactor_events.py�N)�mock)�events)�BaseProactorEventLoop)�_ProactorSocketTransport)�_ProactorWritePipeTransport)�_ProactorDuplexPipeTransport)�support)�utilscCs"|jdkrdS|j��d|_dS)N)Z_sock�close)�	transport�r�B/usr/local/lib/python3.7/test/test_asyncio/test_proactor_events.py�close_transports

rcsbeZdZ�fdd�ZdRdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Ze�d �d!d"��Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Ze�d/�d0d1��Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Z d<d=�Z!d>d?�Z"d@dA�Z#dBdC�Z$dDdE�Z%dFdG�Z&dHdI�Z'dJdK�Z(dLdM�Z)dNdO�Z*dPdQ�Z+�Z,S)S�ProactorSocketTransportTestscsVt���|��|_|�|jj�t��|_|j|j_	t
�tj
�|_t�tj�|_dS)N)�super�setUp�
new_test_loop�loop�
addCleanupr
r�Mock�proactor�	_proactor�
test_utils�make_test_protocol�asyncio�Protocol�protocol�socket�sock)�self)�	__class__rr
rs



z"ProactorSocketTransportTests.setUpNcCs&t|j|j|j|d�}|�t|�|S)N)�waiter)rrrrrr)rr!rrrr
�socket_transport's
z-ProactorSocketTransportTests.socket_transportcCsVtj|jd�}|j|d�}t�|j�|�|���|j�	|�|j
j�|j
d�dS)N)r)r!i�)r�Futurerr"r�run_briefly�assertIsNone�resultr�connection_mader�recv�assert_called_withr)r�fut�trrrr
�	test_ctor-sz&ProactorSocketTransportTests.test_ctorcCsH|��}|��|jjj�|jd�|�|jj	j
�|�|jjj
�dS)Ni�)r"�
_loop_readingrrr(r)r�assertFalser�
data_received�called�eof_received)rr+rrr
�test_loop_reading5s
z.ProactorSocketTransportTests.test_loop_readingcCsVtj|jd�}|�d�|��}||_|�|�|jjj�	|j
d�|jj�	d�dS)N)rsdatai�)
rr#r�
set_resultr"�	_read_futr-rr(r)rrr/)r�resr+rrr
�test_loop_reading_data<s

z3ProactorSocketTransportTests.test_loop_reading_datacCs~tj|jd�}|�d�|��}|�t|j|�t�	�|_
||_|�|�|�|jj
jj�|�|jjj�|�|j
j�dS)N)r�)rr#rr3r"�assertRaises�AssertionErrorr-rrr
r4r.rr(r0�
assertTruerr1)rr5r+rrr
�test_loop_reading_no_dataFs


z6ProactorSocketTransportTests.test_loop_reading_no_datacCs>t�}|jjj_|��}t��|_|�	�|j�
|d�dS)Nz"Fatal read error on pipe transport)�ConnectionAbortedErrorrrr(�side_effectr"rr�_fatal_errorr-r))r�errr+rrr
�test_loop_reading_abortedTs
z6ProactorSocketTransportTests.test_loop_reading_abortedcCs@t�|jjj_|��}d|_t��|_	|�
�|�|j	j�dS)NT)
r<rrr(r=r"�_closingrrr>r-r.r0)rr+rrr
�!test_loop_reading_aborted_closing^s
z>ProactorSocketTransportTests.test_loop_reading_aborted_closingcCs@t�|jjj_|��}d|_t��|_	|�
�|�|j	j�dS)NF)
r<rrr(r=r"rArrr>r-r:r0)rr+rrr
�"test_loop_reading_aborted_is_fatalgs
z?ProactorSocketTransportTests.test_loop_reading_aborted_is_fatalcCsZt�}|jjj_|��}d|_t��|_	t��|_
|��|�|j	j
�|j
�|�dS)NF)�ConnectionResetErrorrrr(r=r"rArrr>�_force_closer-r.r0r))rr?r+rrr
�!test_loop_reading_conn_reset_lostos

z>ProactorSocketTransportTests.test_loop_reading_conn_reset_lostcCs>t�}|jjj_|��}t��|_|�	�|j�
|d�dS)Nz"Fatal read error on pipe transport)�OSErrorrrr(r=r"rrr>r-r))rr?r+rrr
�test_loop_reading_exceptionzs
z8ProactorSocketTransportTests.test_loop_reading_exceptioncCs<|��}t��|_|�d�|�|jd�|jjdd�dS)Nsdata)�data)r"rr�
_loop_writing�write�assertEqual�_bufferr))rr+rrr
�
test_write�s


z'ProactorSocketTransportTests.test_writecCs"|��}|�d�|�|j�dS)Nr7)r"rKr.rM)rr+rrr
�test_write_no_data�s
z/ProactorSocketTransportTests.test_write_no_datacCsF|��}t��|_t��|_|�d�|�|jd�|�|jj	�dS)Nsdata)
r"rr�
_write_futrJrKrLrMr.r0)rr+rrr
�test_write_more�s


z,ProactorSocketTransportTests.test_write_morecCsH|��}td�|_|��|jjj�|jd�|jjjj	j
�|j�dS)Nsdata)r"�	bytearrayrMrJrr�sendr)r�return_value�add_done_callback)rr+rrr
�test_loop_writing�s
z.ProactorSocketTransportTests.test_loop_writingzasyncio.proactor_events.loggercCs�t�}|jjj_|��}t��|_ddg|_	|�
�|j�|d�d|_|�
d�|�
d�|�
d�|�
d�|�
d�|�|j	d�|j�d�dS)Nsdastaz#Fatal write error on pipe transport�sdatazsocket.send() raised exception.)rGrrrSr=r"rrr>rMrJr)�
_conn_lostrKrLZwarning)r�m_logr?r+rrr
�test_loop_writing_err�s 






z2ProactorSocketTransportTests.test_loop_writing_errcCs@tj|jd�}|�d�|��}||_|�|�|�|j�dS)N)rsdata)rr#rr3r"rPrJr%)rr*r+rrr
�test_loop_writing_stop�s

z3ProactorSocketTransportTests.test_loop_writing_stopcCsbtj|jd�}|�d�|��}||_|��|�|�|�|j�t	�
|j�|jj�
d�dS)N)rrW)rr#rr3r"rPr
rJr%rr$r�connection_lostr))rr*r+rrr
�test_loop_writing_closing�s

z6ProactorSocketTransportTests.test_loop_writing_closingcCs*|��}t��|_|��|j�d�dS)N)r"rrrE�abortr))rr+rrr
�
test_abort�s
z'ProactorSocketTransportTests.test_abortcCsz|��}|��t�|j�|jj�d�|�|�	��|�
|jd�|jj��|��t�|j�|�
|jjj�dS)NrW)r"r
rr$rrr\r)r:�
is_closingrLrX�
reset_mockr.r0)rr+rrr
�
test_close�sz'ProactorSocketTransportTests.test_closecCs:|��}t��|_|��t�|j�|�|j	j
j�dS)N)r"rrrPr
rr$rr.rr\r0)rr+rrr
�test_close_write_fut�s

z1ProactorSocketTransportTests.test_close_write_futcCs8|��}dg|_|��t�|j�|�|jjj	�dS)Nsdata)
r"rMr
rr$rr.rr\r0)rr+rrr
�test_close_buffer�s
z.ProactorSocketTransportTests.test_close_bufferzasyncio.base_events.loggercCs<|��}t��|_|�d�|�|jj�|�|jj�dS)N)r"rrrEr>r:r0�error)rZ	m_loggingr+rrr
�test_fatal_error�s


z-ProactorSocketTransportTests.test_fatal_errorcCs�|��}dg|_t��}|_t��}|_|�d�|j��|j��t	�
|j�|jj
�d�|�d|j�|�|jd�dS)NsdatarW)r"rMrrr4rPrE�cancelr)rr$rrr\rLrX)rr+Zread_futZ	write_futrrr
�test_force_close�s


z-ProactorSocketTransportTests.test_force_closecCsjt��}|j�|�tj|jd�}|�d�||jj_	|�
�}|�d�|�d�t
�|j�|��dS)N)rrWsdata)rrrZset_exception_handlerrr#r3rrSrTr"rKrErr$�assert_not_called)rZexc_handlerr*r+rrr
�test_loop_writing_force_closes



z:ProactorSocketTransportTests.test_loop_writing_force_closecCs8|��}d|_|�d�t�|j�|�|jjj	�dS)NT)
r"rArErr$rr.rr\r0)rr+rrr
�test_force_close_idempotent
s

z8ProactorSocketTransportTests.test_force_close_idempotentcCsF|��}dg|_|�d�t�|j�|jj�d�|�	d|j�dS)Nsdata)
r"rMrErr$rrr\r)rL)rr+rrr
�test_fatal_error_2s
z/ProactorSocketTransportTests.test_fatal_error_2cCs6|��}|�d�|�|jjj�|�|jjj�dS)N)r"Z_call_connection_lostr:rr\r0rr
)rr+rrr
�test_call_connection_losts
z6ProactorSocketTransportTests.test_call_connection_lostcCsT|��}|�|���|��|jj�tj�|��|�	|jjj
d�|��dS)NrW)r"r:�
can_write_eof�	write_eofr�shutdownr)r�SHUT_WRrLZ
call_countr
)rr+rrr
�test_write_eof#sz+ProactorSocketTransportTests.test_write_eofcCs�|��}tj|jd�}||jjj_|�d�|�	�|�
|j�|�|j
jj�|jjj�|j
d�|�d�|j��|j
j�tj�|��dS)N)rsdata�)r"rr#r�_looprrSrTrKror:Z_eof_writtenr.rrpr0r)r3�	_run_oncerrqr
)rr+�frrr
�test_write_eof_buffer,s


z2ProactorSocketTransportTests.test_write_eof_buffercCs\t|j|j|j�}|�|���|��|�|���|j��|�|jj	j
�|�	�dS)N)rrrrr:rnror`rur
r0)rr+rrr
�test_write_eof_write_pipe:s
z6ProactorSocketTransportTests.test_write_eof_write_pipecCs�t|j|j|j�}tj|jd�}||jjj_	|�
d�|��|�|�
��|�|jjj�|jjj�|jd�|�d�|j��|j��|�|jjj�|��dS)N)rsdatars)rrrrrr#rtrrSrTrKror:r`r.rpr0r)r3rur
)rr+rvrrr
� test_write_eof_buffer_write_pipeDs



z=ProactorSocketTransportTests.test_write_eof_buffer_write_pipec	CsJt|j|j|j�}|�|���|�t��|��WdQRXt	|�dS)N)
rrrrr.rnr8�NotImplementedErrorror)rr+rrr
�test_write_eof_duplex_pipeSsz7ProactorSocketTransportTests.test_write_eof_duplex_pipecCs�|��}g}x.dD]&}tj|jd�}|�|�|�|�qW||jjj_|j�	�|�
|j�|�|�
��|j�	�|jj�d�|j�	�|jj�d�|��|��|�|j�|�
|�
��xtd�D]}|j�	�q�W|jj�d�|��|��|�
|j�|�|�
��|j�	�|jj�d�|j�	�|jj�d�|��|��t��|j_|j�	�|jj��|jj�d�|��|�
|�
��dS)	N)sdata1sdata2sdata3sdata4sdata5r7)rsdata1sdata2�
sdata3sdata4sdata5)r"rr#rr3�appendrr(r=rur.�_pausedr:�
is_readingrr/r)�
pause_reading�range�resume_readingrr�call_exception_handlerrir
)rr+�futures�msgrv�irrr
�test_pause_resume_reading[sJ







z6ProactorSocketTransportTests.test_pause_resume_readingcCsH|��}|j|d�|�|��d�|�|jjj�|�|jjj�|S)N)�highr)	r"Zset_write_buffer_limitsrL�get_write_buffer_sizer.r�
pause_writingr0�resume_writing)rr�r+rrr
�pause_writing_transport�sz4ProactorSocketTransportTests.pause_writing_transportcCs�|jdd�}tj|jd�}||jjj_|�d�|j��|�	|j
jj�|�
d�|j��|�|��d�|�	|j
jj�dS)Nrs)r�)rs
large datar)r�rr#rrrSrTrKrur:rr�r0r3rLr�r�)rr+r*rrr
�test_pause_resume_writing�s



z6ProactorSocketTransportTests.test_pause_resume_writingcCs�|jdd�}tj|jd�}||jjj_|�d�|j��|�	|�
�d�|�|jj
j�|�d�|j��|�	|�
�d�|�|jj
j�dS)Nrs)r�)rs123�sabc�)r�rr#rrrSrTrKrurLr�r.rr�r0r:)rr+Zfut1rrr
�test_pause_writing_2write�s



z6ProactorSocketTransportTests.test_pause_writing_2writecCs�|jdd�}tj|jd�}||jjj_|�d�|j��|�	|�
�d�|�|jj
j�|�d�|j��|�	|�
�d�|�|jj
j�|�d�|j��|�	|�
�d	�|�|jj
j�dS)
Nrs)r�)r�1rWs23r�sabcr�)r�rr#rrrSrTrKrurLr�r.rr�r0r:)rr+r*rrr
�test_pause_writing_3write�s





z6ProactorSocketTransportTests.test_pause_writing_3writecCsh|jdd�}tj|jd�}|�d�||jjj_|�d�|j�	�|�
|��d�|�|j
jj�dS)Nrs)r�)rsvery large datar)r�rr#rr3rrSrTrKrurLr�r.rr�r0)rr+r*rrr
�test_dont_pause_writing�s


z4ProactorSocketTransportTests.test_dont_pause_writing)N)-�__name__�
__module__�__qualname__rr"r,r2r6r;r@rBrCrFrHrNrOrQrVr�patchrZr[r]r_rbrcrdrfrhrjrkrlrmrrrwrxryr{r�r�r�r�r�r��
__classcell__rr)r r
rsN	


	
	

		
-	rzeFIXME: bpo-33694: these tests are too close to the implementation and should be refactored or removedcs�eZdZ�fdd�Zd'dd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	e
�d�dd��Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Z�ZS)(�)ProactorSocketTransportBufferedProtoTestscsrt�������_���jj�t���_�j�j_	t
�tj
��_td��_�fdd��jj_t�tj��_dS)NrWcs�jS)N)�buf)�hint)rrr
�<lambda>�r7zAProactorSocketTransportBufferedProtoTests.setUp.<locals>.<lambda>)rrrrrr
rrrrrrr�BufferedProtocolrrRr��
get_bufferr=rr)r)r )rr
r�s




z/ProactorSocketTransportBufferedProtoTests.setUpNcCs&t|j|j|j|d�}|�t|�|S)N)r!)rrrrrr)rr!rrrr
r"�s
z:ProactorSocketTransportBufferedProtoTests.socket_transportcCsXtj|jd�}|j|d�}t�|j�|�|���|j�	|�|j
j�|j
|j�dS)N)r)r!)rr#rr"rr$r%r&rr'r�	recv_intor)rr�)rr*r+rrr
r,�sz3ProactorSocketTransportBufferedProtoTests.test_ctorcCsZ|��}|��|jjj�|j|j�|�|j	j
j�|�|j	j
j�|�|j	jj�dS)N)r"r-rrr�r)rr�r:rr�r0r.�buffer_updatedr1)rr+rrr
r2�sz;ProactorSocketTransportBufferedProtoTests.test_loop_readingcCsd|��}t��|_t��|j_t�|jj_	|�
�|�|jj�|�|jjj�|�
|jjj�dS)N)r"rrr>rr��LookupErrorrr�r=r-r:r0r.r�)rrrrr
�test_get_buffer_error�s
z?ProactorSocketTransportBufferedProtoTests.test_get_buffer_errorcCsf|��}t��|_t��|j_dd�|jj_|�	�|�
|jj�|�
|jjj�|�|jj
j�dS)NcSstd�S)Nr)rR)r�rrr
r�r7zUProactorSocketTransportBufferedProtoTests.test_get_buffer_zerosized.<locals>.<lambda>)r"rrr>rr�rr�r=r-r:r0r.r�)rrrrr
�test_get_buffer_zerosizeds
zCProactorSocketTransportBufferedProtoTests.test_get_buffer_zerosizedcs�t�tj�|_|��}tj|jd�}|�d�|��}||_	|�
|�|jjj�
|jd�|jj�
d�t�tj�}td���fdd�|j_|�|�t�|j�tj|jd�}|�d�||_	|�
|�|jjj�
|j��|j�
d�dS)N)rsdatai�rscs�S)Nr)r�)r�rr
r�)r7zRProactorSocketTransportBufferedProtoTests.test_proto_type_switch.<locals>.<lambda>)rrrrrr"r#rr3r4r-rr(r)rr/r�rRr�r=�set_protocolr$r�r�)rr+r5�	buf_protor)r�r
�test_proto_type_switchs(




z@ProactorSocketTransportBufferedProtoTests.test_proto_type_switchzbFIXME: bpo-33694: this test is too close to the implementation and should be refactored or removedcs�|��}t�|j�|jj�d�t�tj	�}t
d���fdd�|j_dd�|jj
_|�|�|�|jj�t�|j�|j�d�dS)N���rscs�S)Nr)r�)r�rr
r�@r7zQProactorSocketTransportBufferedProtoTests.test_proto_buf_switch.<locals>.<lambda>cSsdS)NFrrrrr
r�Ar7)r"rr$rrr�r)rrr�rRr=r4Zdoner�r.r0)rr+r�r)r�r
�test_proto_buf_switch5s
z?ProactorSocketTransportBufferedProtoTests.test_proto_buf_switchcCs�|��}t��|_t��|j_t�|jj_	t
j|jd�}|�d�||_
|�|�|�|jj�|�|jjj�|�|jjj�dS)N)rr|)r"rrr>rr�r�rr�r=rr#r3r4r-r:r0r.r�)rrr5rrr
�test_buffer_updated_errorGs


zCProactorSocketTransportBufferedProtoTests.test_buffer_updated_errorcCs�tj|jd�}|�d�t�|jj_|��}t	�
�|_t	�
�|_||_
|�|�|�|jjjj�|�|jjj�|�|jj�dS)N)rr)rr#rr3r�rr1r=r"rrr>r
r4r-r.rr�r0r:)rr5r+rrr
�test_loop_eof_received_errorWs



zFProactorSocketTransportBufferedProtoTests.test_loop_eof_received_errorcCsXtj|jd�}|�d�|��}||_|�|�|jjj�	|j
|j�|jj
�	d�dS)N)rrs)rr#rr3r"r4r-rr�r)rr�rr�)rr5r+rrr
r6gs

z@ProactorSocketTransportBufferedProtoTests.test_loop_reading_datacCs~tj|jd�}|�d�|��}|�t|j|�t�	�|_
||_|�|�|�|jj
jj�|�|jjj�|�|j
j�dS)N)rr)rr#rr3r"r8r9r-rrr
r4r.rr�r0r:rr1)rr5r+rrr
r;qs


zCProactorSocketTransportBufferedProtoTests.test_loop_reading_no_datacCs>t�}|jjj_|��}t��|_|�	�|j�
|d�dS)Nz"Fatal read error on pipe transport)r<rrr�r=r"rrr>r-r))rr?r+rrr
r@s
zCProactorSocketTransportBufferedProtoTests.test_loop_reading_abortedcCs@t�|jjj_|��}d|_t��|_	|�
�|�|j	j�dS)NT)
r<rrr(r=r"rArrr>r-r.r0)rr+rrr
rB�s
zKProactorSocketTransportBufferedProtoTests.test_loop_reading_aborted_closingcCs@t�|jjj_|��}d|_t��|_	|�
�|�|j	j�dS)NF)
r<rrr�r=r"rArrr>r-r:r0)rr+rrr
rC�s
zLProactorSocketTransportBufferedProtoTests.test_loop_reading_aborted_is_fatalcCsZt�}|jjj_|��}d|_t��|_	t��|_
|��|�|j	j
�|j
�|�dS)NF)rDrrr�r=r"rArrr>rEr-r.r0r))rr?r+rrr
rF�s

zKProactorSocketTransportBufferedProtoTests.test_loop_reading_conn_reset_lostcCs>t�}|jjj_|��}t��|_|�	�|j�
|d�dS)Nz"Fatal read error on pipe transport)rGrrr�r=r"rrr>r-r))rr?r+rrr
rH�s
zEProactorSocketTransportBufferedProtoTests.test_loop_reading_exceptioncCsd|��}g}x.dD]&}tj|jd�}|�|�|�|�qW||jjj_|j�	�|�
|j�|�|�
��|j�	�|jj�d�|j�	�|jj�d�|��|��|�|j�|�
|�
��xtd�D]}|j�	�q�W|jj�d�|��|��|�
|j�|�|�
��|j�	�|jj�d�|j�	�|jj�d�|��|�
|�
��dS)N)r|���(r)rr|r�r�r�)r"rr#rr3r}rr�r=rur.r~r:rrr�r)r�r�r�r
)rr+r�r�rvr�rrr
r��s>






zCProactorSocketTransportBufferedProtoTests.test_pause_resume_reading)N)r�r�r�rr"r,r2r�r�r��unittest�skipr�r�r�r6r;r@rBrCrFrHr�r�rr)r r
r��s$




		r�cs�eZdZ�fdd�Zej�ed�e�d�dd���Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Ze�d�dd��Zdd�Zdd�Z�ZS)�BaseProactorEventLoopTestsc	srt���t��|_t��|_t��t��|_|_	tj
d|j|j	fd��t|j�|_WdQRX|�
|j�dS)Nz)asyncio.proactor_events.socket.socketpair)rT)rrrZmock_nonblocking_socketrrrr�ssock�csockr�rr�set_event_loop)r)r rr
r�s


z BaseProactorEventLoopTests.setUp�	call_soonz)asyncio.proactor_events.socket.socketpaircCsft��t��f\}}|_t|j�}|�|j|�|�|j|�|�|j	d�|�
|j�|��dS)NrW)
rrrTrrZassertIs�_ssock�_csockrL�
_internal_fdsr)�_loop_self_readingr
)rZ
socketpairr�r�r�rrrr
r,�s
z$BaseProactorEventLoopTests.test_ctorcCsb|j��|�|jjd�|�|jjj�|�|jjj�|�	|jj
�|�	|jj�d|j_dS)NrT)
r�_close_self_piperLr�r:r�r
r0r�r%r�r�Z_closed)rrrr
�test_close_self_pipe�s
z/BaseProactorEventLoopTests.test_close_self_pipecCsnt��|j_|j��|�|jjj�|�|jjj�|�|jj	�|jj�
�|j��|�|jjj�dS)N)rrrr�r
r:r0rr%rrar.)rrrr
rb�s

z%BaseProactorEventLoopTests.test_closecCs,|j�|jt���}|�|t�t|�dS)N)r�_make_socket_transportrrrZassertIsInstancerr)rr+rrr
�test_make_socket_transportsz5BaseProactorEventLoopTests.test_make_socket_transportcCs6|j��|jj�|jd�|jjjj�|jj�dS)Ni)rr�rr(r)r�rTrU)rrrr
�test_loop_self_reading
s
z1BaseProactorEventLoopTests.test_loop_self_readingcCsNt��}|j�|�|�|jj�|jj�	|j
d�|jjjj�	|jj�dS)Ni)
rrrr�r:r&r0rr(r)r�rTrU)rr*rrr
�test_loop_self_reading_futsz5BaseProactorEventLoopTests.test_loop_self_reading_futcCs6t��|j_t�|jj_|j��|�	|jjj
�dS)N)rrrr�rGrr(r=r�r:r0)rrrr
� test_loop_self_reading_exceptions
z;BaseProactorEventLoopTests.test_loop_self_reading_exceptioncCs|j��|jj�d�dS)N�)rZ_write_to_selfr�rSr))rrrr
�test_write_to_selfs
z-BaseProactorEventLoopTests.test_write_to_selfcCs|j�g�dS)N)rZ_process_events)rrrr
�test_process_events"sz.BaseProactorEventLoopTests.test_process_eventszasyncio.base_events.loggercCs�t��}t��}|j_|j�||j�|�|j�|jdd}|�|j	j
�|j�t��}t��t��f|j_
t��}|j_||�|�|jj�|�|j�t�|j_||�|�|jjj�|�|jj�dS)Nr)rrrr��_start_servingrr:r0�	call_argsrZacceptr)r&rTr�rGr=r
re)rrY�pfr�rr*Zmake_trrrr
�test_create_server%s"
z-BaseProactorEventLoopTests.test_create_servercCsht��}t��}|j_|j�||j�|jdd}tj|jd�}|�	�||�|�
|jjj�dS)Nr)r)
rrrr�r�rr�rr#rgr:r
r0)rr�r�rr*rrr
�test_create_server_cancelAsz4BaseProactorEventLoopTests.test_create_server_cancelcCs�t��}t��}t��}t��}|��||��|i|j_|j�|�|�|jj�|�|j	j�|j
j�|�|�|jj�|�|j	j�dS)N)
rr�filenorZ_accept_futuresZ
_stop_servingr:r
r0rgrr)r.)rZsock1Zfuture1Zsock2Zfuture2rrr
�test_stop_servingNsz,BaseProactorEventLoopTests.test_stop_serving)r�r�r�rrr��objectrr,r�rbr�r�r�r�r�r�r�r�r�r�rr)r r
r��s

r��win32z%Proactor is supported on Windows onlycs�eZdZddZGdd�dej�Ze�fdd��Ze�fdd��Z	�fd	d
�Z
ddd
�Zdd�Zdd�Z
dd�Zdd�Zdd�Z�ZS)�&ProactorEventLoopUnixSockSendfileTestss�12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcdeic@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)z.ProactorEventLoopUnixSockSendfileTests.MyProtocCs(d|_d|_t�|_|��|_d|_dS)NF)�started�closedrRrIZ
create_futurer*r)rrrrr
�__init__gs

z7ProactorEventLoopUnixSockSendfileTests.MyProto.__init__cCsd|_||_dS)NT)r�r)rrrrr
r'nsz>ProactorEventLoopUnixSockSendfileTests.MyProto.connection_madecCs|j�|�dS)N)rI�extend)rrIrrr
r/rsz<ProactorEventLoopUnixSockSendfileTests.MyProto.data_receivedcCsd|_|j�d�dS)NT)r�r*r3)r�excrrr
r\usz>ProactorEventLoopUnixSockSendfileTests.MyProto.connection_lostc�s|jIdHdS)N)r*)rrrr
�wait_closedysz:ProactorEventLoopUnixSockSendfileTests.MyProto.wait_closedN)r�r�r�r�r'r/r\r�rrrr
�MyProtoes
r�c	s2ttjd��}|�|j�WdQRXt���dS)N�wb)�openr�TESTFNrK�DATAr�
setUpClass)�cls�fp)r rr
r�|sz1ProactorEventLoopUnixSockSendfileTests.setUpClasscst�tj�t���dS)N)r�unlinkr�r�
tearDownClass)r�)r rr
r��sz4ProactorEventLoopUnixSockSendfileTests.tearDownClasscsNt��|_|�|j�|�|jj�ttjd�|_	|�|j	j�t
���dS)N�rb)rZProactorEventLooprr�rr
r�rr��filerr)r)r rr
r�s
z,ProactorEventLoopUnixSockSendfileTests.setUpTcCsRt�tjtj�}|�d�|�tjtjd�|�tjtjd�|rN|�|j	�|S)NFi)
rZAF_INETZSOCK_STREAMZsetblockingZ
setsockoptZ
SOL_SOCKETZ	SO_SNDBUFZ	SO_RCVBUFrr
)r�cleanuprrrr
�make_socket�s
z2ProactorEventLoopUnixSockSendfileTests.make_socketcCs|j�|�S)N)rZrun_until_complete)r�cororrr
�run_loop�sz/ProactorEventLoopUnixSockSendfileTests.run_loopcs����}���j��t��}�jdd�}|�d|f����jj�fdd�|d������j�||�	������fdd�}��
|�|�fS)	NF)r�z	127.0.0.1cs�S)Nrr)�protorr
r��r7z@ProactorEventLoopUnixSockSendfileTests.prepare.<locals>.<lambda>)rcs<�jdk	r"�j�����������������dS)N)rr
r�r�r)r�r�serverrr
r��s


z?ProactorEventLoopUnixSockSendfileTests.prepare.<locals>.cleanup)r�r�rrZfind_unused_portZbindr�Z
create_serverZsock_connectZgetsocknamer)rrZportZsrv_sockr�r)r�rr�r
�prepare�s


z.ProactorEventLoopUnixSockSendfileTests.preparec	CsZ|��\}}t�}|�tjd��|�|j�||dd��WdQRX|�|j	�
�d�dS)Nznot a regular filer)r�r��assertRaisesRegexr�SendfileNotAvailableErrorr�r�_sock_sendfile_nativerLr��tell)rrr�rvrrr
�test_sock_sendfile_not_a_file�szDProactorEventLoopUnixSockSendfileTests.test_sock_sendfile_not_a_filec	Cs\|��\}}t��}|�tjd��|�|j�||dd��WdQRX|�	|j
��d�dS)Nznot a regular filer)r��io�BytesIOr�rr�r�rr�rLr�r�)rrr�rvrrr
�test_sock_sendfile_iobuffer�szBProactorEventLoopUnixSockSendfileTests.test_sock_sendfile_iobufferc	Csd|��\}}t��}d|j_|�tjd��|�|j	�
||dd��WdQRX|�|j�
�d�dS)Nr�znot a regular filer)r�rrr�rTr�rr�r�rr�rLr�r�)rrr�rvrrr
�#test_sock_sendfile_not_regular_file�szJProactorEventLoopUnixSockSendfileTests.test_sock_sendfile_not_regular_file)T)r�r�r�r�rrr��classmethodr�r�rr�r�r�r�r�r�r�rr)r r
r�`s
			r��__main__)�__doc__r�rr��sysrrrZasyncio.proactor_eventsrrrrZtestrZtest.test_asyncior	rrZTestCaserr�r�r�ZskipIf�platformr�r��mainrrrr
�<module>s8	>
|

n