a ze@snddlZddlZddlZddlZddlZddlmZejZGdddZ Gdddej Z e dkrje dS)N)supportc@s,eZdZddZddZddZddZd S) TimercCst|_d|_d|_dS)Nr) 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.timecCsX|j>||j7}|j|kr0|j|_|jq||_Wdn1sJ0YdSr)rrrwaitr tr r r sleeps    z Timer.sleepcCsB|j(|j|7_|jWdn1s40YdSr)rr notify_allrr r r advance!sz Timer.advanceN)__name__ __module__ __qualname__r rrrr 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')r7r6r5r4r3r)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)rDrBrC)queueQueueputrr)r*rrr+rThreadr,startrr-getTIMEOUT assertTrueemptyr join_thread)r qr/timerr*rrr0r 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'rDr<rBrCr7r8)r r/r*priorityr0r 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..r7r')r7r6)r6r5)r5r4)r4r3)r3)r6r5r4)r)r*rrr9cancelr,r-) r r/r*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;rD)rDrB)rBrC)rCr<r=r>r@rE)rFrGrHrr)r*rrr9rrIr,rJrr-rKrLrMrNrUrrO) r rPr/rQr*rVrWrXrZr[rYrr r r test_cancel_concurrentqs:        zTestCase.test_cancel_concurrentcsrgfdd}ttjtj}||dD]}||d||f}q2|||||dS)Ncs |Srrrrr r r r!z%TestCase.test_empty..r2r') r)r*rrrMrNr9Z 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..r3r'r7r6r4r5)r)r*rrr9r-rF) r r/r*rVZe5e1e2Ze4Ze3r rr test_queues zTestCase.test_queuec sgfdd}t}ttjtj}||d||j|d|dd|j|d|dd|j|d|dddid ||d ifdifdifdddifgdS) Ncs||fdSrrabseqr r r/sz&TestCase.test_args_kwargs..funr')r'rD)argumentrbZfoor<)rgkwargsr )rr)r*rr9r,ZassertCountEqual)r r/rVr*r rer 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 r/r*rr rr test_run_non_blockings  zTestCase.test_run_non_blockingN) rrrr1r:rRrTr\r]r^rarirpr r r r r(s    r__main__) rFr)rrZunittesttestrZ SHORT_TIMEOUTrLrrrmainr r r r s