a ze@snddlZddlZddlZddlZddlZddlmZejZGdddZ Gdddej Z e dkrje dS)N)supportc@s,eZdZddZddZddZddZd S) TimercCst|_d|_d|_dSNr) threading Condition_cond_time_stopselfr C/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_sched.py__init__ s zTimer.__init__cCs0|j|jWdS1s"0YdSN)rrr r r r timesz Timer.timecCsd|dks J|j>||j7}|j|kr<|j|_|jq||_Wdn1sV0YdSr)rrr waitr tr r r sleeps    z Timer.sleepcCsN|dks J|j(|j|7_|jWdn1s@0YdSr)rr notify_allrr r r advance!s z Timer.advanceN)__name__ __module__ __qualname__rrrrr r r r r s rc@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)TestCasecsXgfdd}ttjtj}dD]}||d||f}q$||gddS)Ncs |Srappendxlr r ,z%TestCase.test_enter..)?皙?333333?皙?皙?)r'r&r%r$r#sched schedulerrrenterrun assertEqualr funr+rzr rr test_enter*s zTestCase.test_entercsXgfdd}ttjtj}dD]}||d||f}q$||gddS)Ncs |Srrrrr r r!5r"z(TestCase.test_enterabs..皙?{Gz?Q?{Gz?{Gz?r()r8r7r6r5r4r*r+rrenterabsr-r.r/r rr test_enterabs3s zTestCase.test_enterabscCstt}|j}t}t|j|j}|dd|d|dd|dt j |j d}| | d||jtdd||dD]}||dd||f}q| d||jtdd||jtdd||| d||jtdd ||| d||jtdd ||| d t|||||d dS) Nr(r(r=targettimeout)rErCrD)queueQueueputrr*r+rrr,rThreadr-startrr.getTIMEOUT assertTrueemptyr join_thread)r qr0timerr+rrr1r r r test_enter_concurrent<s6      zTestCase.test_enter_concurrentcsXgfdd}ttjtj}dD]}|d|||f}q$||gddS)Ncs |Srrrrr r r![r"z(TestCase.test_priority..)r(rEr=rCrDr8r9)r r0r+priorityr1r rr test_priorityYs zTestCase.test_priorityc sgfdd}ttjtj}t}||dd|d}||dd|d}||dd|d }||d d|d }||d d|d }||||||gddS)Ncs |Srrrrr r r!dr"z&TestCase.test_cancel..r8r()r8r7)r7r6)r6r5)r5r4)r4)r7r6r5)r*r+rrr:cancelr-r.) r r0r+nowevent1event2event3event4event5r rr test_cancelbs   zTestCase.test_cancelc Cst}|j}t}t|j|j}|}||dd|d}||dd|d}||dd|d}||dd|d} ||d d|d } t j |j d } | | d||jtd d|||||| | d||| d||jtd d ||| d||jtd d||| d t| ||||ddS)Nr(r<rE)rErC)rCrD)rDr=r>r?rArF)rGrHrIrr*r+rrr:rrJr-rKrr.rLrMrNrOrVrrP) r rQr0rRr+rWrXrYr[r\rZrr r r test_cancel_concurrentqs:        zTestCase.test_cancel_concurrentcsrgfdd}ttjtj}||dD]}||d||f}q2|||||dS)Ncs |Srrrrr r r!r"z%TestCase.test_empty..r3r() r*r+rrrNrOr:Z assertFalser-r/r rr test_emptys zTestCase.test_emptyc sgfdd}ttjtj}t}||dd|}||dd|}||dd|}||dd|}||dd|}||j|||||gdS) Ncs |Srrrrr r r!r"z%TestCase.test_queue..r4r(r8r7r5r6)r*r+rrr:r.rG) r r0r+rWZe5e1e2Ze4Ze3r rr test_queues zTestCase.test_queuec sgfdd}t}ttjtj}||d||j|d|dd|j|d|dd|j|d|dddid ||d ifdifdifdddifgdS) Ncs||fdSrrabseqr r r0sz&TestCase.test_args_kwargs..funr()r(rE)argumentrcZfoor=)rhkwargsr )rr*r+rr:r-ZassertCountEqual)r r0rWr+r rfr test_args_kwargss  zTestCase.test_args_kwargscsXgfdd}ttjtj}dD]}||d||fq$|jdd|gdS)Ncs |Srrrrr r r!r"z0TestCase.test_run_non_blocking..) r(F)blockingr))r r0r+rr rr test_run_non_blockings  zTestCase.test_run_non_blockingN) rrrr2r;rSrUr]r^r_rbrjrqr r r r r(s    r__main__) rGr*rrZunittesttestrZ SHORT_TIMEOUTrMrrrmainr r r r s