
    0hh                         S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJr  \R                  r
 " S S5      r " S S\R                  5      r\S:X  a  \R                  " 5         gg)	    N)support)threading_helperc                   ,    \ rS rSrS rS rS rS rSrg)Timer   c                 T    [         R                  " 5       U l        SU l        SU l        g )Nr   )	threading	Condition_cond_time_stopselfs    8/opt/python-3.13.8/usr/lib/python3.13/test/test_sched.py__init__Timer.__init__   s     ((*


    c                 h    U R                      U R                  sS S S 5        $ ! , (       d  f       g = fN)r   r   r   s    r   time
Timer.time   s    ZZ:: ZZs   #
1c                    U R                      XR                  -  nU R                  U:  a=  U R                  U l        U R                   R                  5         U R                  U:  a  M=  Xl        S S S 5        g ! , (       d  f       g = fr   )r   r   r   waitr   ts     r   sleepTimer.sleep   sV    ZZOA**q.!ZZ


! **q. J ZZs   AA8)A88
Bc                     U R                      U =R                  U-  sl        U R                   R                  5         S S S 5        g ! , (       d  f       g = fr   )r   r   
notify_allr   s     r   advanceTimer.advance"   s0    ZZJJ!OJJJ!!# ZZs   0A
A)r   r   r   N)	__name__
__module____qualname____firstlineno__r   r   r   r    __static_attributes__ r   r   r   r      s    

$r   r   c                       \ rS rSrS rS r\R                  " 5       S 5       rS r	S r
\R                  " 5       S 5       rS rS	 rS
 rS rS rSrg)TestCase)   c                    ^ / mU4S jn[         R                  " [        R                  [        R                  5      nS H  nUR	                  USX45      nM     UR                  5         U R                  T/ SQ5        g )Nc                 &   > TR                  U 5      $ r   appendxls    r   <lambda>%TestCase.test_enter.<locals>.<lambda>-       r   )      ?皙?333333?皙?皙?   )r9   r8   r7   r6   r5   sched	schedulerr   r   enterrunassertEqualr   funr=   r0   zr1   s        @r   
test_enterTestCase.test_enter+   s]    #OODIItzz:	*A1c40A +56r   c                    ^ / mU4S jn[         R                  " [        R                  [        R                  5      nS H  nUR	                  USX45      nM     UR                  5         U R                  T/ SQ5        g )Nc                 &   > TR                  U 5      $ r   r-   r/   s    r   r2   (TestCase.test_enterabs.<locals>.<lambda>6   r4   r   皙?{Gz?Q?{Gz?{Gz?r:   )rN   rM   rL   rK   rJ   )r<   r=   r   r   enterabsr?   r@   rA   s        @r   test_enterabsTestCase.test_enterabs4   s_    #OODIItzz:	/A""1ad3A 0:;r   c                 F   [         R                  " 5       nUR                  n[        5       n[        R
                  " UR                  UR                  5      nUR                  SSUS5        UR                  SSUS5        [        R                  " UR                  S9nUR                  5         UR                  S5        U R                  UR                  [         S9S5        U R#                  UR%                  5       5        S H  nUR                  US-
  SX&45      nM     UR                  S5        U R                  UR                  [         S9S5        U R                  UR                  [         S9S5        U R#                  UR%                  5       5        UR                  S5        U R                  UR                  [         S9S	5        U R#                  UR%                  5       5        UR                  S5        U R                  UR                  [         S9S
5        U R#                  UR%                  5       5        UR                  S5        [&        R(                  " U5        U R#                  UR%                  5       5        U R                  UR                  5       S
5        g )Nr:   r:      rT   targettimeout)         r\   rZ   r[     )queueQueueputr   r<   r=   r   r   r>   r	   Threadr?   startr    r@   getTIMEOUT
assertTrueemptyr   join_thread)r   qrB   timerr=   r   r0   rC   s           r   test_enter_concurrentTestCase.test_enter_concurrent=   s   KKMeeOOEJJ<	1c4(1c4(IMM2		aw/3	"AAq#t4A aw/3w/3	"aw/3	"aw/3	"d$$Q'	"q)r   c           	        ^ / mU4S jn[         R                  " [        R                  [        R                  5      n/ SQ/ SQ4/ SQ/ SQ4/ SQ/ SQ4/ SQ/ SQ4/nU H  u  pEU R	                  XES9   U H  nUR                  SXaU45        M     UR                  5         U R                  TU5        U R                  UR                  5       5        TR                  5         S S S 5        M     g ! , (       d  f       M  = f)	Nc                 &   > TR                  U 5      $ r   r-   r/   s    r   r2   (TestCase.test_priority.<locals>.<lambda>]   r4   r   )r:   r\   rT   rZ   r[   )r[   rZ   rT   r\   r:   )r\   r[   rT   r:   rZ   )r:   r\   rT   r\   r:   )r:   r:   r\   r\   rT   )
prioritiesexpectedrN   )r<   r=   r   r   subTestrO   r?   r@   re   rf   clear)r   rB   r=   casesro   rp   priorityr1   s          @r   test_priorityTestCase.test_priority[   s    #OODIItzz:	 o.o.o.o.	
 %* JG *H&&tXXKH !+  H- 	 12	 HG %*GGs   1A/C--
C<	c                   ^	 / m	U	4S jn[         R                  " [        R                  [        R                  5      n[        R                  " 5       nUR	                  US-   SUS5      nUR	                  US-   SUS5      nUR	                  US-   SUS5      nUR	                  US	-   SUS
5      nUR	                  US-   SUS5      nUR                  U5        UR                  U5        UR                  5         U R                  T	/ SQ5        g )Nc                 &   > TR                  U 5      $ r   r-   r/   s    r   r2   &TestCase.test_cancel.<locals>.<lambda>s   r4   r   rN   r:   )rN   rM   )rM   rL   )rL   rK   )rK   rJ   )rJ   )rM   rL   rK   )r<   r=   r   r   rO   cancelr?   r@   )
r   rB   r=   nowevent1event2event3event4event5r1   s
            @r   test_cancelTestCase.test_cancelq   s    #OODIItzz:	iik##C$J3@##C$J3@##C$J3@##C$J3@##C$J3@  ./r   c                 t   [         R                  " 5       nUR                  n[        5       n[        R
                  " UR                  UR                  5      nUR                  5       nUR                  US-   SUS5      nUR                  US-   SUS5      nUR                  US-   SUS5      nUR                  US-   SUS5      n	UR                  US	-   SUS
5      n
[        R                  " UR                  S9nUR                  5         UR                  S5        U R                  UR                  [         S9S5        U R#                  UR%                  5       5        UR'                  U5        UR'                  U	5        UR                  S5        U R#                  UR%                  5       5        UR                  S5        U R                  UR                  [         S9S	5        U R#                  UR%                  5       5        UR                  S5        U R                  UR                  [         S9S5        U R#                  UR%                  5       5        UR                  S5        [(        R*                  " U5        U R#                  UR%                  5       5        U R                  UR                  5       S5        g )Nr:   rS   r\   )r\   rZ   )rZ   r[   )r[   rT   rU   rV   rX   r]   )r^   r_   r`   r   r<   r=   r   r   rO   r	   ra   r?   rb   r    r@   rc   rd   re   rf   rz   r   rg   )r   rh   rB   ri   r=   r{   r|   r}   r   r   r~   r   s               r   test_cancel_concurrentTestCase.test_cancel_concurrent   s   KKMeeOOEJJ<	jjl##C!GQT:##C!GQT:##C!GQT:##C!GQT:##C!GQT:IMM2		aw/3	"  a	"aw/3	"aw/3	"d$$Q'	"q)r   c                 P   / n[         R                  " 5       nUR                  SSUR                  S5        UR                  SSUR                  S5      nUR                  SSUR                  S5        UR	                  U5        UR                  5         U R                  USS/5        g )Nr:   )a)b)cr   r   )r<   r=   rO   r.   rz   r?   r@   )r   eventsr=   r   s       r   test_cancel_correct_event"TestCase.test_cancel_correct_event   s    OO%	1a7q!V]]F;1a7#s,r   c                   ^ / mU4S jn[         R                  " [        R                  [        R                  5      nU R	                  UR                  5       5        S H  nUR                  USX45      nM     U R                  UR                  5       5        UR                  5         U R	                  UR                  5       5        g )Nc                 &   > TR                  U 5      $ r   r-   r/   s    r   r2   %TestCase.test_empty.<locals>.<lambda>   r4   r   rI   r:   )	r<   r=   r   r   re   rf   rO   assertFalser?   rA   s        @r   
test_emptyTestCase.test_empty   s    #OODIItzz:		)*/A""1ad3A 0*+	)*r   c                   ^	 / m	U	4S jn[         R                  " [        R                  [        R                  5      n[        R                  " 5       nUR	                  US-   SU5      nUR	                  US-   SU5      nUR	                  US-   SU5      nUR	                  US-   SU5      nUR	                  US-   SU5      nU R                  UR                  XVXU/5        g )Nc                 &   > TR                  U 5      $ r   r-   r/   s    r   r2   %TestCase.test_queue.<locals>.<lambda>   r4   r   rJ   r:   rN   rM   rK   rL   )r<   r=   r   r   rO   r@   r^   )
r   rB   r=   r{   e5e1e2e4e3r1   s
            @r   
test_queueTestCase.test_queue   s    #OODIItzz:	iikd
As3d
As3d
As3d
As3d
As3 	222*>?r   c           	        ^ / mU4S jn[         R                   " 5       n[        R                  " [         R                   [         R                  5      nUR	                  USU5        UR	                  USUSS9  UR	                  USUSS9  UR	                  USUSSS0S9  UR                  5         U R                  TS	0 4S0 4S0 4SSS04/5        g )
Nc                  *   > TR                  X45        g r   r-   )r   r   seqs     r   rB   &TestCase.test_args_kwargs.<locals>.fun   s    JJvr   r:   )r:   r\   )argument)r   r   foorT   )r   kwargsr'   )r   r<   r=   r   rO   r?   assertCountEqual)r   rB   r{   r=   r   s       @r   test_args_kwargsTestCase.test_args_kwargs   s    	 iikOODIItzz:	33'33833<33
KcHRLeQZ 	$
 	r   c                    ^ / mU4S jn[         R                  " [        R                  [        R                  5      nS H  nUR	                  USX45        M     UR                  SS9  U R                  T/ 5        g )Nc                 &   > TR                  U 5      $ r   r-   r/   s    r   r2   0TestCase.test_run_non_blocking.<locals>.<lambda>   r4   r   )
   	            r:   F)blockingr;   )r   rB   r=   r0   r1   s       @r   test_run_non_blockingTestCase.test_run_non_blocking   s_    #OODIItzz:	!AOOAq#t, "u%Br   r'   N)r"   r#   r$   r%   rD   rP   r   requires_working_threadingrj   ru   r   r   r   r   r   r   r   r&   r'   r   r   r)   r)   )   sj    7< 002* 3*:,0 002* 3*>	-	+@& r   r)   __main__)r^   r<   r	   r   unittesttestr   test.supportr   SHORT_TIMEOUTrd   r   r)   r"   mainr'   r   r   <module>r      s^          ) 

$ $8u x   u p zMMO r   