a 4êdgã@sxddlZddlZddlZddlZddlmZmZeedƒsDe d¡‚dd„Z Gdd„dej ƒZ d d „Z e d krte ƒdS) éN)Ú run_unittestÚ cpython_onlyÚdevpollz$test works only on Solaris OS familycCs(g}|D]\}}||@r| |¡q|S©N)Úappend)ÚreadyÚflagÚmatchÚfdÚmode©r ú-/usr/local/lib/python3.9/test/test_devpoll.pyÚfind_ready_matchings   rc@s@eZdZdd„Zdd„Zdd„Zdd„Zd d „Zed d „ƒZ d S)Ú DevPollTestscCs†t ¡}d}d}t|ƒ}g}g}i}i}t|ƒD]Z} t ¡\} } | | ¡| | tj¡| | tj ¡|  | ¡|  | ¡| || <| || <q0g} |rp|  ¡} t | tj ƒ}|s¸|  d¡t |¡} 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)ÚselectrÚlenÚrangeÚosÚpipeÚregisterÚmodifyÚPOLLINÚPOLLOUTrÚpollrZfailÚrandomÚchoiceÚwriteÚ assertEqualÚreadÚcloseÚ unregisterÚremove)ÚselfÚpZ NUM_PIPESZMSGZMSG_LENÚreadersZwritersZr2wZw2rÚiZrdÚwrZbufsrZ ready_writersZ ready_readersÚbufr r r Ú test_devpoll1sN               zDevPollTests.test_devpoll1cCsªt ¡}t ¡\}}| |¡| d¡| t|jd¡| t|jd¡| t|jd¡| d¡| d¡| d¡| t|jd¡| t|jd ¡| t|jd ¡dS) Néÿÿÿÿéþÿÿÿi€lûÿÿÿréi@llì)rrrrrrÚ assertRaisesÚ OverflowError©r#ÚpollsterÚwÚrr r r Útest_timeout_overflowJs      z"DevPollTests.test_timeout_overflowcCs¶ttdƒ}| |j¡| ¡}t ¡}| | ¡t¡|  |j ¡| ¡|  |j ¡|  t |j¡| ¡|  t |j|tj¡|  t |j¡|  t |j|tj¡|  t |j|¡dS)NÚrb)ÚopenÚ__file__Ú addCleanupr ÚfilenorrZassertIsInstanceÚintZ assertFalseÚclosedZ assertTruer.Ú ValueErrorrrrrr!)r#Z open_filer rr r r Ú test_close[s    zDevPollTests.test_closecCs.t ¡}| |j¡| t | ¡¡d¡dS)NF)rrr8r rrÚget_inheritabler9)r#rr r r Útest_fd_non_inheritabless z$DevPollTests.test_fd_non_inheritablecCsjt ¡}t ¡\}}| |¡| t|jdd¡| t|jdd¡| t|jdd¡| t|jdd¡dS)Nrr*r-r,) rrrrrr.r<r/rr0r r r Útest_events_mask_overflowxs  z&DevPollTests.test_events_mask_overflowcCsZddlm}t ¡}t ¡\}}| |¡| t|jd|d¡| t|j d|d¡dS)Nr)Ú USHRT_MAXr,) Z _testcapirArrrrrr.r/r)r#rAr1r2r3r r r Ú"test_events_mask_overflow_c_limits‚s    z/DevPollTests.test_events_mask_overflow_c_limitsN) Ú__name__Ú __module__Ú __qualname__r)r4r=r?r@rrBr r r r rs2 rcCs ttƒdSr)rrr r r r Ú test_mainsrFÚ__main__)rrrZunittestZ test.supportrrÚhasattrZSkipTestrZTestCaserrFrCr r r r Ús  w