
    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S:  d   e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   sa    AvvZZOA**q.!ZZ


! **q. J ZZs   AB 1B  
Bc                     US:  d   e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"   s;    Avv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?皙?皙?   )r:   r9   r8   r7   r6   sched	schedulerr   r   enterrunassertEqualr   funr>   r1   zr2   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.   r0   s    r   r3   (TestCase.test_enterabs.<locals>.<lambda>6   r5   r   皙?{Gz?Q?{Gz?{Gz?r;   )rO   rN   rM   rL   rK   )r=   r>   r   r   enterabsr@   rA   rB   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;      rU   targettimeout)         r]   r[   r\     )queueQueueputr   r=   r>   r   r   r?   r
   Threadr@   startr!   rA   getTIMEOUT
assertTrueemptyr   join_thread)r   qrC   timerr>   r   r1   rD   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.   r0   s    r   r3   (TestCase.test_priority.<locals>.<lambda>]   r5   r   )r;   r]   rU   r[   r\   )r\   r[   rU   r]   r;   )r]   r\   rU   r;   r[   )r;   r]   rU   r]   r;   )r;   r;   r]   r]   rU   )
prioritiesexpectedrO   )r=   r>   r   r   subTestrP   r@   rA   rf   rg   clear)r   rC   r>   casesrp   rq   priorityr2   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.   r0   s    r   r3   &TestCase.test_cancel.<locals>.<lambda>s   r5   r   rO   r;   )rO   rN   )rN   rM   )rM   rL   )rL   rK   )rK   )rN   rM   rL   )r=   r>   r   r   rP   cancelr@   rA   )
r   rC   r>   nowevent1event2event3event4event5r2   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;   rT   r]   )r]   r[   )r[   r\   )r\   rU   rV   rW   rY   r^   )r_   r`   ra   r   r=   r>   r   r   rP   r
   rb   r@   rc   r!   rA   rd   re   rf   rg   r{   r   rh   )r   ri   rC   rj   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>   rP   r/   r{   r@   rA   )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.   r0   s    r   r3   %TestCase.test_empty.<locals>.<lambda>   r5   r   rJ   r;   )	r=   r>   r   r   rf   rg   rP   assertFalser@   rB   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.   r0   s    r   r3   %TestCase.test_queue.<locals>.<lambda>   r5   r   rK   r;   rO   rN   rL   rM   )r=   r>   r   r   rP   rA   r_   )
r   rC   r>   r|   e5e1e2e4e3r2   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   rC   &TestCase.test_args_kwargs.<locals>.fun   s    JJvr   r;   )r;   r]   )argument)r   r   foorU   )r   kwargsr(   )r   r=   r>   r   rP   r@   assertCountEqual)r   rC   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.   r0   s    r   r3   0TestCase.test_run_non_blocking.<locals>.<lambda>   r5   r   )
   	            r;   F)blockingr<   )r   rC   r>   r1   r2   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&   rE   rQ   r   requires_working_threadingrk   rv   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_TIMEOUTre   r   r*   r#   mainr(   r   r   <module>r      s^          ) 

$ $8u x   u p zMMO r   