a 5êdgã@sdddlZddlZddlZddlmZddlZe d¡ZGdd„dejƒZ d dd„Z e dkr`e ƒdS) éN)ÚsupportÚresourcec@sÚeZdZdd„Ze ejdkd¡dd„ƒZdd„Z d d „Z d d „Z e ejdkd ¡dd„ƒZ dd„Z e ejdkd¡dd„ƒZdd„Ze eedƒd¡e ddd¡dd„ƒƒZe eedƒd¡e ddd¡dd „ƒƒZd!S)"Ú ResourceTestcCsF| ttj¡| ttjdd¡| ttj¡| ttjddd¡dS©Né*)Ú assertRaisesÚ TypeErrorrÚ getrlimitÚ setrlimit©Úself©r ú./usr/local/lib/python3.9/test/test_resource.pyÚ test_args szResourceTest.test_argsZvxworksz0setting RLIMIT_FSIZE is not supported on VxWorkscCsLzt tj¡\}}Wnty&Yn"0| tj|¡t tj||f¡dS©N)rr Ú RLIMIT_FSIZEÚAttributeErrorÚ assertEqualZ RLIM_INFINITYr )r ÚcurÚmaxr r rÚtest_fsize_ismaxs  zResourceTest.test_fsize_ismaxc CsDzt tj¡\}}Wnty(Yn0zîzt tjd|f¡d}Wnty\d}Yn0ttjdƒ}z||  d¡z6|  d¡|  ¡t dƒD]}t   d¡|  ¡q’WntyÄ|sÀ‚Yn0|rÜt tj||f¡W| ¡n | ¡0W|r t tj||f¡t tj¡n&|r2t tj||f¡t tj¡0dS) NiTFÚwbsXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXóYégš™™™™™¹?)rr rrr Ú ValueErrorÚopenrZTESTFNÚwriteÚflushÚrangeÚtimeÚsleepÚOSErrorÚcloseÚunlink)r rrZ limit_setÚfÚir r rÚtest_fsize_enforced#s>          þz ResourceTest.test_fsize_enforcedc Csdd}zt tj¡\}}Wnty.Yn^0zt tj||f¡Wnttfy\Yn0zt tj||f¡WnttfyŠYn0dS)Né é2)rr rrr Ú OverflowErrorr)r Ztoo_bigrrr r rÚtest_fsize_toobigRs zResourceTest.test_fsize_toobigc CsŒ| ttj¡| ttjdd¡t tj¡}t tj¡}zt tj¡}Wnttfy^Yn0zt tj ¡}Wnttfy†Yn0dSr) rrrZ getrusageZ RUSAGE_SELFZRUSAGE_CHILDRENZ RUSAGE_BOTHrrZ RUSAGE_THREAD)r Z usageselfZ usagechildrenZ usagebothZ usage_threadr r rÚtest_getrusagecs  zResourceTest.test_getrusagez.setting RLIMIT_CPU is not supported on VxWorkscCsFzt tj¡}Wnty"Yn 0Gdd„dƒ}t tj|ƒ¡dS)Nc@seZdZdd„Zdd„ZdS)z9ResourceTest.test_setrusage_refcount..BadSequencecSsdS©Nér r r r rÚ__len__|szAResourceTest.test_setrusage_refcount..BadSequence.__len__cSs |dvrtttdƒƒƒSt‚dS)N)réi@B)ÚlenÚtuplerÚ IndexError©r Úkeyr r rÚ __getitem__~szEResourceTest.test_setrusage_refcount..BadSequence.__getitem__N©Ú__name__Ú __module__Ú __qualname__r.r5r r r rÚ BadSequence{sr:)rr Z RLIMIT_CPUrr )r Úlimitsr:r r rÚtest_setrusage_refcountss  z$ResourceTest.test_setrusage_refcountcCs$t ¡}| |t¡| |d¡dS)Nr)rZ getpagesizeÚassertIsInstanceÚintZassertGreaterEqual)r Zpagesizer r rÚ test_pagesize…s zResourceTest.test_pagesizeÚlinuxztest requires Linuxc CsNdD]D}t t¡&| ttd|ƒt¡Wdƒq1s>0YqdS)N)ZMSGQUEUEZNICEZRTPRIOZRTTIMEZ SIGPENDINGÚRLIMIT_©Ú contextlibÚsuppressrr=Úgetattrrr>©r Úattrr r rÚtest_linux_constantsŠs z!ResourceTest.test_linux_constantsc CsNdD]D}t t¡&| ttd|ƒt¡Wdƒq1s>0YqdS)N)ZSWAPZSBSIZEZNPTSrArBrFr r rÚtest_freebsd_contantss z"ResourceTest.test_freebsd_contantsÚprlimitz no prlimitr-éé$cCs`| ttj¡| ttjdtj¡t tj¡}| t dtj¡|¡| t dtj|¡|¡dS)Néÿÿÿÿr)rrrrJÚProcessLookupErrorÚ RLIMIT_ASr r)r Úlimitr r rÚ test_prlimit•s ÿ ÿzResourceTest.test_prlimitcs<G‡fdd„dƒ}t tj¡‰| t dtj|ƒ¡ˆ¡dS)Ncs eZdZdd„Z‡fdd„ZdS)z2ResourceTest.test_prlimit_refcount..BadSeqcSsdSr,r r r r rr.¥sz:ResourceTest.test_prlimit_refcount..BadSeq.__len__cs ˆ|dS)Nr/r r3©r;r rr5§sz>ResourceTest.test_prlimit_refcount..BadSeq.__getitem__Nr6r rRr rÚBadSeq¤srSr)rr rOrrJ)r rSr rRrÚtest_prlimit_refcount¡s  ÿz"ResourceTest.test_prlimit_refcountN)r7r8r9rÚunittestZskipIfÚsysÚplatformrr&r*r+r<r?Z skipUnlessrHrIÚhasattrrrZrequires_linux_versionrQrTr r r rr s, ÿ / ÿ     rcCst t¡dSr)rZ run_unittestr)Úverboser r rÚ test_main¯srZÚ__main__)N) rCrVrUÚtestrrÚ import_modulerZTestCaserrZr7r r r rÚs  %