
    iv                         d dl Z d dlmZ ddlmZ ddlmZ ddlmZ dZdZ	eZ
d	Zej        rd
ZdZedz  ZeZ G d de          Z G d dee          Z G d dee          ZdS )    N)perf_counter   )sysinfo)	leakcheck)TestCasegMbP?g{Gz?g)\(?g      ?g?g       @c                   :    e Zd ZeZeZeZd Z		 	 ddZ
ddZd ZdS )_DelayWaitMixinc                      t          d          )Nzoverride me in subclass)NotImplementedError)selftimeouts     @/usr/local/lib/python3.11/dist-packages/gevent/testing/timing.pywaitz_DelayWaitMixin.wait2   s    !";<<<    Nc                 l    |s| j         n|}|s| j        n|}|                     |||z
  ||z              d S N)_default_delay_min_adj_default_delay_max_adjassertTimeWithinRange)r   r   delaydelay_min_adjdelay_max_adjs        r   _check_delay_boundsz#_DelayWaitMixin._check_delay_bounds5   s]     <I[33m;H[33m""5#*]#:#*]#:	< 	< 	< 	< 	<r   c                    || j         }t          |d|          }t          j                    j                                         t                      }	 |                     |          }|                     |t                      |z
  | j	        | j
                   n6# |                     |t                      |z
  | j	        | j
                   w xY w|S )Nseconds)_default_wait_timeoutgetattrgeventget_hubloop
update_nowr   r   r   r   r   )r   r   r   startresults        r   _wait_and_checkz_DelayWaitMixin._wait_and_check>   s    ?0G '9g66((***	BYYw''F$$Wlnnu.D%)%@%)%@B B B BD$$Wlnnu.D%)%@%)%@B B B B s   B 3Cc                 ~   t           j                            t          d          }	 |                     t           j                  5 }|                     d           d d d            n# 1 swxY w Y   |                     |j        |           |                                 d S # |                                 w xY w)NF)refr   r   )	r   Timeout	start_newSMALLEST_RELIABLE_DELAYassertRaisesr   assertIs	exceptionclose)r   r   excs      r   test_outer_timeout_is_not_lostz._DelayWaitMixin.test_outer_timeout_is_not_lostP   s    .**+B*NN	""6>22 %c		!	$$$% % % % % % % % % % % % % % %MM#-111MMOOOOOGMMOOOOs/   B& A*B& *A..B& 1A.2B& &B<)NNr   )__name__
__module____qualname__
SMALL_TICKr   SMALL_TICK_MIN_ADJr   SMALL_TICK_MAX_ADJr   r   r   r$   r0    r   r   r	   r	   ,   st        &//= = = +/*.< < < <   $    r   r	   c                   :    e Zd ZeZeZeZe	j
        d             ZdS )AbstractGenericWaitTestCasec                 X    |                                  }|                     |           d S r   )r$   assertIsNone)r   r#   s     r   test_returns_none_after_timeoutz;AbstractGenericWaitTestCase.test_returns_none_after_timeouta   s-    %%''&!!!!!r   N)r1   r2   r3   
LARGE_TICKr   LARGE_TICK_MIN_ADJr   LARGE_TICK_MAX_ADJr   r   ignores_leakcheckr<   r7   r   r   r9   r9   Z   sE         '// " " ! " " "r   r9   c                   4    e Zd Zej        Zd Zd Zd Zd ZdS )AbstractGenericGetTestCasec                     d S r   r7   r   s    r   cleanupz"AbstractGenericGetTestCase.cleanupm   s    r   c                     |                      | j                  5  |                     t                     d d d            n# 1 swxY w Y   |                                  d S Nr'   )r+   r(   r$   r4   rE   rD   s    r   test_raises_timeout_numberz5AbstractGenericGetTestCase.test_raises_timeout_numberp   s    t|,, 	5 	5   444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	s   AA
Ac                 P   t          j        | j                  }	 |                     |           n2# t           j        $ r }|                     ||           Y d }~nd }~ww xY w|                                 n# |                                 w xY w|                                  d S rG   )r   r(   r   r$   r,   r.   rE   )r   r   exs      r   test_raises_timeout_Timeoutz6AbstractGenericGetTestCase.test_raises_timeout_Timeoutv   s    .!;<<	   1111~ 	' 	' 	'MM"g&&&&&&&&	' MMOOOOGMMOOOOs,   2 A9 A!AA9 A!!A9 9Bc                    t          d          }t          j        | j        |          }	 |                     t                     5 }|                     |           |                     |j        |           |                                  d d d            n# 1 swxY w Y   |	                                 d S # |	                                 w xY w)Nzexpected error)r-   r'   )
RuntimeErrorr   r(   r   r+   r$   r,   r-   rE   r.   )r   errorr   r/   s       r   *test_raises_timeout_Timeout_exc_customizedzEAbstractGenericGetTestCase.test_raises_timeout_Timeout_exc_customized   s    -...!;uMMM	""<00 C$$W$555cmU333	               MMOOOOOGMMOOOOs0   B9 ABB9 BB9 B B9 9CN)	r1   r2   r3   r   r(   rE   rH   rK   rO   r7   r   r   rB   rB   h   sY         nG      
 
 
 
 
r   rB   )r   gevent._compatr    r   r   testcaser   r*   r4   r5   r6   RUNNING_ON_APPVEYORr=   r>   r?   objectr	   r9   rB   r7   r   r   <module>rU      s'  *  ' ' ' ' ' '                   
,  
   
#% ' + + + + +f + + +\" " " " "/8 " " "" " " " "( " " " " "r   