
     fQ                    N   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
mZ ddlmZ ddlmZmZ dd	lmZ dd
lT ddlmZ ddlmZ erd dl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(dZ%d(dZ&d(dZ'd(dZ(d(d Z)d(d!Z*d(d"Z+d(d#Z,d(d$Z-d(d%Z.d(d&Z/d(d'Z0dS )+    )annotationsN)TYPE_CHECKING)RaisesGroup   )_coresleepsocket)can_bind_ipv6)StapledStreamaclose_forcefully)SocketListener)*)_assert_raises)_UnboundedByteQueue)Nursery)ReceiveStream
SendStreamreturnNonec                   K   g dfd} dfd}t          j                    4 d {V }|                    |            |                    |           |                    |           d d d           d {V  n# 1 d {V swxY w Y   g dfd}t          j                    4 d {V }|                    |           |j                                         d d d           d {V  n# 1 d {V swxY w Y   dgk    sJ d S )Nr   r   c                    K   t          d          D ]} t          j                     d {V                      d           d S )N
   zbusy bee exhausted)ranger   
checkpointappend)_records    [/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/trio/_tests/test_testing.pybusy_beez-test_wait_all_tasks_blocked.<locals>.busy_bee   sY      r 	% 	%A"$$$$$$$$$$*+++++    c                 ^   K   t                       d {V                       d           d S )Nzquiet at last!wait_all_tasks_blockedr   r   s   r   waiting_for_bee_to_leavez=test_wait_all_tasks_blocked.<locals>.waiting_for_bee_to_leave    s>      $&&&&&&&&&&'''''r    c                    K   	 t                       d {V  d S # t          j        $ r                      d           Y d S w xY w)Nok)r#   r   	Cancelledr   r$   s   r   cancelled_while_waitingz<test_wait_all_tasks_blocked.<locals>.cancelled_while_waiting,   sh      	 (*********** 	  	  	 MM$	 s    $AAr'   r   r   )r   open_nursery
start_sooncancel_scopecancel)r   r%   nurseryr)   r   s       @r   test_wait_all_tasks_blockedr0      sj     F, , , , , ,
( ( ( ( ( ( !## 5 5 5 5 5 5 5w8$$$344434445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 F            !## & & & & & & &w2333##%%%& & & & & & & & & & & & & & & & & & & & & & & & & & & dVs$   A A==
B
B//C00
C:=C:
mock_clock	MockClockc                d  K   g dfd}t          j                    4 d {V }|                    |           t                       d {V  dgk    sJ |                     d           t                       d {V  ddgk    sJ 	 d d d           d {V  d S # 1 d {V swxY w Y   d S )Nr   r   c                    K                         d           t          d           d {V                        d           d S )Ntt start   tt finishedr   r   r$   s   r   timeout_taskz?test_wait_all_tasks_blocked_with_timeouts.<locals>.timeout_task;   sH      j!!!Ahhm$$$$$r    r5   r   r7   r*   )r   r+   r,   r#   jump)r1   r9   r/   r   s      @r   )test_wait_all_tasks_blocked_with_timeoutsr;   8   s     F% % % % % %
 !## 5 5 5 5 5 5 5w<((($&&&&&&&&&*%%%%$&&&&&&&&&*m4444445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s   A&B
B),B)c                   K   g dfd} dfd}dfd}dfd}t          j                    4 d {V }|                    |            |                    |           |                    |           |                    |           |                    |           d d d           d {V  n# 1 d {V swxY w Y   g dk    sJ d S )	Nr   r   c                    K                         d           t          d           d {V  t          d           d {V  t          d           d {V                        d           d S )Nblink startg{Gz?	blink endr8   r$   s   r   blinkz7test_wait_all_tasks_blocked_with_cushion.<locals>.blinkL   s      m$$$DkkDkkDkkk"""""r    c                 ^   K   t                       d {V                       d           d S )Nwait_no_cushion endr"   r$   s   r   wait_no_cushionzAtest_wait_all_tasks_blocked_with_cushion.<locals>.wait_no_cushionS   s>      $&&&&&&&&&+,,,,,r    c                 `   K   t          d           d {V                       d           d S )Ng{Gz?wait_small_cushion endr"   r$   s   r   wait_small_cushionzDtest_wait_all_tasks_blocked_with_cushion.<locals>.wait_small_cushionW   s@      $T*********./////r    c                 `   K   t          d           d {V                       d           d S )NgQ?wait_big_cushion endr"   r$   s   r   wait_big_cushionzBtest_wait_all_tasks_blocked_with_cushion.<locals>.wait_big_cushion[   s@      $T*********,-----r    )r>   rB   r?   rE   rE   rH   r*   )r   r+   r,   )r@   rC   rF   rI   r/   r   s        @r   (test_wait_all_tasks_blocked_with_cushionrJ   I   s     F# # # # # #- - - - - -0 0 0 0 0 0. . . . . . !## - - - - - - -w5!!!?+++-...-...+,,,- - - - - - - - - - - - - - - - - - - - - - - - - - -          s   A*B33
B= B=recwarnpytest.WarningsRecorderc                  K   t                      5  t          j                     d {V  d d d            n# 1 swxY w Y   t          j        t
                    5  t                      5  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          j        fD ]x}t          |           t          j        t
                    5  t                      5   |             d {V  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   yt                      5  t          j                     d {V  t          j                     d {V  d d d            d S # 1 swxY w Y   d S N)	assert_checkpointsr   r   pytestraisesAssertionErrorcheckpoint_if_cancelledcancel_shielded_checkpointprintrK   partial_yields     r   test_assert_checkpointsrX   s   s     			 ! !         ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 
~	&	&  !! 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	               	%( & & 	m]>** 	& 	&#%% & &#moo%%%%%%%& & & & & & & & & & & & & & &	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
 
		 1 1+---------.0000000001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   7;;B*A8,B8A<	<B?A<	 BBBD+D<DDDDDD#	&D#	93E99E= E=c                n  K   t                      5  	 d d d            n# 1 swxY w Y   t          j        t                    5  t                      5  t	          j                     d {V  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          j        fD ]x}t          |           t          j        t                    5  t                      5   |             d {V  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   yt          j        t                    5  t                      5  t	          j                     d {V  t	          j                     d {V  d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S rN   )	assert_no_checkpointsrP   rQ   rR   r   r   rS   rT   rU   rV   s     r   test_assert_no_checkpointsr[      s     		 	                  
~	&	& % %"$$ 	% 	%"$$$$$$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%% % % % % % % % % % % % % % % 	%( & & 	m]>** 	& 	&&(( & &#moo%%%%%%%& & & & & & & & & & & & & & &	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
 
~	&	& 5 5"$$ 	5 	5/1111111112444444444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	55 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s   ##BA8,B8A<	<B?A<	 BBBD+D<DDDDDD#	&D#	F*3FF*F	F*F	F**F.1F.c                 $  K   g dfddfd} dfd	}t                      }t          j                    4 d {V }|                    | |           |                    ||            |d
          4 d {V  t	                       d {V  d d d           d {V  n# 1 d {V swxY w Y   g dk    sJ 	 d d d           d {V  n# 1 d {V swxY w Y   t                      } |d          4 d {V  	 d d d           d {V  n# 1 d {V swxY w Y   t          j        t                    5   |d          4 d {V  	 d d d           d {V  n# 1 d {V swxY w Y   d d d            d S # 1 swxY w Y   d S )Nvalobjectr   r   c                P    t          |                                |            d S rN   )rU   r   )r]   r   s    r   tztest_Sequencer.<locals>.t   s&    c


cr    seq	Sequencerc                  K    | d          4 d {V   d           d d d           d {V  n# 1 d {V swxY w Y    | d          4 d {V   d           d d d           d {V  n# 1 d {V swxY w Y    | d          4 d {V   d           d d d           d {V  d S # 1 d {V swxY w Y   d S )N   f1rd      rf   rg      rf   ri    ra   r`   s    r   rf   ztest_Sequencer.<locals>.f1   st     3q66 	 	 	 	 	 	 	 	AiLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	3q66 	 	 	 	 	 	 	 	AiLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	3q66 	 	 	 	 	 	 	 	AiLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s1   3
= =A33
A= A=B44
B>B>c                  K    | d          4 d {V   d           d d d           d {V  n# 1 d {V swxY w Y    | d          4 d {V   d           d d d           d {V  d S # 1 d {V swxY w Y   d S )Nr   f2r   r   ro   r   rk   rl   s    r   ro   ztest_Sequencer.<locals>.f2   s     3q66 	 	 	 	 	 	 	 	AiLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	3q66 	 	 	 	 	 	 	 	AiLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   3
= =A44
A>A>r6   )rn   re   rp   rh   rj   r   )r]   r^   r   r   )ra   rb   r   r   )rb   r   r+   r,   r#   rP   rQ   RuntimeError)rf   ro   ra   r/   r   r`   s       @@r   test_Sequencerrr      sp     F                ++C!## Q Q Q Q Q Q Qw2s###2s###3q66 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+(*********	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+PPPPPPPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q ++Cs1vv                                  	|	$	$  3q66 	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 s~    >C>B%C%
B/	/C2B/	3C
C CD
D!$D!FE'F'
E1	1F4E1	5FF	F	c                 ^  K   g t                      dfd} t          j                    4 d {V }|                    | d           |                    | d            d          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   d	d
gk    sJ t	          j        t                    5   d          4 d {V  	 d d d           d {V  n# 1 d {V swxY w Y   d d d            d S # 1 swxY w Y   d S )Niintr   r   c                Z  K   t          j                    5 }| dk    r|                                 	  |           4 d {V  	 d d d           d {V  n# 1 d {V swxY w Y   n)# t          $ r                     d|  d           Y nw xY wd d d            d S # 1 swxY w Y   d S )Nrd   zseq(z) RuntimeError)r   CancelScoper.   rq   r   )rt   scoper   ra   s     r   childz$test_Sequencer_cancel.<locals>.child   s        	8EAvv83q66                                   8 8 86Q666777778	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8sX   B A*AA*
A"	"A*%A"	&A*)B *#BB BB  B$'B$rd   r   r   zseq(1) RuntimeErrorzseq(2) RuntimeErrorrg   )rt   ru   r   r   )rb   r   r+   r,   rP   rQ   rq   )ry   r/   r   ra   s     @@r   test_Sequencer_cancelrz      s2     F
++C8 8 8 8 8 8 8 !##       w5!$$$5!$$$3q66 	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                           +-BCCCCC 
|	$	$  3q66 	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 sk   >B*3B5B*
B	B*B	B**
B47B4D"0D2D"
D	D"D	D""D&)D&c                   K   t          j        t                    5  t          t                    5  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t
                    5  t          t                    5  ddz    d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          t                    5  t          # 1 swxY w Y   d S )Nfoord   )rP   rQ   rR   r   rq   	TypeErrorrk   r    r   test__assert_raisesr~      s     	~	&	&  L)) 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	               
y	!	!  L)) 	 	AII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               
	%	%           sy   A?AA	AA	AAA:B8B!B8!B%	%B8(B%	)B88B<?B<CC#&C#c                 
  K   t                                          d                               d                               d          dk    sJ                     d          dk    sJ                     d                                           dk    sJ t          j        t
          j                  5                      d           d d d            n# 1 swxY w Y   t          j        t
          j                  5                                   d d d            n# 1 swxY w Y   t          j        t                    5                      d           d d d            n# 1 swxY w Y                       d	           t                      5  	                    d           d {V d	k    sJ 	 d d d            n# 1 swxY w Y                       d
                               d           t                      5  	                    d           d {V dk    sJ 	 d d d            n# 1 swxY w Y   t                      5  	                                 d {V dk    sJ 	 d d d            n# 1 swxY w Y   dfd} dfd}t          j
                    4 d {V }|                    |d           |                    | d           d d d           d {V  n# 1 d {V swxY w Y   t          t
          j                  5  t          j
                    4 d {V }|                    |d           |                    |d           d d d           d {V  n# 1 d {V swxY w Y   d d d            n# 1 swxY w Y                                    t          j        t
          j                  5                      d           d d d            n# 1 swxY w Y                       d          dk    sJ                                 dk    sJ 	                    d           d {V dk    sJ 	                                 d {V dk    sJ                                  t                      dfd}t          j
                    4 d {V }|                    |d           |                    |           d d d           d {V  d S # 1 d {V swxY w Y   d S )N   123   456rd      1r   s   23456   789string   abc   defs   ghi   ds   efghidatabytesr   r   c                ^   K   t                       d {V                      |            d S rN   )r#   put)r   ubqs    r   putterz'test__UnboundeByteQueue.<locals>.putter  s8      $&&&&&&&&&r    expectc                   K   t                      5                                   d {V | k    sJ 	 d d d            d S # 1 swxY w Y   d S rN   )rO   get)r   r   s    r   getterz'test__UnboundeByteQueue.<locals>.getter  s      !! 	- 	-??????f,,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   !AAA   xyzs   asdf   ---r    c                 \   K   t                       d {V                                    d S rN   )r#   close)ubq2s   r   closerz'test__UnboundeByteQueue.<locals>.closer=  s6      $&&&&&&&&&

r    r   r   r   r   )r   r   r   r   r*   )r   r   
get_nowaitrP   rQ   r   
WouldBlockr}   rO   r   r+   r,   r   BusyResourceErrorr   ClosedResourceError)r   r   r/   r   r   r   s       @@r   test__UnboundeByteQueuer      s     


CGGFOOOGGFOOO>>!$$$$>>"))))GGFOOO>>v%%%%	u'	(	(  r              	u'	(	(                 
y	!	!                 GGFOOO			 + +WWR[[      F*****+ + + + + + + + + + + + + + +GGFOOOGGFOOO			 ( (WWQZZ4'''''( ( ( ( ( ( ( ( ( ( ( ( ( ( (			 + +WWYY(*****+ + + + + + + + + + + + + + +     - - - - - - !## + + + + + + +w66***66***+ + + + + + + + + + + + + + + + + + + + + + + + + + +
 
U,	-	- 0 0%'' 	0 	0 	0 	0 	0 	0 	07vw///vw///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IIKKK	u0	1	1                 >>"$$$$>>s""""####??????c!!!! IIKKK   D      !## # # # # # # #w63'''6"""# # # # # # # # # # # # # # # # # # # # # # # # # # # # # #s    C""C&)C&D,,D03D0E22E69E6 "GGG"III!JJJ8-K77
LL!N;-M:(N:
N	NN	NNNO66O:=O:8,S77
TTc                 4  	K   t                      dfd d           d {V                      d          dk    sJ                                 d	k    sJ t                      5                                   d {V  d d d            n# 1 swxY w Y   t	          j        t          j                  5                                   d d d            n# 1 swxY w Y   t	          j        t          j                  5                      d
           d d d            n# 1 swxY w Y    d           d {V  t                      5                                   d {V dk    sJ 	 d d d            n# 1 swxY w Y   d	d	fd} t          j	                    4 d {V }|
                    |            |
                    |            d d d           d {V  n# 1 d {V swxY w Y   	dk    sJ t                      5                                   d {V  d d d            n# 1 swxY w Y                                    d {V dk    sJ                                  d {V dk    sJ t	          j        t          j                  5   d           d {V  d d d            n# 1 swxY w Y   j        J j        J j        J g dfd}dfd}dfd}t          |||          j        |u sJ j        |u sJ j        |u sJ                     d           d {V                                   d {V  t#                     d {V                                   g dk    sJ d S )Nr   r   r   r   c                   K   t                      5                      |            d {V  d d d            d S # 1 swxY w Y   d S rN   )rO   send_all)r   msss    r   do_send_allz*test_MemorySendStream.<locals>.do_send_allI  s      !! 	% 	%,,t$$$$$$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   ;??r   rd   r   s   23r   r   r   c                 f   K   	   d           d {V  d S # t           j        $ r	 dz  Y d S w xY w)N   xxxrd   )r   r   )r   resource_busy_counts   r   do_send_all_count_resourcebusyz=test_MemorySendStream.<locals>.do_send_all_count_resourcebusyc  sf      	%+f%%%%%%%%%%%& 	% 	% 	%1$	%s    00r   r    r   c                 j   K                                     dk    sJ                     d           d S )Nr   send_all_hook)get_data_nowaitr   )mss2r   s   r   r   z,test_MemorySendStream.<locals>.send_all_hook  s<      ##%%////o&&&&&r    c                 6   K                         d           d S )N"wait_send_all_might_not_block_hookr   r$   s   r   r   zAtest_MemorySendStream.<locals>.wait_send_all_might_not_block_hook  s       :;;;;;r    c                 2                          d           d S )N
close_hookr   r$   s   r   r   z)test_MemorySendStream.<locals>.close_hook  s    l#####r    r   )r   r   r   r   r   r*   )MemorySendStreamr   rO   wait_send_all_might_not_blockrP   rQ   r   r   get_datar+   r,   acloser   r   r   r   r   r   r   )
r   r/   r   r   r   r   r   r   r   r   s
        @@@@@r   test_MemorySendStreamr   F  s     


C% % % % % % +f

q!!T))))  E))))			 2 2//1111111112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 
u'	(	(                	u'	(	(    B                              +f

			 . .\\^^######v-----. . . . . . . . . . . . . . . % % % % % % % !## ; ; ; ; ; ; ;w9:::9:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; !####			  jjll               6))))3&&&&	u0	1	1 " "k&!!!!!!!!!" " " " " " " " " " " " " " "
 $$$1999>!!!F' ' ' ' ' ' '
< < < < < <$ $ $ $ $ $ 9: D ....26XXXXX?j((((
--



,
,
.
........
D
!
!!!!!!!!JJLLL         s~   0BBB C!!C%(C%
D,,D03D0!FFF1+G..
G8;G8H<<I I %KK
Kc                 (  K   t                      dfd}                     d            | d           d {V dk    sJ  | d	           d {V d
k    sJ                     d            | d            d {V dk    sJ t          t          j                  5  t          j                    4 d {V }|                    | d	           |                    | d	           d d d           d {V  n# 1 d {V swxY w Y   d d d            n# 1 swxY w Y   j        J                     d                                                                              | d	           d {V dk    sJ  | d	           d {V dk    sJ  | d	           d {V dk    sJ t          j
        t          j                  5                      d           d d d            n# 1 swxY w Y   dfd}g dfd}t          ||          j        |u sJ j        |u sJ                     d                               d	           d {V dk    sJ                     d	           d {V dk    sJ                     d	           d {V dk    sJ                     d           d _                            d	           d {V dk    sJ                     d           t                      5                                   d {V  d d d            n# 1 swxY w Y   dgk    sJ t          j
        t          j                  5                      d	           d {V  d d d            d S # 1 swxY w Y   d S )N	max_bytes
int | Noner   r   c                   K   t                      5                      |            d {V cd d d            S # 1 swxY w Y   d S rN   )rO   receive_some)r   mrss    r   do_receive_somez1test_MemoryReceiveStream.<locals>.do_receive_some  s      !! 	5 	5)))44444444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   :>>r   rd      ar   s   bcr   r    r   r   c                 6   K                         d           d S )Nr   )put_data)mrs2s   r   receive_some_hookz3test_MemoryReceiveStream.<locals>.receive_some_hook  s      fr    c                 2                          d           d S )Nclosedr   r$   s   r   r   z,test_MemoryReceiveStream.<locals>.close_hook  s    hr    s   yyys   yyyxxxr   s   zzzs   lost on closer   )r   r   r   r   r*   )MemoryReceiveStreamr   r   r   r   r+   r,   r   put_eofrP   rQ   r   r   r   rO   r   )r   r/   r   r   r   r   r   s       @@@r   test_MemoryReceiveStreamr     s     


C5 5 5 5 5 5 LL ########t++++ $$$$$$$$----LL &&&&&&&&&0000	U,	-	- 4 4%'' 	4 	4 	4 	4 	4 	4 	47333333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	44 4 4 4 4 4 4 4 4 4 4 4 4 4 4
  (((LLKKMMMKKMMM $$$$$$$$.... $$$$$$$$++++ $$$$$$$$++++	u0	1	1  V                    F            0*==D!%66666?j((((MM&""2&&&&&&&&)3333""2&&&&&&&&&0000""2&&&&&&&&&0000MM&!D""2&&&&&&&&&0000MM"###			  kkmm              hZ	u0	1	1 $ $#########$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $sl   "D<-C;)D;
D	DD		DDDG..G25G2L,,L03L0NNNc                   K   t                      } |                                  t          j        t          j                  5  |                     d           d {V dk    sJ 	 d d d            n# 1 swxY w Y   |                                  t          j        t          j                  5  |                     d           d d d            n# 1 swxY w Y   t                      }|                    d           |                                 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   r   rP   rQ   r   r   r   r   )r   r   s     r   test_MemoryRecvStream_closingr     s     


CIIKKK	u0	1	1 1 1%%b))))))))S000001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 IIKKK	u0	1	1  V                 DMM&JJLLL	u0	1	1 $ $#########$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s6   "A22A69A6/CCC1EE!Ec                   K   t                      } t                      }t          | |           |                     d           d {V  t          | |           |                    d           d {V dk    sJ |                     d           d {V  t          | |d          sJ |                    d           d {V dk    sJ t          | |d          sJ t          | |d          sJ t          | |d          rJ |                    d           d {V dk    sJ |                                  t          | |           |                    d           d {V dk    sJ d S )	Nr   r   r   rd   )r      4s   56r    )r   r   memory_stream_pumpr   r   r   )r   r   s     r   test_memory_stream_pumpr     s     


C


C sC   
,,v

sC   !!"%%%%%%%%////
,,v

c3!444444!!"%%%%%%%%----c3!444444c3!444444!#sa888888!!"%%%%%%%%....IIKKKsC   !!"%%%%%%%%,,,,,,r    c                   K   t                      \  } | j        J | j        J | j        J j        J |                     d           d {V                      d           d {V dk    sJ dfd}t          j                    4 d {V }|	                    |d           t                       d {V  |                     d           d {V  d d d           d {V  n# 1 d {V swxY w Y   t          j                    4 d {V }|	                    |d	           t                       d {V  |                                  d {V  d d d           d {V  n# 1 d {V swxY w Y   t                      \  } t          j                    4 d {V }|	                    |d	           t                       d {V  |                                  d d d           d {V  n# 1 d {V swxY w Y   t                      \  } | j        }d | _        |                     d
           d {V  dd}dfd}t          j                    4 d {V }|	                    ||           |	                    |           d d d           d {V  n# 1 d {V swxY w Y   || _        |                     d           d {V                      d           d {V dk    sJ d S )Nr   r   expectedr   r   r   c                N   K                        d           d {V | k    sJ d S Nr   r   )r   rs    r   receiverz1test_memory_stream_one_way_pair.<locals>.receiver  s<      ^^B''''''''8333333r    r   r    r   r/   r   c                d   K   t                       d {V  | j                                         d S rN   )r#   r-   r.   )r/   s    r   cancel_after_idlez:test_memory_stream_one_way_pair.<locals>.cancel_after_idle.  s?      $&&&&&&&&&##%%%%%r    c                    K   t          j        t          j                  5                       d           d {V  d d d            d S # 1 swxY w Y   d S r   )rP   rQ   r   r(   r   )r   s   r   check_for_cancelz9test_memory_stream_one_way_pair.<locals>.check_for_cancel2  s      ]5?++ 	% 	% ..$$$$$$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   AAAr   s   456789)r   r   r   r   )r/   r   r   r   r*   )memory_stream_one_way_pairr   r   r   r   r   r   r   r+   r,   r#   r   r   )sr   r/   oldr   r   r   s         @r   test_memory_stream_one_way_pairr   	  s     %''DAq?&&&/777<###&&&
**V

########v----4 4 4 4 4 4 !## ! ! ! ! ! ! !w8V,,,$&&&&&&&&&jj         ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !##       w8S)))$&&&&&&&&&hhjj                          
 &''DAq!##       w8S)))$&&&&&&&&&				                          
 &''DAq
/CAO
**V

& & & &% % % % % % !## - - - - - - -w,g666+,,,- - - - - - - - - - - - - - - - - - - - - - - - - - - AO
**V

########y000000sJ   AC,,
C69C6AE--
E7:E7(?G99
HH',J%%
J/2J/c                 ~  K   t                      \                      d           d {V                      d           d {V                      d           d {V dk    sJ                     d           d {V dk    sJ                                  d {V                      d           d {V dk    sJ 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 )
Nr   r   r   r    r   r   c                 j   K   t                       d {V                       d           d {V  d S )Nr   )r#   r   )bs   r   senderz'test_memory_stream_pair.<locals>.senderK  sO      $&&&&&&&&&jj           r    c                 N   K                         d           d {V dk    sJ d S )Nr   r   r   )as   r   r   z)test_memory_stream_pair.<locals>.receiverO  s<      ^^B''''''''6111111r    r*   )memory_stream_pairr   r   send_eofr   r+   r,   )r   r   r/   r   r   s      @@r   test_memory_stream_pairr   A  s<     DAq
**V


**V

########v----########v----
**,,########s****! ! ! ! ! !2 2 2 2 2 2 !## # # # # # # #w8$$$6"""# # # # # # # # # # # # # # # # # # # # # # # # # # # # # #s   .+D,,
D69D6c                 r   K   dd} t          | d            d {V  dd}t          |d            d {V  d S )Nr   ,tuple[MemorySendStream, MemoryReceiveStream]c                 "   K   t                      S rN   )r   rk   r    r   one_way_stream_makerzDtest_memory_streams_with_generic_tests.<locals>.one_way_stream_makerX  s      )+++r    qtuple[StapledStream[MemorySendStream, MemoryReceiveStream], StapledStream[MemorySendStream, MemoryReceiveStream]]c                 "   K   t                      S rN   )r   rk   r    r   half_closeable_stream_makerzKtest_memory_streams_with_generic_tests.<locals>.half_closeable_stream_maker]  s       "###r    )r   r   )r   r   )check_one_way_streamcheck_half_closeable_stream)r   r   s     r   &test_memory_streams_with_generic_testsr   W  s~      , , , , 3T
:
::::::::$ $ $ $ &&A4
H
HHHHHHHHHHr    c                 r   K   dd} t          | |            d {V  dd}t          ||           d {V  d S )Nr    tuple[SendStream, ReceiveStream]c                 "   K   t                      S rN   )lockstep_stream_one_way_pairrk   r    r   r   zFtest_lockstep_streams_with_generic_tests.<locals>.one_way_stream_makerg  s      +---r    Ytuple[StapledStream[SendStream, ReceiveStream], StapledStream[SendStream, ReceiveStream]]c                 "   K   t                      S rN   )lockstep_stream_pairrk   r    r   two_way_stream_makerzFtest_lockstep_streams_with_generic_tests.<locals>.two_way_stream_makerl  s       $%%%r    )r   r   )r   r   )r   check_two_way_stream)r   r   s     r   (test_lockstep_streams_with_generic_testsr   f  s      . . . . 35I
J
JJJJJJJJ& & & & 35I
J
JJJJJJJJJJr    c                   K   dd} t          j                    }|                    d           d {V  |                    d            | t	          |                     d {V  t          j                    }|                    d           d {V  |                    d            | t	          |                     d {V  t
          rmt          j        t           j        	          }|                    d
           d {V  |                    d            | t	          |                     d {V  t          t           d          rt          j        t           j        	          }t          j
                    5 }| d}|                    |           d {V  |                    d            | t	          |                     d {V  d d d            d S # 1 swxY w Y   d S d S )Nlistenerr   r   r   c                  K   | 4 d {V  t          |            d {V }|4 d {V  |                                  d {V }|4 d {V  |                    d           d {V  |                    d           d {V dk    sJ 	 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   d d d           d {V  d S # 1 d {V swxY w Y   d S )N   xrd   )open_stream_to_socket_listeneracceptr   r   )r   client_streamserver_streams      r   checkz2test_open_stream_to_socket_listener.<locals>.checkv  s:      	G 	G 	G 	G 	G 	G 	G 	G"@"J"JJJJJJJM$ G G G G G G G G&.oo&7&7 7 7 7 7 7 7( G G G G G G G G'00666666666!.!;!;A!>!>>>>>>>$FFFFFG G G G G G G G G G G G G G G G G G G G G G G G G G GG G G G G G G G G G G G G G G G G G G G G G G G G G G	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	GsX   C##B?=B
B?
B&&B?)B&*B?-C#?
C			C#C		C##
C-0C-)z	127.0.0.1r   r   )z0.0.0.0r   )family)z::r   AF_UNIXz/sock)r   r   r   r   )tsocketr	   bindlistenr   r
   AF_INET6hasattrr  tempfileTemporaryDirectory)r   socktmpdirpaths       r   #test_open_stream_to_socket_listenerr  u  s~     G G G G >D
))$
%
%%%%%%%%KKOOO
%t$$
%
%%%%%%%% >D
))N
#
########KKOOO
%t$$
%
%%%%%%%%  *~W%5666ii	"""""""""BeN4(()))))))))w	"" 	.~W_555 (** 	.f###D))D//!!!!!!!KKOOO%t,,---------		. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.	. 	.s   AG%%G),G)c                     dd} t          j        t          d          5   t          |           t	                      t	          d	
                     d d d            d S # 1 swxY w Y   d S )Nr1   r^   autojump_clockr   r   c                
   K   d S rN   rk   r1   r  s     r   busy_kitchenz$test_trio_test.<locals>.busy_kitchen  s      sr    z"^too many clocks spoil the broth!$)matchr   )autojump_thresholdr  )r1   r^   r  r^   r   r   )rP   rQ   
ValueError	trio_testr2   )r  s    r   test_trio_testr    s        
z)M	N	N	N 
 
	, {{9PQ3R3R3R	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   5A""A&)A&r*   )r1   r2   r   r   )rK   rL   r   r   )1
__future__r   r  typingr   rP   trio.testingr    r   r   r	   r  _core._tests.tutilr
   _highlevel_genericr   r   _highlevel_socketr   testingtesting._check_streamsr   testing._memory_streamsr   trior   trio.abcr   r   r0   r;   rJ   rX   r[   rr   rz   r~   r   r   r   r   r   r   r   r   r   r  r  rk   r    r   <module>r$     s   " " " " " "               $ $ $ $ $ $ . . . . . . . . . . . . . . . . A A A A A A A A . . . . . .     3 3 3 3 3 3 9 9 9 9 9 9 322222222   @5 5 5 5"$ $ $ $T1 1 1 145 5 5 5<# # # #L   <
 
 
 
E# E# E# E#PW W W Wt:$ :$ :$ :$z$ $ $ $(- - - -051 51 51 51p# # # #,I I I IK K K K'. '. '. '.T
 
 
 
 
 
r    