1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
U
Z±dÙ"ã@s˜ddlZddlZddlZddlZddlmZddlmZm    Z    m
Z
ddl TddlmZ dd„Z d    d
„Zd d „Zd d„Zdd„Zdd„Zdd„Zdd„ZdS)éNé)Ú_core)Úcheck_half_closeable_streamÚwait_all_tasks_blockedÚassert_checkpoints)Ú*)Úsocketc Ãs†t ¡\}}|4|$t t¡t|ƒW5QRXW5QRXW5QRXtjtjd$}t t    ¡t|ƒW5QRXW5QRXt ¡\}}|,|t|ƒ}|j|ks°t
‚W5QRXW5QRXt ¡°}|  d¡IdH|  d¡t ¡‚}|  | ¡¡IdHt|ƒ}| tjtj¡s$t
‚| tjtjd¡| tjtj¡rLt
‚| tjtjd¡}t|tƒsnt
‚W5QRXW5QRXdS)N©Útype©z    127.0.0.1réF)Ú stdlib_socketÚ
socketpairÚpytestÚraisesÚ    TypeErrorÚ SocketStreamÚtsocketrÚ
SOCK_DGRAMÚ
ValueErrorÚAssertionErrorÚbindÚlistenÚconnectÚ getsocknameÚ
getsockoptÚ IPPROTO_TCPÚ TCP_NODELAYÚ
setsockoptÚ
isinstanceÚbytes)ÚaÚbÚsockÚsÚ listen_sockÚ client_sock©r'úWd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\trio/tests/test_highlevel_socket.pyÚtest_SocketStream_basicss,   &   "
 
 
r)c ƒsäd‰t ¡\}}|Æ|¶t|ƒ‰t|ƒ‰‡‡fdd„}‡‡fdd„}t ¡4IdHš}| |¡| |¡W5QIdHRXˆ d¡IdHˆ d¡IdHdks¦t‚ˆ     ¡IdHˆ d¡IdHdksÌt‚W5QRXW5QRXdS)    Ni€–˜c“s(tˆƒ}ˆ |¡IdH|tˆƒ7}dS©N)Ú    bytearrayÚsend_allr )Údata)ÚBIGr!r'r(ÚsenderBsz*test_SocketStream_send_all.<locals>.senderc“sBtƒIdHd}|ˆkr2|tˆ ˆ¡IdHƒ7}q|ˆks>t‚dS)Nr)rÚlenÚ receive_somer)Únbytes)r.r"r'r(ÚreceiverZs
 z,test_SocketStream_send_all.<locals>.receiveróeé
ó)
rrrrÚ open_nurseryÚ
start_soonr,r1rZsend_eof)Za_sockZb_sockr/r3Únurseryr')r.r!r"r(Útest_SocketStream_send_all7s  
r:c
ƒsP‡fdd„}dd„}t ¡4IdHš}| |¡| ||¡W5QIdHRXdS)Nc“sˆ dd¡IdHqdS)Nóxi')r,r'©r$r'r(r/oszfill_stream.<locals>.sendercÓstƒIdH|j ¡dSr*)rZ cancel_scopeÚcancel)r9r'r'r(Úwaiterss zfill_stream.<locals>.waiter)rr7r8)r$r/r>r9r'r<r(Ú fill_streamns
 
r?cƒs(dd„‰‡fdd„}tˆ|ƒIdHdS)NcÓst ¡\}}t|ƒt|ƒfSr*)rrr©ÚleftÚrightr'r'r(Ú stream_maker}s z/test_SocketStream_generic.<locals>.stream_makerc“s4ˆƒIdH\}}t|ƒIdHt|ƒIdH||fSr*)r?r@©rCr'r(Úclogged_stream_makersz7test_SocketStream_generic.<locals>.clogged_stream_maker)r)rEr'rDr(Útest_SocketStream_generic|s rFc
Ãs6t ¡8}| d¡| d¡t t¡t|ƒW5QRXW5QRXtjtj    d>}| d¡IdHt t
¡}t|ƒW5QRX|  d¡W5QRXt j dkrît ¡>}| d¡IdHt t
¡}t|ƒW5QRX|  d¡W5QRXt ¡}| d¡IdH| d¡t|ƒ}|j|ks(t‚t ¡}| | ¡¡IdHtƒ| ¡IdH}W5QRXt|tƒstt‚|j ¡| ¡ksŒt‚|j ¡| ¡ks¤t‚tƒ| ¡IdHW5QRXtƒ| ¡IdHW5QRXtƒ,t tj¡| ¡IdHW5QRXW5QRX| ¡| ¡IdHdS)Nr r5r    z .*SOCK_STREAMÚdarwinz.*listen)r rrrrrrÚSocketListenerrrrÚmatchÚsysÚplatformrrrrÚacceptrrÚ getpeernameÚacloserÚClosedResourceErrorÚclose)r$Úexcinfor%Úlistenerr&Z server_streamr'r'r(Útest_SocketListenerŠsJ
 
 
 
 
 
"rSc
Ãsnt ¡}| d¡IdH| d¡t|ƒ}| ¡tƒ,t t    j
¡|  ¡IdHW5QRXW5QRXdS)Nr r5) rrrrrHrPrrrrrOrL)r%rRr'r'r(Ú+test_SocketListener_socket_closed_underfoot¿s
rTc Ãs(Gdd„dtjƒ}|gƒ}|ttjdƒttjdƒttjdƒ|ttjdƒttjdƒttj    dƒ|gƒ}t
|ƒ}t ƒ"|  ¡IdH}|j |ksŽt‚W5QRXtjtjtj    fD]J}t ƒ:t t¡}|  ¡IdHW5QRX|jj|ksèt‚W5QRXq¨t ƒ$|  ¡IdH}|j |kst‚W5QRXdS)    Nc@s2eZdZdd„ZejZdd„Zdd„Zdd„Z    d    S)
z5test_SocketListener_accept_errors.<locals>.FakeSocketcSst|ƒ|_dSr*)ÚiterÚ_events)ÚselfÚeventsr'r'r(Ú__init__Ðsz>test_SocketListener_accept_errors.<locals>.FakeSocket.__init__cSsdS)NTr')rWÚlevelÚoptr'r'r(rÖsz@test_SocketListener_accept_errors.<locals>.FakeSocket.getsockoptcSsdSr*r')rWrZr[Úvaluer'r'r(rÙsz@test_SocketListener_accept_errors.<locals>.FakeSocket.setsockoptcÓs4t ¡IdHt|jƒ}t|tƒr(|‚n|dfSdSr*)rÚ
checkpointÚnextrVrÚ BaseException)rWÚeventr'r'r(rLÜs
 
 
z<test_SocketListener_accept_errors.<locals>.FakeSocket.acceptN)
Ú__name__Ú
__module__Ú __qualname__rYrÚ SOCK_STREAMr
rrrLr'r'r'r(Ú
FakeSocketÏs
rezConnection abortedzPermission deniedz Bad protocolzOut of file descriptorsz$attempt to write to read-only memoryzout of buffers)rÚ
SocketTypeÚOSErrorÚerrnoÚ ECONNABORTEDÚEPERMZEPROTOZEMFILEZEFAULTZENOBUFSrHrrLrrrrr\)reZfake_server_sockZfake_listen_sockÚlr$ÚcoderQr'r'r(Ú!test_SocketListener_accept_errorsÎs2
 
 
 
 
 
øÿ  rmc
Ãs€t ¡\}}|f|V| d¡IdH| ¡t|ƒ}| d¡IdHdksPt‚| d¡IdHdksht‚W5QRXW5QRXdS)Nr;r r6)rrÚsendrPrr1r)Zsock_aZsock_bÚstreamr'r'r(Ú5test_socket_stream_works_when_peer_has_already_closeds  rp)rrJrr rhÚrZtestingrrrZ_highlevel_socketrr)r:r?rFrSrTrmrpr'r'r'r(Ú<module>s  &756