zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
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
58
59
60
61
62
63
64
65
66
67
U
Z±dã@sêddlZddlZddlmZddlZejdkZejje ddZ    ddl
m Z m Z m Z dd    lmZmZmZdd
lmZer”d d lmZmZmZmZmZej d ¡dd„ƒZdd„Zedd„ƒZe ƒdd„ƒZe dd„ƒZdd„Z dd„Z!dS)éN)ÚcontextmanagerÚntz windows only)Úreasoné)ÚslowÚgc_collect_harderÚrestore_unraisablehooké)Ú_coreÚsleepÚ move_on_after)Úwait_all_tasks_blockedé)ÚffiÚkernel32ÚINVALID_HANDLE_VALUEÚraise_winerrorÚ    FileFlagsz3ignore:.*UnboundedQueue:trio.TrioDeprecationWarningc Ãs¾dd„}t ¡¤\}}t ¡4IdHš~}| ||¡d}tdƒ|2zP3dHW}td|ƒ|D](}|jdkspt‚|j|ks~t‚|d7}q^|dkrDq˜qD6tdƒW5QIdHRXW5QRXdS)    NcÓs`t dt ¡¡}tdƒD]B}td|ƒ|ddkr@t ¡IdHt |||tj    ¡}|st
‚qdS)NÚHANDLEé
Úpostr    r) rÚcastr
Z current_iocpÚrangeÚprintÚ
checkpointrZPostQueuedCompletionStatusÚNULLÚAssertionError)ÚkeyZiocpÚiÚsuccess©r úTd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\trio/_core/tests/test_windows.pyrs 
 z(test_completion_key_listen.<locals>.postrZloopzgot somerrzend loop)r
Zmonitor_completion_keyÚ open_nurseryÚ
start_soonrZ lpOverlappedrZdwNumberOfBytesTransferred)rrÚqueueÚnurseryrÚbatchÚinfor r r!Útest_completion_key_listens     
 
r(c
ƒsjd}tt|ƒƒ}t ¡F}tj |d¡}t|dƒ}| |¡|     ¡W5QRX| 
d¡d}t   |¡}t  t  d|¡tjtjt jtjtjt j¡‰ˆtkr¢tƒz¬t|ƒš‰‡‡fdd„}t ˆ¡t ¡4IdHš*}td    d
d ƒD]}    | ||    |    d ¡qäW5QIdHRX||kst‚t  !t"¡t #ˆd ¡IdHW5QRXW5QRXW5t  ˆ¡XW5QRXdS) Ns1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444z numbers.txtÚwbzutf-16lesÚLPCWSTRc“s t ˆˆ||…|¡IdHdS)N)r
Úreadinto_overlapped)ÚstartÚend©Z buffer_viewÚhandler r!Ú read_regionRs
 
ÿz-test_readinto_overlapped.<locals>.read_regionriis    immutable)$Ú    bytearrayÚlenÚtempfileÚTemporaryDirectoryÚosÚpathÚjoinÚopenÚwriteÚflushÚencoderÚ from_bufferrZ CreateFileWrrÚ GENERIC_READZFILE_SHARE_READrÚ OPEN_EXISTINGÚFILE_FLAG_OVERLAPPEDrrÚ CloseHandleÚ
memoryviewr
Úregister_with_iocpr"rr#rÚpytestÚraisesÚ BufferErrorr+)
ÚdataÚbufferZtdirZtfileÚfpZrawnameZ rawname_bufr0r%r,r r.r!Útest_readinto_overlapped7s>   
 
 
ù    
 
$ *rIc cstddlm}ddl}|dd\}}z&| |d¡}tj    |ddd|fVW5t t d|¡¡t t d|¡¡XdS)    Nr)Úpipe)TF)Z
overlappedrr)F)Úclosefd)
Zasyncio.windows_utilsrJÚmsvcrtrr@rrÚopen_osfhandler5Úfdopen)rJrLÚ read_handleZ write_handleZwrite_fdr r r!Úpipe_with_overlapped_readds  rPc
s˜tƒˆ\}‰|| d¡W5QRXd‰‡‡fdd„}t tj¡}t |¡W5QRXd‰dt|jƒkspt    ‚dt|jƒks‚t    ‚~t
ƒW5QRXdS)Nstest
Fc
“shtdƒ}zPt ¡4IdHš0}|jtjˆ|ddtƒIdH|j ¡W5QIdHRXW5ˆsbt‚XdS)NrZxyz)Úname)    r1rr
r"r#r+r Ú cancel_scopeÚcancel)Útargetr%©Z left_run_yetrOr r!Úmainzsÿ z/test_forgot_to_register_with_iocp.<locals>.mainTz'Failed to cancel overlapped I/O in xyz z$forget to call register_with_iocp()?) rPr9rCrDr
ZTrioInternalErrorÚrunÚstrÚvaluerr)Úwrite_fprVÚexc_infor rUr!Ú!test_forgot_to_register_with_iocprs r\c Ãsâddl}tƒÊ\}}t |¡tdƒ}t ¡4IdHšP}| tj||¡tƒIdH||     d¡W5QRX| 
d¡|j   ¡W5QIdHRX|dd…dks¦t ‚t ||¡IdHdksÀt ‚|dd…dksÔt ‚W5QRXdS)Nrés test1
test2
rstest1
stest2
)ÚtimerPr
rBr1r"r#r+r r9r rRrSr)r^rZrOrTr%r r r!Útest_too_late_to_cancel”s 
 
r_c    sjddlm‰m‰ddlm}ˆjdœ‡‡fdd„
}| |d|¡tjt    dd    t
  t d
¡W5QRXdS) Nr©Ú    WSAIoctlsÚ_handle©Ú _io_windows©Úwhichcs4t|dƒr| ¡}|ˆjkr(ˆ|dƒSˆ|ƒSdS)NÚfilenor)ÚhasattrrgZSIO_BSP_HANDLE_SELECT©Úsockrfr`r r!Úpatched_get_underlyingµs
 
 
 zKtest_lsp_that_hooks_select_gives_good_error.<locals>.patched_get_underlyingÚ_get_underlying_socketz0SIO_BASE_HANDLE and SIO_BSP_HANDLE_SELECT differ©Úmatchr© Ú _windows_cffirarbÚrdÚSIO_BASE_HANDLEÚsetattrrCrDÚ RuntimeErrorr
rWr ©Z monkeypatchrdrkr r`r!Ú+test_lsp_that_hooks_select_gives_good_error±s ÿrvc    sjddlm‰m‰ddlm}ˆjdœ‡‡fdd„
}| |d|¡tjt    dd    t
  t d
¡W5QRXdS) Nrr`rcrecs2t|dƒr| ¡}|ˆjkr&tdƒ‚nˆ|ƒSdS)NrgZnope)rhrgrrÚOSErrorrir`r r!rkÍs
 
 
 
z[test_lsp_that_completely_hides_base_socket_gives_good_error.<locals>.patched_get_underlyingrlzCSIO_BASE_HANDLE failed and SIO_BSP_HANDLE_POLL didn't return a diffrmrrorur r`r!Ú;test_lsp_that_completely_hides_base_socket_gives_good_errorÄs þrx)"r5r3Ú
contextlibrrCrQÚ
on_windowsÚmarkZskipifZ
pytestmarkZtutilrrrrqr
r r Ztestingr rprrrrrÚfilterwarningsr(rIrPr\r_rvrxr r r r!Ú<module>s* 
 
 
-
 
!