python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
_test_eintr.cpython-311.opt-2.pyc

eGz	ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZddlmZdZejdZejeeddGd	d
ejZejeeddGddeZejeeddGd
deZejeeddGddeZejeeddejeeddGddeZejeeddGddeZGddeZedkrejdSdS)N)support)	os_helper)
socket_helperg{Gz?c#K	|5	|Vn#|xYw	ddddS#1swxYwYdSN)kill)procs D/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/_test_eintr.py
kill_on_errorr"sQ	
	JJJJ	IIKKK
s5
5$599	setitimerzrequires setitimer()cPeZdZ	dZdZdZdZdZedZ	dZ
dZdZd	S)

EINTRBaseTestg?g?c&|xjdz
c_dSN)signals)selfsignumframes   r

sighandlerzEINTRBaseTest.sighandler9scd|_tjtj|j|_tjtj|j|jtj
ddtjdS)NriXT)exitfile)
rsignalSIGALRMrorig_handlerrITIMER_REALsignal_delay
signal_periodfaulthandlerdump_traceback_latersys
__stderr__rs r
setUpzEINTRBaseTest.setUp<su"M&.$/JJ+T->+	-	-	-
	)'/2~	?	?	?	?	?	?rcFtjtjdddSNr)rrrrr

stop_alarmzEINTRBaseTest.stop_alarmGs +Q22222rc|tjtj|jt	jdSr)r*rrrr!cancel_dump_traceback_laterr%s r
tearDownzEINTRBaseTest.tearDownKs>
fnd&7888022222rcHtjdf|z}tj|fi|S)Nz-c)r#
executable
subprocessPopen)rargskwcmd_argss    r
r0zEINTRBaseTest.subprocessPs,ND)D0//B///rcL|||jtz
dSr)assertGreaterEqual
sleep_time	CLOCK_RES)relapseds  r
check_elapsed_timez EINTRBaseTest.check_elapsed_timeTs%9)DEEEEErN)
__name__
__module____qualname__rr r7rr&staticmethodr*r-r0r:r)rr
rr-s'LMJ	?	?	?33\3333
000FFFFFrrceZdZ	dZdZdZejee	dddZ
dZdZejee	d	d
dZ
dZd
ZdS)OSEINTRTestc@d|jz}||S)Nzimport time; time.sleep(%r))r7r0)rcodes  r
new_sleep_processzOSEINTRTest.new_sleep_process\s ,t>t$$$rcd}fdt|D}t|D]}|
|D]}|dS)Nc8g|]}Sr))rC).0_rs  r

<listcomp>z3OSEINTRTest._test_wait_multiple.<locals>.<listcomp>bs%BBB!T++--BBBr)rangewait)r	wait_funcnum	processesrHr	s`     r
_test_wait_multiplezOSEINTRTest._test_wait_multiple`sqBBBBuSzzBBB	s		AIKKKK		DIIKKKK		rcD|tjdSr)rOosrKr%s r
	test_waitzOSEINTRTest.test_waitis  )))))rwait3zrequires wait3()c2|ddS)Nc*tjdSr()rQrSr)rr
<lambda>z(OSEINTRTest.test_wait3.<locals>.<lambda>ns!r)rOr%s r

test_wait3zOSEINTRTest.test_wait3ls   !4!455555rcv|}||j|dSr)rCpidrK)rrLr	s   r
_test_wait_singlezOSEINTRTest._test_wait_singleps6%%''	$(		rc2|ddS)Nc,tj|dSr()rQwaitpidrYs r
rVz*OSEINTRTest.test_waitpid.<locals>.<lambda>ws2:c1+=+=rrZr%s r
test_waitpidzOSEINTRTest.test_waitpidvs ==>>>>>rwait4zrequires wait4()c2|ddS)Nc,tj|dSr()rQrar^s r
rVz(OSEINTRTest.test_wait4.<locals>.<lambda>{s28C+;+;rr_r%s r

test_wait4zOSEINTRTest.test_wait4ys ;;<<<<<rcXtj\}}|tj|gd}ddddd|zd|jzddd	d
df
}||t||g}t|5tj||D]8}|	|tj
|t|9|	|d
ddddS#1swxYwYdS)N)shellosworldsspam
zimport os, sys, timezwr = int(sys.argv[1])
datas = %rsleep_time = %rzfor data in datas:z$    # let the parent block on read()    time.sleep(sleep_time)z    os.write(wr, data)pass_fdsr)
rQpipe
addCleanupclosejoinr7r0strrassertEqualreadlenrK)rrdwrdatasrBr	datas       r
	test_readzOSEINTRTest.test_read}snB"%%%
.--yy"#5 / 2($
tSWWt<<
4
 
 	-	-HRLLL
?
?  rwr3t99'='=>>>>TYY[[!,,,		-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-sA8DD#&D#ctj\}}|tj|dtjz}ddddd|jzdtjzddd	d
dddd
ddddddf}||t||g}t|5tj|d}|t|kr@|tj|t||dz
}|t|k@||dddddS#1swxYwYdS)Nxrfzimport io, os, sys, timergzrd = int(sys.argv[1])rizdata = b"x" * %sdata_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_SIZErpr7r0rqrrtwrite
memoryviewrrrK)rrurvrxrBr	writtens       r

test_writezOSEINTRTest.test_writesB"%%%g++yy&#/!66"/$&93(*>;'
,tSWWt<<
4
 
 	-	-HRLLLGCII%%28B
4(8(8(BCCCCII%%TYY[[!,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s8BEEEN)r;r<r=rCrOrRunittest
skipUnlesshasattrrQrWrZr`rdryrr)rr
r@r@Xs*%%%***XW--/ABB66CB6???XW--/ABB==CB=---:$-$-$-$-$-rr@c(eZdZ	ejeedddZdZejeejdddZ	dZ
d	Zd
Zejeejddd
Z
dZejddejeedddZdZejejdkddZdZejejdkddZdS)SocketEINTRTest
socketpairzneeds socketpair()ctj\}}||jgd}dddddt|jzdt|jzd|zd	|jzdd
dddd
dddf}|	}|
|t||g}t|5||D]/}|
|||t|0|
|dddddS#1swxYwYdS)N)r{yzrfimport os, socket, sys, timergfd = int(sys.argv[1])family = %ssock_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)socketrrnrorpintfamilytyper7filenor0rqrrrrtrK)	r	recv_funcrurvrwrBfdr	rxs	         r

_test_recvzSocketEINTRTest._test_recvs"$$B!!!#""yy*#C	NN*s27||+5 /7$6,&!
&YY[[tSWWt<<
4
 
 	-	-HHJJJ
A
A  yySYY'?'?@@@@TYY[[!,,,		-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-sA/EEEcN|tjjdSr)rrrecvr%s r
	test_recvzSocketEINTRTest.test_recv
*+++++rrecvmsgzneeds recvmsg()c2|ddS)Nc8||dSr()rsockrxs  r
rVz.SocketEINTRTest.test_recvmsg.<locals>.<lambda>s4<<+=+=a+@r)rr%s r
test_recvmsgzSocketEINTRTest.test_recvmsgs@@AAAAArcbtj\}}||jdtjdzz}dddddt|jzdt|j	zd	|j
zd
tjdzzdddd
dddddddddddddf}|}||t||g}t|5|d}|t|krJ||t!||d}	||	t|n|	z
}|t|kJ||dddddS#1swxYwYdS)NsxyzrErfrrgrrrrizdata = b"xyz" * %sr|z)rd = socket.fromfd(fd, family, sock_type)rzwith 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)rrrnror
SOCK_MAX_SIZErprrrr7rr0rqrrtrrrrK)
r	send_funcrurvrxrBrr	rsents
          r

_test_sendzSocketEINTRTest._test_sends"$$B!!!.!34yy*#C	NN*s27||+/ G$9Q$>?"72(5%F'>C1
6YY[[tSWWt<<
4
 
 	-	-HHJJJGCII%% yZ%5%5ghh%?@@3t999$>CII%%
TYY[[!,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s;BF$$F(+F(cN|tjjdSr)rrsendr%s r
	test_sendzSocketEINTRTest.test_sendrrcN|tjjdSr)rrsendallr%s r
test_sendallzSocketEINTRTest.test_sendall!s
-.....rsendmsgzneeds sendmsg()c2|ddS)Nc.||gSr)rrs  r
rVz.SocketEINTRTest.test_sendmsg.<locals>.<lambda>&s4<<+?+?r)rr%s r
test_sendmsgzSocketEINTRTest.test_sendmsg$s??@@@@@rc<tjtjdf}||j|d}ddddtjzd|zd|jzdd	d
ddf
}|	|}t|5|\}}|||
dddddS#1swxYwYdS)
Nrrrfzimport socket, timergz	host = %rz	port = %sriz# let parent block on accept()r}z,with socket.create_connection((host, port)):rj)r
create_serverrHOSTrnrogetsocknamerpr7r0racceptrrrK)rrportrBr	client_sockrHs       r
test_acceptzSocketEINTRTest.test_accept(sT#]%7$;<<
###!!!$yy!-,,$/,$:(
t$$
4
 
 	-	-![[]]NKTYY[[!,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s0ADDD
rEmkfifozneeds mkfifo()cBtj}tj|	tj|n/#t
$r"}|d|zYd}~nd}~wwxYw|tj|dddd|zd|j	zdddd|f	}|
|}t|5||||
d	ddddS#1swxYwYdS)
Nzos.mkfifo(): %srfimport os, timergz	path = %ariz# let the parent blockr}r)rTESTFNunlinkrQrPermissionErrorskipTestrnrpr7r0rrrrK)rdo_open_close_readerdo_open_close_writerfilenameerBr	s       r

_test_openzSocketEINTRTest._test_openDs#	"""	1Ih	1	1	1MM+a/00000000	1	((333yy("/$$ 



t$$
4
 
 	-	-  ***TYY[[!,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s'7
A#AA#4DDDcNt|d}|dS)Nw)openro)rpathfps   r
python_openzSocketEINTRTest.python_opencs 
$__





rdarwinz+hangs under macOS; see bpo-25234, bpo-35363c<|d|jdS)Nzfp = open(path, 'r')
fp.close())rrr%s r
	test_openzSocketEINTRTest.test_opengs-	
:(	*	*	*	*	*rcltj|tj}tj|dSr)rQrO_WRONLYro)rrrs   r
os_openzSocketEINTRTest.os_openms&
WT2;
'
'
rc<|d|jdS)Nz,fd = os.open(path, os.O_RDONLY)
os.close(fd))rrr%s r
test_os_openzSocketEINTRTest.test_os_openqs,	
G	&	&	&	&	&rN)r;r<r=rrrrrrrrrrrrrrequires_freebsd_versionrQrrskipIfr#platformrrrr)rr
rrs.X668LMM!-!-NM!-F,,,X	::<MNNBBONB,-,-,-\,,,///X	::<MNNAAONA---8&W%b!,,XX..0@AA--BA-,-:X_S\X-BDD**DD*X_S\X-BDD&&DD&&&rrceZdZ	dZdS)
TimeEINTRTestctj}tj|j|tj|z
}||dSr)time	monotonicsleepr7r*r:rt0dts   r

test_sleepzTimeEINTRTest.test_sleep|s]
^


4?###
^


"#####rN)r;r<r=rr)rr
rrxs&,$$$$$rrpthread_sigmaskzneed signal.pthread_sigmask()ceZdZ	dZejeedddZejeedddZ	dS)SignalEINTRTestctj}tj}tj|d}|tj||dddtjzdt
|zd|jzddf}tjtj	|g}|tjtj
|gtj}|
|}t|5||tj|z
}	dddn#1swxYwY||d	dS)
NcdSrr))r2s r
rVz/SignalEINTRTest.check_sigwait.<locals>.<lambda>s$rrfrzpid = %szsignum = %srir}zos.kill(pid, signum)r)rSIGUSR1rQgetpidrnrprr7r	SIG_BLOCKSIG_UNBLOCKrrr0rrrrK)
rrLrrYold_handlerrBold_maskrr	rs
          r

check_sigwaitzSignalEINTRTest.check_sigwaitsikkmF,>,>??
v{;;;yy$CKK'/$"

)&*:VHEE.0BVHMMM
^

t$$
4
 
 	'	'If!!B&B	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	
a(((((s!"EEEsigwaitinfozneed signal.sigwaitinfo()c6d}||dS)Nc0tj|gdSr)rrrs r
rLz3SignalEINTRTest.test_sigwaitinfo.<locals>.wait_funcsx(((((rrrrLs  r
test_sigwaitinfoz SignalEINTRTest.test_sigwaitinfos-	)	)	)	
9%%%%%rsigtimedwaitc6d}||dS)Nc2tj|gddS)Ng^@)rrrs r
rLz4SignalEINTRTest.test_sigtimedwait.<locals>.wait_funcs%00000rrrs  r
test_sigtimedwaitz!SignalEINTRTest.test_sigtimedwaits-	1	1	1	
9%%%%%rN)
r;r<r=rrrrrrrr)rr
rrs/)))6X77466&&66&X88466&&66&&&rrcveZdZ	dZejejdkdeje	e
dddZeje	e
ddd	Zeje	e
d
ddZ
eje	e
d
ddZdS)SelectEINTRTestctj}tjggg|jtj|z
}|||dSr)rrselectr7r*r:rs   r
test_selectzSelectEINTRTest.test_selectsc
^


b"b$/222
^


"#####rrz(poll may fail on macOS; see issue #28087pollzneed select.pollc
tj}tj}||jdztj|z
}|||dSNg@@)rrrrr7r*r:rpollerrrs    r
	test_pollzSelectEINTRTest.test_pollsq
^

DOc)***
^


"#####repollzneed select.epollc8tj}||jt	j}||jt	j|z
}||	|dSr)
rrrnrorrrr7r*r:rs    r

test_epollzSelectEINTRTest.test_epolls~%%%
^

DO$$$
^


"#####rkqueuezneed select.kqueuec<tj}||jt	j}|dd|jt	j|z
}||	|dSr)
rrrnrorrcontrolr7r*r:)rrrrs    r
test_kqueuezSelectEINTRTest.test_kqueues%%%
^

tQ000
^


"#####rdevpollzneed select.devpollc>tj}||jt	j}||jdzt	j|z
}||	|dSr)
rrrnrorrrr7r*r:rs    r
test_devpollzSelectEINTRTest.test_devpolls!!%%%
^

DOc)***
^


"#####rN)r;r<r=rrrr#rrrrrrr
r
r)rr
rrs5.$$$X_S\X-?AAX002DEE$$FEAA$X113FGG$$HG$X224HII$$JI$X335JKK$$LK$$$rrcpeZdZdZejejdkddZdZ	dS)
FNTLEINTRTestc|tjtjdddtjzd|zd|jzf}t
j}||}t|5ttjd5}	t
j|z
}|dkrtd	|z	||tj
tjz||tjt
jd
n#t"$rYnwxYw||tj
t
j|z
}|||dddn#1swxYwY|ddddS#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{Gz?)rnrrrrpr7rrr0rr	ExceptionfcntlLOCK_EXLOCK_NBLOCK_UNrBlockingIOErrorr*r:rK)r	lock_func	lock_namerB
start_timer	frs        r
_lockzFNTLEINTRTest._locksF	()*:;;;yy )I,<<+i7$/1	344
^%%
t$$
4
 
 		i&--
,	))J6BDyy'(JR(OPPP!	!U]U]%BCCC!	!U]333
4((((*		!U]+++^%%
2!!!''+++#
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,$
IIKKK'																		s\G.0FA
D-,F-
D:7F9D::AFGF#	#G&F#	'GGGAIXzAIX returns PermissionErrorcF|tjddS)Nlockf)rrrr%s r

test_lockfzFNTLEINTRTest.test_lockfs

5;(((((rcF|tjddS)Nflock)rrr"r%s r

test_flockzFNTLEINTRTest.test_flocks

5;(((((rN)
r;r<r=rrrrsystemr r#r)rr
rrsn@X__X_&&%/1NOO))PO))))))rr__main__) 
contextlibr!rrQrrrrr0r#rrtestrtest.supportrrr8contextmanagerrrrTestCaserr@rrrrrr;mainr)rr
<module>r,sv				















""""""&&&&&&

	WWV[113IJJ'F'F'F'F'FH%'F'FKJ'FTWWV[113IJJe-e-e-e-e--e-e-KJe-PWWV[113IJJs&s&s&s&s&ms&s&KJs&lWWV[113IJJ$$$$$M$$KJ$WWV[113IJJWWV%677466,&,&,&,&,&m,&,&66KJ
,&^WWV[113IJJ5$5$5$5$5$m5$5$KJ5$p&)&)&)&)&)M&)&)&)RzHMOOOOOr