a ze#@sjddlZddlZddlZddlZddlZddlZeedsDedGdddejZ e dkrfe dS)Nkqueueztest works only on BSDc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS) TestKQueuecCsTt}||dk|||j |||j|t|jdSNr)selectr assertTruefilenoclosedclose assertRaises ValueError)selfkqrD/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_kqueue.pytest_create_queues  zTestKQueue.test_create_queuec Cs&ddlm}m}m}m}ttjtj}| tj |t |}t d}| |j|| |jt j| |jt j| |jd| |jd| |jd| ||||||||k|||k||||fD]4}|t||d|t||d|t||dqt |t j}| |j|| |jt j| |jt j| |jd| |jd| |jd| |||||t |t jt j}| |j|| |jt j| |jt j| |jd| |jd| |jd| |||||t ddddd d }| |jd| |jd| |jd| |jd| |jd | |jd | |||||d } t | ddd| d| }| |j| | |jd| |jd| |jd| |j| d| |j| | |||||d } t dd| }| |jd| |jd| |j| | |jd| |jd| |jd| |||||d } t ddd| }| |jd| |jd| |jd| |j| | |jd| |jd| |||||dS)Nr)ltlegtgeieviil)operatorrrrrosopendevnullO_WRONLY addCleanupr rkevent assertEqualidentfilterKQ_FILTER_READflags KQ_EV_ADDZfflagsdataZudataZassertNotEqualrr TypeErrorKQ_FILTER_WRITEZ KQ_EV_ONESHOT) r rrrrfdrotheropZbignumrrrtest_create_events               zTestKQueue.test_create_eventc Cstd}t}|dz|d|dfWn8tyn}z ||jdtj WYd}~n d}~00| \}}t }t j |}t |t jt jt jB}||gdt |t jt jt jB}||gdt |t jt jt jB}||gdt |t jt jt jB}||gd|ddd} tdd| D} || t|t jf|t jfg|d |d td D]2} |ddd} t| dkrqtd q|d tdd| D} || t|t jf|t jf|t jf|t jfgt |t jt j}||gdt |t jt j}||gdt |t jt j}||gdd|gdd} tdd| D} || t|t jfg|||dS)N) 127.0.0.1rFr0rrrcss|]}|j|jfVqdSNr$r%.0errr z.TestKQueue.test_queue_event..sHello!sworld!!! g?z'timeout waiting for event notificationscss|]}|j|jfVqdSr1r2r3rrrr6r7gGz?css|]}|j|jfVqdSr1r2r3rrrr6r7)socket create_server setblockingconnect getsocknameOSErrorr#argserrnoZ EINPROGRESSacceptrrfromfdrr"r+r( KQ_EV_ENABLEcontrolr&setsendrangelentimesleepZfailZ KQ_EV_DELETEr ) r Z serverSocketclientr5Zserveraddrr Zkq2reventsirrrtest_queue_eventps  *                       zTestKQueue.test_queue_eventcCst}t\}}|dt|tjtjtjB}t|tjtjtjB}| ||gdd}| || |dj tj @|||djd|||dS)Nsfoorr)rrr9 socketpairrFr"r&r(rCrDr assertFalser'Z KQ_EV_ERRORr#recvr)r )r r abZevent1Zevent2rrrrtestPairs   zTestKQueue.testPaircst}t\}}t|tjtjtjB|gd|fdGfddd}||d|t gd| | | dS)Nrcs eZdZddZfddZdS)z+TestKQueue.test_issue30058..BadListcSsdSrr)r rrr__len__sz3TestKQueue.test_issue30058..BadList.__len__c3stdD] }VqdS)Nd)rG)r rNrrr__iter__s z4TestKQueue.test_issue30058..BadList.__iter__N)__name__ __module__ __qualname__rWrZrrYrrBadListsr^) rrr9rPr"r&r(rCrDiterr )r r rSrTr^rrYrtest_issue30058s zTestKQueue.test_issue30058cCsttd}||j|}t}||t| |j || |j | t |j|| t |jdddS)Nrbr)r__file__r!r rrrZassertIsInstanceintrQrrr r rD)r Z open_filer,rrrr test_closes    zTestKQueue.test_closecCs.t}||j|t|ddS)NF)rrr!r r#rget_inheritabler)r rrrrtest_fd_non_inheritables z"TestKQueue.test_fd_non_inheritableN) r[r\r]rr/rOrVr`rdrfrrrrrsYQr__main__) r@rrr9rIZunittesthasattrZSkipTestZTestCaserr[mainrrrrs  w