a 8êdgŒã@sœddlZddlZddlZejdkr,e d¡‚ddlZddlZddlZddlmZddl m Z dd„Z Gdd „d ej ƒZ Gd d „d ej ƒZed kr˜e ¡dS) éNÚwin32z Windows only)Ú windows_utils)ÚsupportcCst d¡dS)N)ÚasyncioZset_event_loop_policy©rrú@/usr/local/lib/python3.9/test/test_asyncio/test_windows_utils.pyÚtearDownModulesrc@seZdZdd„Zdd„ZdS)Ú PipeTestsc Csˆtjdd\}}zZt ¡}| |j¡| |jd¡| |d¡|  |j¡| |jt j ¡d}z |  ¡Wn2t y }z| |j|¡WYd}~nd}~00tdƒ‚t ¡}| |j¡| |jd¡| |d¡| |jdt j h¡t  |jgdd¡}| |t j¡| |j¡| |j|¡| |j¡| |jdt j h¡| |  ¡d¡Wt  |¡t  |¡nt  |¡t  |¡0dS) N©TT©Z overlappedrédiäzexpected ERROR_IO_INCOMPLETEshelloF)rÚpipeÚ _overlappedÚ OverlappedÚ assertFalseÚpendingÚ assertEqualÚerrorÚReadFileÚ assertTrueÚ_winapiZERROR_IO_PENDINGÚ getresultÚOSErrorÚwinerrorÚ RuntimeErrorÚ WriteFileZassertInÚWaitForMultipleObjectsÚeventÚ WAIT_OBJECT_0Ú CloseHandle)ÚselfZh1Zh2Zov1ZERROR_IO_INCOMPLETEÚeZov2ÚresrrrÚtest_pipe_overlappeds<    $      ÿ zPipeTests.test_pipe_overlappedc CsÐtjdd\}}t |¡t |¡}| | ¡|¡| |j|¡t  ¡(t  ddt ¡~t   ¡Wdƒn1sx0Yzt |¡Wn2tyÂ}z| |jd¡WYd}~nd}~00tdƒ‚dS)Nr r ÚignoreÚézexpected ERROR_INVALID_HANDLE)rr rrÚ PipeHandlerÚfilenoÚhandleÚwarningsÚcatch_warningsÚfilterwarningsÚResourceWarningrÚ gc_collectrrr)r ÚhÚ_Úpr!rrrÚtest_pipe_handle=s   &$zPipeTests.test_pipe_handleN)Ú__name__Ú __module__Ú __qualname__r#r2rrrrr s%r c@seZdZdd„ZdS)Ú PopenTestsc CsŒd}d}tjtjd|gtjtjtjd}|j|j|jfD]}| |tj ¡q8t   ¡}t   ¡}t   ¡}|  |jj |¡| |jj d¡| |jj d¡|j|j|jg}t |dttjdƒ¡} | | tj¡| |j¡| |j¡| |j¡| | ¡t|ƒ¡| ¡ ¡} | ¡ ¡} | t| ƒd¡| t| ƒd¡| | ¡ ¡ | ¡¡| d  | ¡¡|Wdƒn1s~0YdS) Nzif 1: import sys s = sys.stdin.readline() sys.stdout.write(s.upper()) sys.stderr.write('stderr') sblah z-c)ÚstdinÚstdoutÚstderrr Tièrsstderr) rÚPopenÚsysÚ executableÚPIPEr7r8r9ZassertIsInstancer'rrrr)rrrrÚintrZ SHORT_TIMEOUTrrrrrÚlenÚrstripZ assertGreaterrÚupperÚ startswith) r ZcommandÚmsgr1ÚfZovinZovoutZoverrÚeventsr"ÚoutÚerrrrrÚ test_popenSs@ý ÿ     zPopenTests.test_popenN)r3r4r5rHrrrrr6Qsr6Ú__main__)r;Zunittestr*ÚplatformZSkipTestrrrrÚtestrrZTestCaser r6r3ÚmainrrrrÚs    ;3