
     f                    ,   d dl mZ d dlZd dlmZ d dlZddlmZ ddlm	Z	m
Z
 ej                            ej        dk    d	          Zej        dk    serJ ej        dk    rd d
lmZ ddlmZmZ ddlmZmZ ddZddZddZddZddZddZddZdS )    )annotationsN)TYPE_CHECKING   )_core)check_one_way_streamwait_all_tasks_blockedwin32zwindows only)reason)pipe)_handlekernel32)PipeReceiveStreamPipeSendStreamreturn(tuple[PipeSendStream, PipeReceiveStream]c                 d   K   t                      \  } }t          |          t          |           fS )zMakes a new pair of pipes.)r   r   r   )rws     a/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/trio/_tests/test_windows_pipes.py	make_piper      s/      VVFQ!/2222    Nonec                   K   t          j        t                    5  t          d           d d d            n# 1 swxY w Y   t          j        t                    5  t	          d            d d d            d S # 1 swxY w Y   d S )Ng      ?)pytestraises	TypeErrorr   r    r   r   test_pipe_typecheckr      s      	y	!	!  s              	y	!	!    $                                   s   8<<A99A= A=c                 *  K   t                      \  } }t          |          }t          |           }t          j        t          |                     sJ t          j        t          |                    sJ t          j        t          d          5  |	                                 d {V  d d d            n# 1 swxY w Y   t          j        t          d          5  |	                                 d {V  d d d            d S # 1 swxY w Y   d S )Nz&^\[WinError 6\] The handle is invalid$)match)
r   r   r   r   CloseHandler   r   r   OSErroraclose)r   r   send_streamreceive_streams       r   test_pipe_error_on_closer&   &   s     66DAq ##K&q))N

+++++

+++++	w&O	P	P	P # #  """""""""# # # # # # # # # # # # # # #	w&O	P	P	P & &##%%%%%%%%%& & & & & & & & & & & & & & & & & &s$   B::B>B> DDDc                 8  K   t                       d {V \  dddfd} dfd}t          j                    4 d {V }|                    |            |                    |           d d d           d {V  d S # 1 d {V swxY w Y   d S )Ni      r   r   c                    K   4 d {V  t                    } t                    D ]}                    |            d {V  	 d d d           d {V  d S # 1 d {V swxY w Y   d S N)	bytearrayrangesend_all)big_countreplicaswrites     r   senderz#test_pipes_combined.<locals>.sender;   s      	* 	* 	* 	* 	* 	* 	* 	*E""C8__ * *nnS))))))))))*	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   =A
A'*A'c                   K   4 d {V  t                       d {V  d} 	 t                              d           d {V           }|sn| |z  } 1| z  k    sJ 	 d d d           d {V  d S # 1 d {V swxY w Y   d S )Nr   Ti  )r   lenreceive_some)total_receivedreceivedr0   readr1   s     r   readerz#test_pipes_combined.<locals>.readerA   sU      
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6(*********N+T%6%6t%<%<<<<<<<== (*+ "UX%555555
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6 
	6s   AA44
A>A>r   r   )r   r   open_nursery
start_soon)r3   r:   nr0   r9   r1   r2   s      @@@@r   test_pipes_combinedr?   6   ss     !######KE4EH* * * * * * * *6 6 6 6 6 6 6 6 !##       q	V	V                             s   +B		
BBc                 0  K   t                       d {V \  } }| 4 d {V  |4 d {V  	 d d d           d {V  n# 1 d {V swxY w Y   d d d           d {V  n# 1 d {V swxY w Y   t          j        t          j                  5  |                     d           d {V  d d d            n# 1 swxY w Y   t          j        t          j                  5  |                    d           d {V  d d d            d S # 1 swxY w Y   d S )Nr   
   )r   r   r   r   ClosedResourceErrorr-   r6   )r   r   s     r   test_async_withrC   S   s     DAq        !                                                              
u0	1	1  jjoo              	u0	1	1 ! !nnR         ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !sU   	A"?A"
A			A"A		A""
A,/A,B99B= B="DDDc                 J  K   t                       d {V \  } t          j                    4 d {V }dfd}|                    |           t	          d           d {V                                   d {V  d d d           d {V  d S # 1 d {V swxY w Y   d S )Nr   r   c                    K   t          j        t          j                  5 } 	                     d           d {V  # 1 swxY w Y   dt          | j                  v sJ d S )NTs   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzanother task)r   r   r   rB   r-   strvalue)excinfor   s    r   write_foreverz.test_close_during_write.<locals>.write_foreverb   s      u899 2W2**[11111111122 2 2 2 2 2 2 2 "S%7%7777777s   A  AAg?r;   )r   r   r<   r=   r   r#   )r   nurseryrI   r   s      @r   test_close_during_writerK   ^   sd     DAq!## 
 
 
 
 
 
 
w	8 	8 	8 	8 	8 	8 	=)))$S)))))))))hhjj
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   AB
BBc                 @   K   t          t          d            d {V  d S r*   )r   r   r   r   r   test_pipe_fullyrM   m   s0       y$
/
//////////r   )r   r   r;   )
__future__r   systypingr   r    r   testingr   r   markskipifplatform
pytestmarkasyncio.windows_utilsr   _core._windows_cffir   r   _windows_pipesr   r   r   r   r&   r?   rC   rK   rM   r   r   r   <module>rZ      s   " " " " " " 



                    B B B B B B B B [ 7OO
 LG= <7******77777777BBBBBBBB3 3 3 3       & & & &    :! ! ! !   0 0 0 0 0 0r   