ó ÊÞÏ\c@sþdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlmZddlmZddlmZddlmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddlm$Z$ddlm%Z%ddlm&Z&ddlm'Z'ddlm(Z(ddlm)Z)ddlm*Z*ddlm+Z+ddlm,Z,ddlm-Z-ddlm.Z.dd lm/Z/dd!lm0Z0dd"lm1Z1dd#lm2Z2dd$lm3Z3dd%lm4Z4dd&lm5Z5dd'lm6Z6dd(lm7Z7dd)lm8Z8dd*lm9Z9dd+lm:Z:dd,lm;Z;dd-lm<Z<dd.lm=Z=d/e<j>fd0„ƒYZ?eoœej@ƒd1kr¸d2e?fd3„ƒYZAnd4e<j>fd5„ƒYZBeCd6krúdd7lDmEZEeEeFƒndS(8sTests for psutil.Process class.iÿÿÿÿN(tAIX(tBSD(tLINUX(tMACOS(tNETBSD(tOPENBSD(tOSX(tPOSIX(tSUNOS(tWINDOWS(t open_text(tlong(tPY3(tAPPVEYOR(t call_until(tcopyload_shared_lib(t create_exe(tcreate_proc_children_pair(tcreate_zombie_proc(tenum(tget_test_subprocess(tHAS_CPU_AFFINITY(t HAS_ENVIRON(t HAS_IONICE(tHAS_MEMORY_MAPS(tHAS_PROC_CPU_NUM(tHAS_PROC_IO_COUNTERS(t HAS_RLIMIT(t HAS_THREADS(tmock(tPYPY(t PYTHON_EXE(t reap_children(tretry_on_failure(t safe_rmpath(tsh(tskip_on_access_denied(tskip_on_not_implemented(tTESTFILE_PREFIX(tTESTFN(t ThreadTask(tTRAVIS(tunittest(t wait_for_pidt TestProcesscBs­eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zeje dƒd„ƒZd„Zeje dƒejedƒd„ƒƒZeje dƒedeƒd„ƒƒZeje dƒeje dƒd„ƒƒZeje dƒeje dƒd„ƒƒZeje dƒd„ƒZ!eje dƒd„ƒZ"eje dƒd„ƒZ#eje dƒd„ƒZ$eje dƒd„ƒZ%d„Z&eje d ƒd!„ƒZ'eje( dƒd"„ƒZ)e*ƒe+de,ƒeje( dƒd#„ƒƒƒZ-d$„Z.d%„Z/eje0 dƒd&„ƒZ1eje0 dƒd'„ƒZ2d(„Z3d)„Z4d*„Z5d+„Z6d,„Z7d-„Z8d.„Z9eje:d/ƒeje;d0ƒd1„ƒƒZ<eje dƒd2„ƒZ=eje dƒd3„ƒZ>d4„Z?d5„Z@d6„ZAd7„ZBd8„ZCejeD dƒd9„ƒZEejeD dƒd:„ƒZFejeD dƒd;„ƒZGejeHd<ƒejeId=ƒd>„ƒƒZJejeHd<ƒejeId=ƒd?„ƒƒZKeje dƒd@„ƒZLedeƒejeMp^eNdAƒdB„ƒƒZOdC„ZPdD„ZQdE„ZRdF„ZSdG„ZTdH„ZUdI„ZVdJ„ZWdK„ZXdL„ZYdM„ZZdN„Z[dO„Z\dP„Z]dQ„Z^dR„Z_eje dƒdS„ƒZ`eje dƒdT„ƒZaeje dƒdU„ƒZbdV„Zcejed dƒdW„ƒZeejed dƒeje dƒdX„ƒƒZfRS(YsTests for psutil.Process class.cCsttƒdS(N(R"R'(tself((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pytsetUpNscCs tƒdS(N(R (R-((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttearDownQscCsstjƒ}|j|jtjƒƒtƒ}|jtj|jƒj|jƒ|jtƒd|_WdQXdS(Ni!( tpsutiltProcesst assertEqualtpidtostgetpidRt assertRaisestAttributeError(R-tptsproc((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_pidTs   "cCsntƒ}|j}tj|ƒ}|jƒ|jƒ}|jtj|ƒƒtrj|j |t j ƒndS(N( RR3R0R1tkilltwaitt assertFalset pid_existsRR2tsignaltSIGKILL(R-R9R:R8tsig((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_kill\s    cCsntƒ}|j}tj|ƒ}|jƒ|jƒ}|jtj|ƒƒtrj|j |t j ƒndS(N( RR3R0R1t terminateR<R=R>RR2R?tSIGTERM(R-R9R:R8RA((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_terminatefs    c Cs²trtjntj}tƒ}tj|jƒ}|j|ƒ|j ƒ}|j tj |jƒƒtr®|j || ƒtƒ}tj|jƒ}|j|ƒt jddttjdƒƒ+|jtjƒ|j|ƒWdQXWdQXtƒ}tj|jƒ}|j|ƒt jddttjdƒƒ1|jtjƒtjƒj|ƒWdQXWdQXdtjƒkr®tjdƒ}|jt|jtjƒq®ndS(Nspsutil.os.killt side_effectti(RR?R@RDRR0R1R3t send_signalR<R=R>R2RtpatchtOSErrorterrnotESRCHR6t NoSuchProcesstEPERMt AccessDeniedtpidst ValueError(R-RAR9R8texit_sig((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_send_signalps2         cCsétƒ}tj|jƒ}|jƒ|jƒ}trN|j|tj ƒn|j|tj ƒ|j |j ƒƒtƒ}tj|jƒ}|j ƒ|jƒ}trÂ|j|tj ƒn|j|tj ƒ|j |j ƒƒd}ttd|gƒ}tj|jƒ}|j|jƒdƒ|j |j ƒƒttd|gƒ}tj|jƒ}|j|jƒdƒ|j|jƒdƒtƒ}tj|jƒ}|jƒ|jtj|jdƒ|jt|jdƒdS(Ns0import time, sys; time.sleep(0.01); sys.exit(5);s-cig{®Gáz„?iÿÿÿÿ(iN(RR0R1R3R;R<RR2R?R@RDR=t is_runningRCRtassertIntNonetnameR6tTimeoutExpiredRQ(R-R9R8tcode((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_waits<        cCsÄtƒ\}}|jtj|jdƒ|jtj|jdƒ|jƒ|jƒ|jƒ}|jƒ}trš|j|tj ƒ|j|dƒn&|j|tj ƒ|j|tj ƒdS(Ng{®Gáz„?( RR6R0RXR<RCRR2R?RDRV(R-tp1tp2tret1tret2((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_wait_non_children¿s    cCsåtƒ}tj|jƒ}|jtj|jdƒ|jƒtjƒd}xMt ry|jdƒ}Wn,tjk r˜tjƒ|krš‚qšqQXPqQWt r»|j |t j ƒn|j |t jƒ|j|jƒƒdS(Nii(RR0R1R3R6RXR<R;ttimetTrueRR2R?R@RDR=RT(R-R9R8tstop_atRY((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_wait_timeout_0Ôs     cCsŸtjƒ}|jddƒ|jddƒxFtdƒD]8}|jddƒ}|j|tƒ|j|dƒq9W|jt ƒ|jddƒWdQXdS(Ntintervalgü©ñÒMbP?idgiÿÿÿÿ( R0R1t cpu_percenttrangeRVtassertIsInstancetfloattassertGreaterEqualR6RQ(R-R8txtpercent((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_cpu_percentès cCsAtjdddƒ&}tjƒjƒ|js7t‚WdQXdS(Nspsutil.cpu_countt return_value(RRIRVR0R1RetcalledtAssertionError(R-tm((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_cpu_percent_numcpus_noneóscCs¬tjƒjƒ}|jdks<|jdks<t|ƒ‚|jdksWt|ƒ‚|jdksrt|ƒ‚x3|jD](}t j dt j t ||ƒƒƒq|WdS(Ngs%H:%M:%S( R0R1t cpu_timestusertsystemRot children_usertchildren_systemt_fieldsR`tstrftimet localtimetgetattr(R-ttimesRW((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_cpu_timesùs *cCsºtjƒjƒd \}}tjƒd \}}t||gƒt||gƒdkrt|jd||fƒnt||gƒt||gƒdkr¶|jd||fƒndS(Nigš™™™™™¹?sexpected: %s, found: %s(R0R1RrR4R{tmaxtmintfail(R-t user_timet kernel_timetutimetktime((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_cpu_times_2s ((s not supportedcCsstjƒ}|jƒ}|j|dƒtjƒdkrM|j|dƒn|j|jƒttjƒƒƒdS(Nii(R0R1tcpu_numRit cpu_countR2RURf(R-R8tnum((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_cpu_nums   cCstƒ}tjƒ}tj|jƒ}|jƒ}t||ƒ}|dkrl|jd|||fƒntjdtj |jƒƒƒdS(Nis'expected: %s, found: %s, difference: %ss%Y %m %d %H:%M:%S( RR`R0R1R3t create_timetabsRRxRy(R-R9tnowR8R‰t difference((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_create_times     s POSIX onlysnot reliable on TRAVIScCsltjƒjƒ}tjjƒs0tjjƒr[tjj t dƒƒ}|j ||ƒn |j |ƒdS(Nttty( R0R1tterminaltsyststdintisattytstdoutR4tpathtrealpathR#R2t assertIsNone(R-RRŽ((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_terminal)s tonly_ifc Cs9tjƒ}|jƒ}ttdƒ}|jƒWdQX|jƒ}t r¸t r¸|j|j |j ƒ|j |j |j ƒt rä|j|j |j ƒ|j |j|jƒqän,|j|j|jƒ|j|j|jƒ|jƒ}tjdtƒ;}tr(|jtdddƒƒn|jddƒWdQX|jƒ}|j|j |j ƒ|j|j|jƒ|j|j |j ƒ|j|j|jƒt rØ|j|j|jƒ|j|j |j ƒnxZtt|ƒƒD]F}tr |dkr qën|j||dƒ|j||dƒqëWdS(NtrbtprefixRji@Btasciiii(R0R1t io_counterstopenRtreadRRt assertGreatert read_countR2t write_countRt read_charst write_charsRit read_bytest write_bytesttempfilet TemporaryFileR&R twritetbytesRftlen(R-R8tio1tftio2ti((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_io_counters3s>     s linux onlyc Cs™tjƒ}|j|jƒdtjƒ|jtjdƒ|jtjdƒ|jtjdƒ|jtjdƒz |jtjƒ|jt|jƒƒtjdfƒ|j t ƒ|jtjddƒWdQX|jtjƒ|jt|jƒƒtjdfƒ|jtjddƒ|jt|jƒƒtjdfƒ|j t ƒ|jtjddƒWdQXt j ƒdkr&|jtjƒ|jt|jƒƒtjdfƒ|jtjddƒ|jt|jƒƒtjdfƒ|j t ƒ|jtjddƒWdQXn|j t d|jtjdƒ|j t d|jtjdƒ|j t d |jddƒWd|jtjƒXdS( Niiiitvalueiisioclass accepts no values$'ioclass' argument must be specified(R0R1R2tionicetIOPRIO_CLASS_NONEtIOPRIO_CLASS_RTtIOPRIO_CLASS_BEtIOPRIO_CLASS_IDLEttupleR6RQR4tgetuidtassertRaisesRegex(R-R8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_ionice_linux_sH %%%s!not supported on this win versioncCs2tjƒ}|j|jƒtjƒzÜ|jtjƒ|j|jƒtjƒ|jtjƒ|j|jƒtjƒy|jtjƒWntjk r¤nX|j|jƒtjƒ|j t d|jtjddƒ|j t d|jtjdƒWd|jtjƒ|j|jƒtjƒXdS(Ns&value argument not accepted on WindowsR°isis not a valid priority( R0R1R2R±t IOPRIO_NORMALtIOPRIO_VERYLOWt IOPRIO_LOWt IOPRIO_HIGHROR¸t TypeErrorRQ(R-R8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_ionice_winŒs( cCs>ddl}tjtjƒƒ}gttƒD]}|jdƒr.|^q.}|sat|ƒ‚xÖ|D]Î}tt|ƒ}|j |dƒ|t|ƒkré|j |t||ƒƒt rÄqhn|j |j |ƒ|j |ƒƒqh|j |ƒ}|j t|ƒdƒ|j |ddƒ|j |ddƒqhWdS(NiÿÿÿÿtRLIMITiii(tresourceR0R1R4R5tdirt startswithRoRzRiR2Rtrlimitt getrlimitRª(R-RÁR8RjtnamesRWR°tret((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_rlimit_get¨s  . %c Cs¦tƒ}tj|jƒ}|jtjdƒ|j|jtjƒdƒ|jtƒtj jdƒjdƒWdQX|jtƒ|jtjdƒWdQXdS(Nii(ii(ii(iii( RR0R1R3RÄt RLIMIT_NOFILER2R6RQt _psplatform(R-R9R8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_rlimit_set¿s c Cstjƒ}|jtjƒ\}}z³|jtjd|fƒttdƒ}|jddƒWdQX|jtƒ0}ttdƒ}|jddƒWdQXWdQX|j t rÂ|j j n |j dt j ƒWd|jtj||fƒ|j |jtjƒ||fƒXdS(NitwbtXii(R0R1RÄt RLIMIT_FSIZERR'R¨R6tIOErrorR2R t exceptionRKtEFBIG(R-R8tsoftthardR¬texc((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_rlimitÌs "cCsÉtjƒ}|jtjƒ\}}zb|jtjd|fƒ|jtjtj|fƒttdƒ}|jddƒWdQXWd|jtj||fƒ|j|jtjƒ||fƒXdS(NiRÌRÍi( R0R1RÄRÎt RLIM_INFINITYRR'R¨R2(R-R8RÒRÓR¬((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_rlimit_infinityßs cCsTtjƒ}|jtjƒ\}}|jtj|ƒ|jtj||fƒdS(N(R0R1RÄRÎR2RÖ(R-R8RÒRÓ((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_rlimit_infinity_valueîs cCs‹tjƒ}trKy|jƒ}WqWtjk rGtjdƒ‚qWXn |jƒ}tƒ%|jƒ}|j||dƒWdQXdS(Ns$on OpenBSD this requires root accessi( R0R1Rt num_threadsROR*tSkipTestR(R2(R-R8tstep1tstep2((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_num_threadsús    s WINDOWS onlycCs&tjƒ}|j|jƒdƒdS(Ni(R0R1RŸt num_handles(R-R8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_num_handles s cCsætjƒ}trKy|jƒ}WqWtjk rGtjdƒ‚qWXn |jƒ}tƒ€|jƒ}|jt |ƒt |ƒdƒ|d}|j|j |dƒ|j|j |dƒ|j|j |dƒWdQXdS(Ns$on OpenBSD this requires root accessiii( R0R1RtthreadsROR*RÚR(R2RªtidR€t system_time(R-R8RÛRÜtathread((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_threadss      cCsÞtƒ}tj|jƒ}trXy|jƒWqXtjk rTtjdƒ‚qXXn|j |j ƒj t g|jƒD]}|j ^qzƒddƒ|j |j ƒjt g|jƒD]}|j^q»ƒddƒdS(Ns$on OpenBSD this requires root accesstdeltagš™™™™™¹?(RR0R1R3RRàROR*RÚtassertAlmostEqualRrRstsumR€RtRâ(R-R9R8Rj((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_threads_2%s  / c Cs.tjƒ}|jƒd \}}|jƒ}|j|dƒ|j|dƒdgd}|jƒd \}}|jƒ}|j||ƒ|j||ƒ|j||ƒ~trñ|jƒ} |j| j | j ƒ|j| j | j ƒn|jƒ} x*| j D]} |jt| | ƒdƒqWdS(Niii`ã(R0R1t memory_infotmemory_percentRŸRVRiR R2trsstwsettvmstpagefileRwRz( R-R8trss1tvms1tpercent1tmemarrtrss2tvms2tpercent2tmemRW((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_memory_info8s&      c Csøtjƒj}tjƒjƒ}xy|jD]n}t||ƒ}|j|dd||fƒ|dkrnts+t rzq+n|j ||d|||fƒq+Wt s¯t s¯t rÅ|j|j dƒnt rô|j|jdƒ|j|jdƒndS(NitmsgRí(R0tvirtual_memoryttotalR1tmemory_full_infoRwRzRiRRtassertLessEqualR Rtusstpsstswap(R-RúRöRWR°((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_memory_full_infoVs#c Cs*tjƒ}|jƒ}g|D] }|^q}|jt|ƒtt|ƒƒƒ|jdtƒ}x)|D]!}|jjdƒslt jj |jƒs¨t |jƒ‚t rHy=t jj |jƒsêt jj|jƒsêt |jƒ‚WqŠt k rDts‚qEtdƒ}|jƒ}WdQXd|j|krE‚qEqŠXqdt jj|jƒkrt jj |jƒsŠt |jƒ‚qqlqlWx’|D]Š}x|jD]v} t|| ƒ} | dkrÏq¨q¨| d krð| st | ƒ‚q¨|j| ttfƒ| d ks¨t | ƒ‚q¨Wq˜WdS( Ntgroupedt[s/proc/self/smapss %s (deleted)t64R”taddrtpermsi(saddrR(R0R1t memory_mapsR2RªtsettFalseR”RÃR4tisabsRoRtexiststislinkRR RžtbasenameRwRzRgtintR ( R-R8tmapsRjtpathstext_mapstntR¬tdatatfnameR°((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_memory_mapses<  " $(  .   cCsctƒT}d„}gtjƒjƒD]}||jƒ^q(}|j||ƒ|ƒWdQXdS(NcSstjjtjj|ƒƒS(N(R4R”R•tnormcase(R8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pytnormpath’s(RR0R1RR”RU(R-R”RRjtlibpaths((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_memory_maps_lists_libŽs   +cCsXtjƒ}|jƒ|jt|jddƒtsAtsAtrT|jddƒndS(Ntmemtypes?!?Rý(R0R1RêR6RQRRR (R-R8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_memory_percent˜s   cCs}tƒ}tj|jƒ}|jƒs-t‚|jƒs?t‚|jƒ|jƒ|jƒ sft‚|jƒ syt‚dS(N(RR0R1R3RTRoR;R<(R-R9R8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_is_runningŸs   cCstƒ}tj|jƒjƒ}y|j|tƒWn¸tk rïtrŽt |ƒt tƒkrŽt j j }|j||ƒ|tƒƒqðdt jdt jdf}y,|j|j|dƒtj|dƒƒWqðtk rëqðXnXt|ddgƒ}|j|dƒdS(Ns%s.%siiRGs-csimport os; print('hey')they(RR0R1R3texeR2RRoR RªR4R”RRt version_infotreplaceR#(R-R9RRtvertout((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_exe©s     cCs©tddg}t|ƒ}y8|jdjtj|jƒjƒƒdj|ƒƒWnOtk r¤t sut sut rž|jtj|jƒjƒdtƒq¥‚nXdS(Ns-csimport time; time.sleep(60)t i( RRR2tjoinR0R1R3tcmdlineRoRRR(R-R%R9((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_cmdlineÅs $ #cCsfttƒ|jttƒtgdgd}t|ƒ}tj|jƒ}|j|j ƒ|ƒdS(Nt 0123456789i( RR't addCleanupR"RR0R1R3R2R%(R-R%R9R8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_long_cmdline×s   cCsvttƒ}tj|jƒjƒjƒ}tjj tjj t j ƒƒjƒ}|j |ƒsrt||fƒ‚dS(N(RRR0R1R3RWtlowerR4R”R R•Rt executableRÃRo(R-R9RWtpyexe((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_nameßs 'cCshtd}t|ƒ|jt|ƒt|ƒ}tj|jƒ}|j|j ƒt j j |ƒƒdS(NR'it01234567890123456789( R'RR(R"RR0R1R3R2RWR4R”R (R-t long_nameR9R8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_long_nameås    sbroken on SUNOSs broken on AIXcsé‡fd†}td‰tˆƒ|j|ƒˆddddddg}t|ƒ}tj|jƒ}trt|jƒn|j |j ƒ|ƒ|j |j ƒt j jˆƒƒ|j t j j|jƒƒt j jˆƒƒdS(Ncs&ytˆƒWntk r!nXdS(N(R"RJ((t funky_path(s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pytrmõs s foo bar )s-cs9import time; [time.sleep(0.01) for x in range(3000)];arg1targ2RGtarg3(R'RR(RR0R1R3R)R+R2R%RWR4R”R RR(R-R2R%R9R8((R1s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_prog_w_funky_nameîs    "cCstjƒ}|jƒ\}}}|j|tjƒƒ|j|tjƒƒttdƒr{|jtjƒ|jƒƒndS(Nt getresuid( R0R1tuidsR2R4R·tgeteuidthasattrR6(R-R8trealt effectivetsaved((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_uidss  cCstjƒ}|jƒ\}}}|j|tjƒƒ|j|tjƒƒttdƒr{|jtjƒ|jƒƒndS(NR6( R0R1tgidsR2R4tgetgidtgetegidR9t getresgid(R-R8R:R;R<((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_gidss  cCs tjƒ}|jt|jdƒtrézª|jƒ}tjdkr\|j|t j ƒn|j|t ƒ|j |tj ƒ|jtjƒ|j |jƒtjƒ|jtj ƒ|j |jƒtj ƒWd|jtj ƒXn |jƒ}zèyÍttdƒr8|j tjtjtjƒƒ|jƒƒn|jdƒ|j |jƒdƒttdƒr˜|j tjtjtjƒƒ|jƒƒntsÄ|jdƒ|j |jƒdƒnWntjk rÛnXWdy|j|ƒWntjk rnXXdS(Ntstriit getpriorityii(ii(R0R1R6R¾tniceR RRRgRtIntEnumR R2tNORMAL_PRIORITY_CLASStHIGH_PRIORITY_CLASSR9R4RDt PRIO_PROCESSR5RRO(R-R8tinitt first_nice((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_nice*sD   ( ( cCs)tjƒ}|j|jƒtjƒdS(N(R0R1R2tstatustSTATUS_RUNNING(R-R8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_statusSs cCsžtƒ}tj|jƒ}|jƒ}tr„|jdƒ\}}|j|tj ƒƒdt j krš|j|t j dƒqšn|j|tj ƒƒdS(Ns\t USERDOMAIN( RR0R1R3tusernameR tsplitR2tgetpasstgetuserR4tenviron(R-R9R8RQtdomain((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_usernameWs  cCs;tƒ}tj|jƒ}|j|jƒtjƒƒdS(N(RR0R1R3R2tcwdR4tgetcwd(R-R9R8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_cwdcs cCsAtddg}t|ƒ}tj|jƒ}t|jdƒdS(Ns-cs/import os, time; os.chdir('..'); time.sleep(60)s#ret == os.path.dirname(os.getcwd())(RRR0R1R3RRX(R-tcmdR9R8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_cwd_2hs   cCsDtjƒ}|jƒ}|s*t|ƒ‚|j|j|ƒttdƒrq|j|ttj |j ƒƒƒn|jt |ƒt t |ƒƒƒtt t tjdtƒƒƒƒ}x¯tsÆ|n|D]›}|j|gƒ|j|jƒ|gƒttdƒr3|j|jƒttj |j ƒƒƒnt|dƒrÊ|j|jƒd|jƒƒqÊqÊW|jgƒtrž|j|jƒ|jjƒƒn|j|jƒ|ƒttdƒrî|j|jƒttj |j ƒƒƒn|jt|jdƒ|j|ƒts@|jt |ƒƒ|jt|ƒƒndS(Ntsched_getaffinitytpercputnum_cpuii(R0R1t cpu_affinityRoR(R9R4R2tlistR]R3RªRRfReRaR)R_Rt_proct_get_eligible_cpusR6R¾R¶(R-R8tinitialtall_cpustn((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_cpu_affinityos8  %"$' " cCs«tƒ}tj|jƒ}ttjdtƒƒdg}|jt|j |ƒ|jt|j t ddƒƒ|jt |j ddgƒ|jt|j ddgƒdS(NR^i i'iø*it1iÿÿÿÿ( RR0R1R3RªRrRaR6RQR`RfR¾(R-R9R8t invalid_cpu((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_cpu_affinity_errsšs cCsØtjƒ}|jƒ}|s*t|ƒ‚|j|j|ƒg}xZtdt|ƒdƒD]?}x6tj||ƒD]"}|rv|j t |ƒƒqvqvWq]Wx1|D])}|j|ƒ|j |jƒ|ƒq§WdS(Nii( R0R1R`RoR(RfRªt itertoolst combinationstappendRaR2(R-R8Rdtcombostltsubsettcombo((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt"test_cpu_affinity_all_combinations¤s     s broken on BSDsunreliable on APPVEYORc CsÍtjƒ}|jƒ}|jt|kƒttdƒ•}|jddƒ|jƒt|jdt |ƒƒ}xT|D]5}|j tkr{t r¬|j |j dƒnPq{q{W|jdt|ƒƒWdQXx/|D]'}tj j|j ƒsØt|ƒ‚qØWdt}ttd|gƒ}tj|jƒ}xctdƒD]E}g|jƒD]}|j ^qT}t|kryPntjd ƒqAW|jt|ƒx,|D]$}tj j|ƒs¡t|ƒ‚q¡WdS( NRÌRjislen(ret) != %isno file found; files=%ss2import time; f = open(r'%s', 'r'); time.sleep(60);s-cidg{®Gáz„?(R0R1t open_filesR=R'RR¨tflushRRªR”RR2tpositionRtreprR4tisfileRoRRR3RfR`tsleepRU( R-R8tfilesR¬tfileR%R9Rjt filenames((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_open_files·s4     % "  cCs)ttdƒ}tjƒ}x\|jƒD]1}|j|jksX|j|jƒkr+Pq+q+W|j dt |jƒƒƒ|j |j|jƒt r¯|j |jdƒn|j |j|jƒƒ|jƒd}|j |d|jƒ|j |d|jƒ|j |j|jƒƒWdQXdS(Ntwsno file found; files=%siÿÿÿÿii(RR'R0R1RsR”RWtfdtfilenoRRvR2R t assertNotIn(R-tfileobjR8Rztntuple((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_open_files_2Þs 'cCsµtjƒ}|jƒ}ttdƒ}|j|jƒ|j|jƒ|dƒtjƒ}|j|jƒ|j|jƒ|dƒ|jƒ|jƒ|j|jƒ|ƒdS(NR}ii( R0R1tnum_fdsRR'R(tcloseR2tsocket(R-R8tstartRztsock((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_num_fdsös     s not reliable on OPENBSD & NETBSDcCshtjƒ}t|jƒƒ}x6tdƒD](}t|jƒƒ}||kr+dSq+W|jdƒdS(Ni ¡s7num ctx switches still the same after 50.000 iterations(R0R1Rçtnum_ctx_switchesRfR(R-R8tbeforeRjtafter((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_num_ctx_switchess  cCs×ttdƒr4|jtjƒjƒtjƒƒntjƒ}tƒ}tj|j ƒ}|j|jƒ|ƒt dt ƒt rˆdSxHtj ƒD]:}|j |j kr³q•n|j|jƒ|d|ƒq•WdS(Ntgetppidt recursiveRø(R9R4R2R0R1tppidRŽR5RR3R RaR t process_itertassertNotEqual(R-t this_parentR9R8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_ppids%   cCsptjƒ}tƒ}tj|jƒ}|j|jƒj|ƒtjƒd}|j tj|ƒjƒƒdS(Ni( R4R5RR0R1R3R2tparentRPR–(R-R“R9R8t lowest_pid((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_parent#s   cCsEtƒ\}}|j|jƒ|ƒ|j|jƒtjƒƒdS(N(RR2R•R0R1(R-R[R\((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_parent_multi,scCsZtƒ}tj|jƒ}tjddtjddƒƒ|j|jƒƒWdQXdS(Nspsutil.ProcessRFitfoo( RR0R1R3RRIRMR–R•(R-R9R8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_parent_disappeared1s   cCsØtjƒjƒst‚tƒ\}}|j|jƒdtjƒƒ|j|jƒd|ƒ|j|jƒdtjƒƒtrÔtjƒd}|j|jƒdj|ƒ|j|jƒdj|ƒndS(Niiiÿÿÿÿ( R0R1tparentsRoRR2RRPR3(R-R[R\R–((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_parents9s  cCsãtdtƒtjƒ}|j|jƒgƒ|j|jdtƒgƒtddƒ}|jƒ}|jdtƒ}xd||fD]V}|jt|ƒdƒ|j|dj|jƒ|j|dj ƒt j ƒƒq…WdS(NRt creationflagsii( R RaR0R1R2tchildrenRRªR3RR4R5(R-R8R9t children1t children2Rž((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_childrenDs   cCsŠtƒ\}}tjƒ}|j|jƒ|gƒ|j|jdtƒ||gƒ|jƒ|jƒ|j|jdtƒgƒdS(NR(RR0R1R2RžRaRCR<(R-R[R\R8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_children_recursiveTs "  cCsÜtjtƒ}xEtjƒD]7}y||jƒcd7jsiÿÿÿÿiR(t collectionst defaultdictR R0R‘RtErrortsortedtitemsR1RžRaROR2RªR(R-ttableR8R3tc((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_children_duplicatesas#cCs£tƒ\}}tjƒ}|jdtƒ}|jt|ƒdƒ|j|d|ƒ|j|d|ƒ|jƒ}|j|d|ƒ|j|d|ƒdS(NRiii(RR0R1RžRaR2RªR›(R-R[R\tmeRžR›((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_parents_and_childrenss  cCs‰tƒ}tj|jƒ}|jƒx:tdƒD],}|jƒtjkrQPntj dƒq2W|j ƒ|j |jƒtjƒdS(Nidg{®Gáz„?( RR0R1R3tsuspendRfRMtSTATUS_STOPPEDR`RxtresumeR’(R-R9R8Rj((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_suspend_resume€s   cCs0|jttjdƒ|jttjdƒdS(NRhiÿÿÿÿ(R6R¾R0R1RQ(R-((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_invalid_pid‹scCstjƒ}|jdddgƒ}|jt|jƒƒddgƒtjttjƒƒƒ}|jddgddƒ}t|dt ƒs¦|j|ddƒnt j ddt d tj ƒ1|j|jdd gdd ƒid d 6ƒWdQXt j ddt d tj|jdƒƒ$|jtj|jdd gƒWdQXt j ddt d tj|jdƒƒ1|j|jdd gddƒidd 6ƒWdQXt j ddt d tƒV|jƒ}|jd t |jƒƒƒ|jtƒ|jdd gƒWdQXWdQX|jtƒ|jdƒWdQX|jtƒ|jdgƒWdQX|jtƒ|jdd gƒWdQXdS( NtattrsRRWt connectionstad_valueR™spsutil.Process.nicetcreateRFREitbar(R0R1tas_dictR2R¨tkeysR~RPt isinstanceRaRRIRaRORMR3R6t ZombieProcesstNotImplementedErrorR€R¾RQ(R-R8td((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_as_dicts> " ,,  c Cs¡tjdƒM}tjƒ}|jƒ|jƒ|jƒWdQX|j|jdƒWdQXtjdƒ}|jƒ|jƒWdQX|j|jdƒdS(Ns$psutil._psplatform.Process.cpu_timesii(RRIR0R1toneshotRrR2t call_count(R-RpR8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_oneshot½s    cCsótjdƒŸ}tjdƒ‡}tjƒ}|jƒ@|jƒ|jƒ|jƒ|jƒ|jƒWdQXWdQX|j|jdƒ|j|jdƒWdQXWdQXtjdƒ}|jƒ|jƒWdQX|j|jdƒdS(Ns$psutil._psplatform.Process.cpu_timess(psutil._psplatform.Process.oneshot_enterii(RRIR0R1RÀRrR2RÁ(R-tm1tm2R8Rp((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_oneshot_twiceÊs       cCs¹tƒ\}}|jƒ}|jƒ}|j||ƒ|jƒ1|j|jƒ|ƒ|j|jƒ|ƒWdQX|jƒ1|j|jƒ|ƒ|j|jƒ|ƒWdQXdS(N(RRR’RÀR2(R-R[R\tp1_ppidtp2_ppid((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_oneshot_cacheÞs    c Cs£tƒ}tj|jƒ}|jƒ|jƒtrOttjd|jƒn|j ƒ sbt ‚tr½|j tj ƒ|j tjƒWdQX|j tj ƒ|j tjƒWdQXnddddddg}tròt rò|jdƒnxªt|ƒD]œ}|jd ƒsÿ||kr&qÿnyèt||ƒ}|d krktrY|d ƒ}q |tjƒ}n¢|d kr|ƒ}|d ƒ}n~|dkr¿|tjƒ}|tjdƒ}nN|dkræ|ƒ}|dgƒ}n'|dkr|tjƒ}n |ƒ}Wnstjk r5|jd|ƒqÿtj k rHqÿtjk rstrm|dkrmq›‚qÿtk rƒqÿX|jd||fƒqÿWdS(Ns %s not in retR3RTR<R‰RÀtmemory_info_exRÄt_REiR±iiR`iRHs/ZombieProcess for %r was not supposed to happenRàRÙs4NoSuchProcess exception not raised for %r, retval=%s(ii(sthreadss num_threads( RR0R1R3RCR<R RRPRTRoR6RMRHR?t CTRL_C_EVENTtCTRL_BREAK_EVENTRRRmRÂRÃRzRRGRÉRDR¼RRORR½(R-R9R8texcluded_namesRWtmethRÇ((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_halfway_terminated_processísh                  cCsŽd„}tƒ}|jtdtƒtj|ƒ}|j|jƒtjƒ|j |j ƒƒ|j ƒ||j ƒ}|dk r˜|j|gƒnt|dƒrÓ||jtjƒ||jtjd ƒn||jƒt|dƒrCy||jdgƒWqCtk r?}tr9tr9dt|ƒkr9q@‚qCXn||jdƒt|dƒr‘tr~||jd dƒq‘||jdƒnt|dƒr¹||jtjd ƒn||j ƒ||jƒ||jƒ||jƒ|j tj|ƒƒt rŠtrŠ|j|tjƒƒ|j|gtj ƒD]}|j!^q<ƒit_"|j|gtj ƒD]}|j!^qqƒndS( Nc_s5y|||ŽSWntjtjfk r0nXdS(N(R0R¼RO(tfuntargstkwargs((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pytsucceed_or_zombie_p_exc3sRRÄiR`is not eligibleR±i(ii(ii(#RR(R RaR0R1R2RMt STATUS_ZOMBIEt assertTrueRTR¹R¯RVR9RÄRÉR•R`RQR)RRCRER±R±RCR;R>RRURPR‘R3t_pmap(R-RÓtzpidtzprocRÇterrRj((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_zombie_process1sP             , cCsXtjƒ}tjddtjdƒƒ(}|jƒs?t‚|jsNt‚WdQXdS(Nspsutil.ProcessRFi(R0R1RRIR¼RTRoRn(R-R8Rp((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt$test_zombie_process_is_running_w_exczs   cCs_tjƒ}tjddtjdƒƒ/}|j|jƒtjƒ|jsUt ‚WdQXdS(Ns!psutil._psplatform.Process.statusRFi( R0R1RRIR¼R2RMRÔRnRo(R-R8Rp((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_zombie_process_status_w_exc„s   cCs§dtjƒkr/|jtjtjdƒdStjdƒ}xætjD]Û}|dkr`qHnt||ƒ}y |ƒ}Wntjk r’qHX|d krµ|j|j dƒqH|dkrt rà|j|j ƒdƒq#t r#|j|j ƒdƒq#qH|dkrH|s#t |ƒ‚qHqHWt|d ƒrdy|jtjƒWqdtjk r`qdXn|jƒts£|jdtjƒƒ|jtjdƒƒndS( NiR3R7R>RQtrootsNT AUTHORITY\SYSTEMRWRÄ(suidssgids(R0RPR6RMR1t_as_dict_attrnamesRzROR2R:RRQR RoR9RÄRÎR¹RRURÕR>(R-R8RWRÎRÇ((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_pid_0Žs<      cCsYd„}d|_tjƒ}||jƒƒ}|tjjƒƒ}|j||ƒdS(NcSsÈ|jddƒ|jddƒ|jddƒtri|jddƒ|jddƒ|jddƒntg|jƒD]H\}}|jddƒjd dƒ|jddƒjd dƒf^qyƒS( NtPSUTIL_TESTINGtPLATtHOMEt__CF_USER_TEXT_ENCODINGtVERSIONER_PYTHON_PREFER_32_BITtVERSIONER_PYTHON_VERSIONs RGs (tpopRVRtdictR©R(R¾tktv((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt clean_dict·s(RVtmaxDiffR0R1RUR4tcopyR2(R-RêR8td1td2((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_environµs    cCsætjdƒ}t}t|d|ƒ|jt|ƒt|gdtjdtjƒ}t j |j ƒ}t |j ƒ|j |jƒƒ|j|jjƒdƒ|j|jƒidd6dd 6ƒ|jƒ|j|jd ƒdS( Ns× #include #include char * const argv[] = {"cat", 0}; char * const envp[] = {"A=1", "X", "C=3", 0}; int main(void) { /* Close stderr on exec so parent can wait for the execve to * finish. */ if (fcntl(2, F_SETFD, FD_CLOEXEC) != 0) return 0; return execve("/bin/cat", argv, envp); } tc_codeR‘tstderrRGRhtAt3tCi(ttextwraptdedentR'RR(R"Rt subprocesstPIPER0R1R3R+RÕRTR2RñRžRUt communicatet returncode(R-RYR”R9R8((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_weird_environËs     $ (gt__name__t __module__t__doc__R.R/R:RBRERSRZR_RcRlRqR|R„R*tskipIfRRˆRRR)R—RR%RR¯RR¹R R¿RRÈRËRÕR×RØRÝRßRRäR!R$RRèR÷RRRRRRR"R&R)R-R0RRR5R=RBRLRORWRZR\RRgRjRrRR R|RƒR‰RRRR”R—R˜RšRœR¡R¢R¬R®R²R³R¿RÂRÅRÈRÏRÚRÛRÜRßRRïRû(((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyR,Ks°    /      +,   "  )       )   + % $       .   DI  'itLimitedUserTestCasecBseeZdZeedƒr6ejƒZejƒZnd„Z d„Z d„Z d„Z d„Z RS(s—Repeat the previous tests by using a limited user. Executed only on UNIX and only if the user who run the test script is root. R·csŠtj|||Žxpgt|ƒD]}|jdƒr#|^q#D]@}t||ƒ‰‡fd†}t||tj||ƒƒqBWdS(Nttestcs&y ˆƒWntjk r!nXdS(N(R0RO(R-(RÎ(s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_s (R,t__init__RÂRÃRztsetattrttypest MethodType(R-RÑRÒRjtattrR((RÎs?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyRüs 5cCs5ttƒtj|ƒtjdƒtjdƒdS(Niè(R"R'R,R.R4tsetegidtseteuid(R-((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyR. s   cCs1tj|jƒtj|jƒtj|ƒdS(N(R4Rt PROCESS_UIDR t PROCESS_GIDR,R/(R-((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyR/scCs?ytjƒjdƒWntjk r-nX|jdƒdS(Niÿÿÿÿsexception not raised(R0R1REROR(R-((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyRLs cCsdS(N((R-((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyRÚs(RüRýRþR9R4R·R R?R RR.R/RLRÚ(((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyRòs     t TestPopencBs2eZdZd„Zd„Zd„Zd„ZRS(sTests for psutil.Popen class.cCs tƒdS(N(R (R-((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyR/*sc Cs‹tddg}tj|dtjdtjƒU}|jƒ|jƒ|j|jt |ƒƒ|j t t |dƒ|j ƒWdQXdS(Ns-csimport time; time.sleep(60);R“RñR™(RR0tPopenR÷RøRWRrR‘RÕRÂR6R7RzRC(R-R[tproc((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyt test_misc-s  cCstjtdgdtjdtjdtjƒ}|jƒWdQX|jjsUt‚|j jsgt‚|j jsyt‚|j |j dƒdS(Ns-VR“RñR‘i( R0R RR÷RøRùR“tclosedRoRñR‘R2Rú(R-R((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_ctx_manager;s  c Csétddg}tj|dtjdtjƒ³}|jƒ|jƒ|jtj|jƒ|jtj|j ƒ|jtj|j t j ƒt rßtjdkrß|jtj|j t jƒ|jtj|j t jƒnWdQXdS(Ns-csimport time; time.sleep(60);R“Rñii(ii(RR0R R÷RøRCR<R6RMR;RHR?RDR RRRËRÌ(R-R[R((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyttest_kill_terminateFs    (RüRýRþR/RRR(((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pyR 's    t__main__(trun(GRþR¥RKRSRkR4R?R†R÷RR¦RõR`RR0RRRRRRRRRR tpsutil._commonR tpsutil._compatR R t psutil.testsR RRRRRRRRRRRRRRRRRRR R!R"R#R$R%R&R'R(R)R*R+tTestCaseR,R·RR Rütpsutil.tests.runnerRt__file__(((s?/usr/lib64/python2.7/site-packages/psutil/tests/test_process.pytsŒ              ÿÿÿÿÿ«53