python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_socketserver.cpython-312.opt-1.pyc

ΑeFdZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Zddl
mZm
Z
ddl
mZddl
mZddl
mZej"j%dej"j'd	d
Zej*ZeedZej0edZej"j4Zej0ed
ZdZejZej"j>fdZ ej"jCejDdZ#GddejHZ%GddejHZ&Gdde	jNZ(Gdde	jRZ*Gdde	jVe(Z,erGdde	jZe(Z.GddejHZ/Gdd ejHZ0e1d!k(rejdyy)"z
Test suite for socketserver.
N)
reap_childrenverbose)	os_helper)
socket_helper)threading_helpernetworkT)moduleshello world
AF_UNIXzrequires Unix socketszrequires forkingcPttdrtj|yy)z7Call signal.alarm when it exists (i.e. not on Windows).alarmN)hasattrsignalr)ns J/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_socketserver.pysignal_alarmr#svwQ cnt|ggg|\}}}||vr|j|Std|)Nz
timed out on )_real_selectrecvRuntimeError)sockrtimeoutrwxs      rreceiver+s=D62r73GAq!qyyy|677rc#Ktj}|dk(rtjd	d	tjj|dy#xYw#tjj|dwxYww)zBTests that a custom child process is not waited on (Issue 1540386)rHN)exitcode)osfork_exittestsupportwait_process)testcasepids  rsimple_subprocessr(3si
'')C
ax
4
	
!!#!3
!!#!3s'/BA"BAA#BBc:eZdZdZdZdZdZdZejdZ
dZdZd	Z
d
ZedZedZed
ZeedZdZdZedZedZedZeedZejdZdZdZdZy)SocketServerTestzTest all socket servers.c6tdd|_g|_y)N<r)r	port_seed
test_filesselfs rsetUpzSocketServerTest.setUpFsRrctdt|jD]}	tj|g|jddy#t
$rY6wxYwNr)rrr.r removeOSError)r0fns  rtearDownzSocketServerTest.tearDownKsUQ//	B
		"
	
 

sA

	AAc|tjk(rtdfStj}|j
j
||Sr3)socketAF_INETHOSTrcreate_unix_domain_namer.append)r0protor6s   rpickaddrzSocketServerTest.pickaddrVs?FNN"!9668BOO""2&Irc	0Gdd|}Gdd|}trtd	|||}|j	j
|jj|S#t$r$}|jd|d|d|Yd}~^d}~wwxYw)	NceZdZdZy).SocketServerTest.make_server.<locals>.MyServerc&|j|N)
close_requestr0requestclient_addresss   rhandle_errorz;SocketServerTest.make_server.<locals>.MyServer.handle_errorbs""7+rN)__name__
__module____qualname__rIrrMyServerrBas
rrNceZdZdZy)/SocketServerTest.make_server.<locals>.MyHandlercn|jj}|jj|yrD)rfilereadlinewfilewrite)r0lines  rhandlez6SocketServerTest.make_server.<locals>.MyHandler.handlegs&zz**,

  &rNrJrKrLrWrMrr	MyHandlerrPfs
'rrYzcreating serverzCannot create server (z, z): )rprintPermissionErrorskipTestassertEqualserver_addressr9getsockname)r0addrsvrclshdlrbaserNrYserveres        rmake_serverzSocketServerTest.make_server`s	v	
	'	'
E+,	-dI.F
	
..

0I0I0KL
	-MM!4,
-
-	-s	A((	B1BBc(|j|j|j||}|j}trtd|td|t
jd|z|jddi}d|_	|jtrtdtd	D]'}trtd
|||j|)trtd|j|j|j|jd|j j#t$r5t'|t(j*r|j-|j.trtd
yy)NzADDR =zCLASS =z
%s serving
poll_interval{Gz?nametargetkwargsTzserver runningztest clientzwaiting for serverdone)rer?address_familyr^rrZ	threadingThread
serve_foreverdaemonstartrangeshutdownjoinserver_closer]r9filenoHAVE_FORKING
isinstancesocketserverForkingMixInassertFalseactive_children)r0rarbtestfuncrcr`tis        r
run_serverzSocketServerTest.run_serverus?!!$--0E0E"F"((4$$(D!)V$&''$D)

+		E*+q	2AmQ/V**D1	2E./	V]]1134Jv|/H/HI
V334E&M7rcFtj|tj5}|j||jtt|dx}}|rd|vrt|d}||z
}|rd|vr|j
|tdddy#1swYyxYwNd
)r9SOCK_STREAMconnectsendallTEST_STRrr]r0r>r`sbufdatas      rstream_examinezSocketServerTest.stream_examines
]]5&"4"4
5	,
IIdO
IIh C(C$5+q#t5+
S(+	,	,	,sAB8BB ctj|tj5}tr3|tjk(r |j	|j||j
t|t|dx}}|rd|vrt|d}||z
}|rd|vr|j|tdddy#1swYyxYwr)
r9
SOCK_DGRAMHAVE_UNIX_SOCKETSr
bindr?sendtorrr]rs      r
dgram_examinezSocketServerTest.dgram_examines
]]5&"3"3
4	, Ufnn%<t}}U+,
HHXt$ C(C$5+q#t5+
S(+	,	,	,sA;C!CC	cv|jtjtj|jyrD)rr}	TCPServerStreamRequestHandlerrr/s rtest_TCPServerzSocketServerTest.test_TCPServers(..$99++	-rcv|jtjtj|jyrD)rr}ThreadingTCPServerrrr/s rtest_ThreadingTCPServerz(SocketServerTest.test_ThreadingTCPServers(77$99++	-rct|5|jtjtj|j
dddy#1swYyxYwrD)r(rr}ForkingTCPServerrrr/s rtest_ForkingTCPServerz&SocketServerTest.test_ForkingTCPServersE
t
$	1OOL99(== //
1	1	1	1:AAcv|jtjtj|jyrD)rr}UnixStreamServerrrr/s rtest_UnixStreamServerz&SocketServerTest.test_UnixStreamServers(55$99++	-rcv|jtjtj|jyrD)rr}ThreadingUnixStreamServerrrr/s rtest_ThreadingUnixStreamServerz/SocketServerTest.test_ThreadingUnixStreamServers(>>$99++	-rct|5|jtjtj|j
dddy#1swYyxYwrD)r(rr}ForkingUnixStreamServerrrr/s rtest_ForkingUnixStreamServerz-SocketServerTest.test_ForkingUnixStreamServersGt
$	1OOL@@(== //
1	1	1	1rcv|jtjtj|jyrD)rr}	UDPServerDatagramRequestHandlerrr/s rtest_UDPServerzSocketServerTest.test_UDPServers(..$;;**	,rcv|jtjtj|jyrD)rr}ThreadingUDPServerrrr/s rtest_ThreadingUDPServerz(SocketServerTest.test_ThreadingUDPServers(77$;;**	,rct|5|jtjtj|j
dddy#1swYyxYwrD)r(rr}ForkingUDPServerrrr/s rtest_ForkingUDPServerz&SocketServerTest.test_ForkingUDPServersE
t
$	0OOL99(?? ..
0	0	0	0rcv|jtjtj|jyrD)rr}UnixDatagramServerrrr/s rtest_UnixDatagramServerz(SocketServerTest.test_UnixDatagramServers(77$;;**	,rcv|jtjtj|jyrD)rr}ThreadingUnixDatagramServerrrr/s r test_ThreadingUnixDatagramServerz1SocketServerTest.test_ThreadingUnixDatagramServers(@@$;;**	,rcv|jtjtj|jyrD)rr}ForkingUnixDatagramServerrrr/s rtest_ForkingUnixDatagramServerz/SocketServerTest.test_ForkingUnixDatagramServers*	
>>$;;**	,rcGddtj}Gddtj}g}tdD]O}|tdf|}tjd|jdd	i
}d|_|j||fQ|D]%\}}|j|j'|D]%\}}|j|j'y)NceZdZy)0SocketServerTest.test_shutdown.<locals>.MyServerNrJrKrLrMrrrNrrrNceZdZy)1SocketServerTest.test_shutdown.<locals>.MyHandlerNrrMrrrYrrrrYrzMyServer servingrgrhriT)r}rrrvr;rqrrrsrtr=rurwrxry)r0rNrYthreadsrrrs       r
test_shutdownzSocketServerTest.test_shutdowns	|--		99	r	#A$I.A  ''-/AAHNNAq6"	#	DAq
GGI
JJL		DAq
FFH
NN	rcGddtjtj}|tdfd}|j	y)NceZdZy)9SocketServerTest.test_close_immediately.<locals>.MyServerNrrMrrrNrrrrNrcyrDrMrMrr<lambda>z9SocketServerTest.test_close_immediately.<locals>.<lambda>sr)r}ThreadingMixInrr;ry)r0rNrcs   rtest_close_immediatelyz'SocketServerTest.test_close_immediatelys:	|22L4J4J	4)\2rctdD]J}|jt5tjt
dftjdddLy#1swYWxYw)Nirn)rvassertRaises
OverflowErrorr}rr;r)r0rs  rtest_tcpserver_bind_leakz)SocketServerTest.test_tcpserver_bind_leaksd
t	JA""=1
J&&bz'3'H'HJ
J
J	J
J
Js+AA#	ctjtdftj5}	ddd|j	dj
j
y#1swY4xYw)Nrrn)r}rr;rr]r9rz)r0rcs  rtest_context_managerz%SocketServerTest.test_context_manager!sZ

#
#T1I$0$E$EG	JP		
V]]1134		sA  A)N)rJrKrL__doc__r1r7r?rerreap_threadsrrrrrrequires_forkingrrequires_unix_socketsrrrrrrrrrrrrrrMrrr*r*Cs,"
	 *"" "# "D,	,-
-
11--
--
11,
,
00,,
,,
,,
""#2J5rr*cTeZdZdZdZdZdZdZdZe	dZ
e	dZd	Zy
)ErrorHandlerTestzTest that the servers pass normal exceptions from the handler to
    handle_error(), and that exiting exceptions like SystemExit and
    KeyboardInterrupt are not passed.cJtjtjyrD)runlinkTESTFNr/s rr7zErrorHandlerTest.tearDown-s))*rcFtt|jdyNThandled)BaseErrorTestServer
ValueErrorcheck_resultr/s rtest_sync_handledz"ErrorHandlerTest.test_sync_handled0sJ'$'rc|jt5ttddd|jdy#1swYxYwNFr)r
SystemExitrrr/s rtest_sync_not_handledz&ErrorHandlerTest.test_sync_not_handled4s>


z
*	,
+	,%(	,	,sAA
cFtt|jdyr)ThreadingErrorTestServerrrr/s rtest_threading_handledz'ErrorHandlerTest.test_threading_handled9s ,$'rctj5}tt|j	d|j|jtdddy#1swYyxYwr)rcatch_threading_exceptionrrrassertIsexc_type)r0cms  rtest_threading_not_handledz+ErrorHandlerTest.test_threading_not_handled=sP

7
7
9	3R$Z0e,MM"++z2		3	3	3sAA  A)cFtt|jdyr)ForkingErrorTestServerrrr/s rtest_forking_handledz%ErrorHandlerTest.test_forking_handledDsz*$'rcFtt|jdyr)rrrr/s rtest_forking_not_handledz)ErrorHandlerTest.test_forking_not_handledIsz*%(rcttj5}dd|zz}|j|j	|dddy#1swYyxYw)NHandler called
Error handled
)openrrr]read)r0rlogexpecteds    rrzErrorHandlerTest.check_resultNsM
)""
#	3s),=,GGHSXXZ2	3	3	3s)AAN)
rJrKrLrr7rrrrrrrrrMrrrr(sM)+()
(3(())3rrc*eZdZfdZdZdZxZS)rc>||_t|	tdfttj|j5	ddd	|j|j|jy#1swY;xYw#|jwxYwr3)	exceptionsuper__init__r;
BadHandlerr9create_connectionr^handle_requestry	wait_done)r0r	__class__s  rrzBaseErrorTestServer.__init__Us"
$J/

%
%d&9&9
:			 !
		

sA>
B
>B
Bcttjd5}|jddddy#1swYyxYw)Nar)rrrrU)r0rGrHrs    rrIz BaseErrorTestServer.handle_error`s6
)""C
(	)CII'(	)	)	)s6?cyrDrMr/s rrzBaseErrorTestServer.wait_donedsr)rJrKrLrrIr
__classcell__r	s@rrrTs	)
rrceZdZdZy)rcttjd5}|jdddd|jjd#1swY$xYw)Nrrz
Test error)rrrrUrcr)r0rs  rrWzBadHandler.handleisK
)""C
(	*CII()	*kk##L11	*	*sAANrXrMrrrrhs2rrc.eZdZfdZfdZdZxZS)rcVtj|_t||i|yrD)rqEventrorrr0poskwr	s   rrz!ThreadingErrorTestServer.__init__qs#OO%	
#$$rcXt||i||jjyrD)rshutdown_requestrosetrs   rrz)ThreadingErrorTestServer.shutdown_requestus"
 #,,		

rc8|jjyrD)rowaitr/s rrz"ThreadingErrorTestServer.wait_doneys		r)rJrKrLrrrr
rs@rrros%rrceZdZy)rNrrMrrrr~srrceZdZdZdZy)SocketWriterTestcBGddtj}tjtdf|}|j	|j
t
j|jtjtj}|5|j|jddd|j|j|jtj |j#|j$|j&y#1swYjxYw)NceZdZdZy)-SocketWriterTest.test_basics.<locals>.Handlerc|j|j_|jj|j_|jj|j_yrD)rTrcrzwfile_filenorGrequest_filenor/s rrWz4SocketWriterTest.test_basics.<locals>.Handler.handlesD$(JJ!+/::+<+<+>(-1\\-@-@-B*rNrXrMrrHandlerr!s
Crr%r)r}rrr;
addCleanupryr9rprIPPROTO_TCPrr^rassertIsInstancerTioBufferedIOBaser]r#r$)r0r%rcrs    rtest_basicszSocketWriterTest.test_basicss	Cl77	C''q	7;++,MM!!6#5#5v7I7I
K
	-
IIf++,	-fllB,=,=>,,f.C.CD		-	-sDDc	
tjjtdGddtj
}t	jtdf||jjtjfd}tjtj|}|jtjtj|d
d	tj	
fd}tj|}|jj!|j#|j%j&t)
|j%
d|j%j*d	|j%j,tjj.|j%	tjj.d
z
y)Npthread_killceZdZdZy),SocketWriterTest.test_write.<locals>.Handlerc8|jjd|j_|jj|j_dtjjz}|jj||j_
y)Nwrite data
)rTrUrcsent1rRrSreceivedr#r$
SOCK_MAX_SIZEsent2)r0	big_chunks  rrWz3SocketWriterTest.test_write.<locals>.Handler.handlese$(JJ$4$4_$E!'+zz':':'<$!DLL$>$>>	$(JJ$4$4Y$?!rNrXrMrrr%r/s
@rr%rc&jyrD)r)signumframeinterrupteds  rsignal_handlerz3SocketWriterTest.test_write.<locals>.signal_handlers
OOrc0tjjtjtj}|5|j	d5}|jj|j|jd|jd	tjjtdrn4t|jddddddy#1swYxYw#1swYyxYw)Nrbclient response
r)r)r9rprr'makefilerr^rSrrrSIGUSR1rfloatlen)rreaderr;main_threadr-	received2	response1rcs  r
run_clientz/SocketWriterTest.test_write.<locals>.run_clients

f33V5G5G""$A
/AJJt$
/		&//0"OO-			./C  fnn="''a'9
 
.	#
/
/
/
/
/
/s%DBD/DD		DD)rkr1r?r)r#r$
get_attributerr}rrr;r&ryrqrrB	get_identrrrurrxr]r3rDr4r6r5)r0r%r<originalrI
backgroundr;rFr-rGrHrcs      @@@@@@r
test_writezSocketWriterTest.test_writesh||11&.I	@l77	@''q	7;++,oo'	==@

v~~x@		))+	/	/,%%Z8
s9~6O4*>?t||'A'ABDLL$>$>$DErN)rJrKrLr+rNrMrrrrsE"8FrrceZdZdZdZdZy)MiscTestCasecg}ttD]F}|jdrtt|}t|dddk(s6|j	|H|jtj|y)N_rKr})dirr}
startswithgetattrr=assertCountEqual__all__)r0rrj
mod_objects    rtest_allzMiscTestCase.test_allsh%	*D??3'$\48
:|T:nLOOD)		*
	
l22H=rcGddtj}|tdftj}t	j|j
tj}|j|j|j|j|j|jd|jy)NceZdZdZdZdZy)SMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServercy)NFrMrFs   rverify_requestzbMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServer.verify_requestsrrcn|xjdz
c_tjj||y)Nr@)shutdown_calledr}rr)r0rGs  rrzdMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServer.shutdown_requests)$$)$&&77gFrN)rJrKrLr^r`rrMrrrNr\s
 O
GrrNrr@)r}rr;rr9rprrr^closerr]r`ry)r0rNrcrs    r4test_shutdown_request_called_if_verify_request_falsezAMiscTestCase.test_shutdown_request_called_if_verify_request_falses	G|--	G4)\%F%FGMM&//1C1CD			&''(		//3rcGddtjtj}|tdftj}tdD]:}t
j|j5|jddd<|jt|jd|jy#1swY|xYw)z
        In #37193, users reported a memory leak
        due to the saving of every request thread. Ensure that
        not all threads are kept forever.
        ceZdZy)2MiscTestCase.test_threads_reaped.<locals>.MyServerNrrMrrrNrerrrNr
N)r}rrr;rrvr9rr^r
assertLessrD_threadsry)r0rNrcrs    rtest_threads_reapedz MiscTestCase.test_threads_reapeds	|22L4J4J	4)\%F%FGr	(A))&*?*?@
(%%'
(
(	(	
FOO,b1
(
(s3CC
	N)rJrKrLrYrbrirMrrrPrPs>*rrP__main__)3r
contextlibr)r selectrr9rqunittestr}test.supportr#rrrrrr$requiresrequires_working_socketrr;r
r
skipUnlessrhas_fork_supportr{rrr
SHORT_TIMEOUTr
requires_forkcontextmanagerr(TestCaser*rrrBaseRequestHandlerrrrr~rrrPrJmainrMrr<module>rys		


/"&)i $$D$1FI.+++,=,CE||,,&8&&|5GH}}!\\77844b5x((b5J)3x(()3X
,00
(2002|::
!:!:<O
JFx((JFZ/8$$/dzHMMOr