a ze@snddlZddlZddlZddlZddlmZeeds@edddZGdddej Z e d krje dS) N) cpython_onlydevpollz$test works only on Solaris OS familycCs(g}|D]\}}||@r||q|S)N)append)readyflagmatchfdmoder E/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_devpoll.pyfind_ready_matchings   r c@s@eZdZddZddZddZddZd d Zed d Z d S) DevPollTestscCst}d}d}t|}g}g}i}i}t|D]Z} t\} } || || tj|| tj | | | | | || <| || <q0g} |rp| } t | tj }|s| dt|} t| || } t | tj}|s| d||| g||d} t| |}|t||| |t|| t| ||| || ||| q|| |g|dS)N s This is a test.zno pipes ready for writingzno pipes ready for readingr)selectrlenrangeospiperegistermodifyPOLLINPOLLOUTrpollr Zfailrandomchoicewrite assertEqualreadclose unregisterremove)selfpZ NUM_PIPESZMSGZMSG_LENreadersZwritersZr2wZw2riZrdwrZbufsrZ ready_writersZ ready_readersbufr r r test_devpoll1sN               zDevPollTests.test_devpoll1cCst}t\}}|||d|t|jd|t|jd|t|jd|d|d|d|t|jd|t|jd |t|jd dS) Nilri@ll)rrrrrr assertRaises OverflowErrorr!pollsterwrr r r test_timeout_overflowJs      z"DevPollTests.test_timeout_overflowcCsttd}||j|}t}||t| |j || |j | t |j|| t |j|tj| t |j| t |j|tj| t |j|dS)Nrb)open__file__ addCleanuprfilenorrZassertIsInstanceintZ assertFalseclosedZ assertTruer, ValueErrorrrrrr)r!Z open_filerrr r r test_close[s    zDevPollTests.test_closecCs.t}||j|t|ddS)NF)rrr6rrrget_inheritabler7)r!rr r r test_fd_non_inheritabless z$DevPollTests.test_fd_non_inheritablecCsjt}t\}}|||t|jdd|t|jdd|t|jdd|t|jdddS)Nrr(r+r*) rrrrrr,r:r-rr.r r r test_events_mask_overflowxs  z&DevPollTests.test_events_mask_overflowcCsZddlm}t}t\}}|||t|jd|d|t|j d|ddS)Nr) USHRT_MAXr*) Z _testcapir?rrrrrr,r-r)r!r?r/r0r1r r r "test_events_mask_overflow_c_limitss    z/DevPollTests.test_events_mask_overflow_c_limitsN) __name__ __module__ __qualname__r'r2r;r=r>rr@r r r r r s2 r __main__) rrrZunittestZ test.supportrhasattrZSkipTestr ZTestCaser rAmainr r r r s   w