ó 4­¯\c@s6dZddlZddlZddlZddlZddlZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z dd l m Z dd l mZdd l mZdd l mZdd l mZddl mZerAejdƒZejƒdkr8edƒZneZneZd„Zd„Zeje dƒdejfd„ƒYƒZeje dƒdejfd„ƒYƒZeje dƒdejfd„ƒYƒZeje dƒdejfd„ƒYƒZe d kr2dd!l!m"Z"e"e#ƒndS("s$Tests specific to all BSD platforms.iÿÿÿÿN(tBSD(tFREEBSD(tNETBSD(tOPENBSD(tget_test_subprocess(t HAS_BATTERY(tMEMORY_TOLERANCE(t reap_children(tretry_on_failure(tsh(tunittest(twhicht SC_PAGE_SIZEitmusecCs}td|ƒ}tr0||jdƒd}n&ts<trV||jdƒd}nyt|ƒSWntk rx|SXdS(smExpects a sysctl command with an argument and parse the result returning only the value of interest. ssysctl s: it=iN(R RtfindRRtintt ValueError(tcmdlinetresult((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pytsysctl+s  cCsYtdƒ}x6|jdƒD]}|j|ƒrPqqWtdƒ‚t|jƒdƒS(s+Thin wrapper around 'muse' cmdline utility.R s sline not foundi(R tsplitt startswithRR(tfieldtouttline((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyR :s   sBSD onlytBSDSpecificTestCasecBseZdZed„ƒZed„ƒZejedƒd„ƒZ d„Z eje dƒ dƒd„ƒZ eje dƒ dƒd „ƒZ d „ZRS( s)Generic tests common to all BSD variants.cCstƒj|_dS(N(Rtpid(tcls((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyt setUpClassNscCs tƒdS(N(R(R((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyt tearDownClassRss -o lstart doesn't work on NETBSDcCsrtd|jƒ}|jddƒjƒ}tj|jƒjƒ}tjdtj |ƒƒ}|j ||ƒdS(Nsps -o lstart -p %stSTARTEDts%a %b %e %H:%M:%S %Y( R RtreplacetstriptpsutiltProcesst create_timettimetstrftimet localtimet assertEqual(tselftoutputtstart_pst start_psutil((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_process_create_timeVs  cCséd„}xÙtjdtƒD]Å}tj|jƒ}||jƒ\}}}}|j|j|ƒ|j|j|ƒt|j |ƒdkr«|j d|j |fƒnt|j |ƒd kr|j d|j |fƒqqWdS( NcSs²td|ƒjƒ}|jdƒ}|jdƒ|jdƒ}|jƒd \}}}}|dkrrd}nt|ƒd}t|ƒd}t|ƒd}||||fS(Ns df -k "%s"s iitnoneR i(R R"RtpopR(tpathRtlinesRtdevttotaltusedtfree((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pytdfbs   talli ispsutil=%s, df=%si(i i(i ( R#tdisk_partitionstFalset disk_usaget mountpointR)tdeviceR4tabsR6tfailR5(R*R7tparttusageR3R4R5R6((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyt test_disks_s Rssysctl cmd not availablecCs,tdƒ}|jtjdtƒ|ƒdS(Nshw.ncputlogical(RR)R#t cpu_counttTrue(R*tsyst((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_cpu_count_logicalzs cCs)tdƒ}|j|tjƒjƒdS(Ns hw.physmem(RR)R#tvirtual_memoryR4(R*tnum((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_virtual_memory_totals cCs¦xŸtjƒjƒD]‹\}}ytd|ƒ}Wntk rFqX|j|jd|kd|ƒd|kr|j|jtt j d|ƒdƒƒqqWdS(Ns ifconfig %stRUNNINGtmsgtmtus mtu (\d+)i( R#t net_if_statstitemsR t RuntimeErrorR)tisupRMRtretfindall(R*tnametstatsR((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_net_if_stats„s   (t__name__t __module__t__doc__t classmethodRRR tskipIfRR.RBR RGRJRV(((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyRJs ""s FREEBSD onlytFreeBSDSpecificTestCasecBs™eZed„ƒZed„ƒZed„ƒZeƒd„ƒZd„Z d„Z d„Z eƒd„ƒZ eƒd„ƒZ d „Zeƒd „ƒZeƒd „ƒZeƒd „ƒZeƒd „ƒZeƒd„ƒZeƒd„ƒZeje dƒd„ƒZeje dƒeƒd„ƒƒZeje dƒeƒd„ƒƒZeje dƒeƒd„ƒƒZeje dƒeƒd„ƒƒZeje dƒeƒd„ƒƒZeje dƒeƒd„ƒƒZd„Zd„Z d„Z!d„Z"d„Z#d„Z$d„Z%d„Z&eje' d ƒd!„ƒZ(eje' d ƒd"„ƒZ)eje'd#ƒd$„ƒZ*d%„Z+RS(&cCstƒj|_dS(N(RR(R((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyR™scCs tƒdS(N(R(R((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyRscCsntdƒjƒd}tjd|ƒ}|sAtd|ƒ‚nd„|dd!Dƒ\}}}|||fS(Ns swapinfo -kiÿÿÿÿs\s+sCan't parse swapinfo: %scss|]}t|ƒdVqdS(iN(R(t.0tp((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pys «sii(R t splitlinesRRRR(R+tpartsR4R5R6((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pytparse_swapinfo¡s  c Csôtd|jƒ}tj|jƒjdtƒ}|jdƒd}x©|rï|jƒ}|jƒ}|d \}}}} } |jƒ} |jd||f| j ƒ|jt | ƒ| j ƒ| j j dƒsG|j|d| j ƒqGqGWdS( Nsprocstat -v %stgroupeds iis%s-%st[i (R RR#R$t memory_mapsR:RR0R)taddrRtrssR1R( R*RtmapsR2Rtfieldst_tstarttstoptpermstrestmap((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_proc_memory_maps®s    cCsPtd|jƒ}|jtj|jƒjƒ|jdƒdjƒdƒdS(Nsprocstat -b %ss iiÿÿÿÿ(R RR)R#R$texeR(R*R((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyt test_proc_exe½scCsbtd|jƒ}|jdjtj|jƒjƒƒdj|jdƒdjƒdƒƒdS(Nsprocstat -c %st s ii(R RR)tjoinR#R$RR(R*R((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_proc_cmdlineÂs$c Cs td|jƒ}|jdƒdjƒdd!\}}}}}}tj|jƒ}|jƒ} |jƒ} |j| jt |ƒƒ|j| j t |ƒƒ|j| j t |ƒƒ|j| jt |ƒƒ|j| j t |ƒƒ|j| j t |ƒƒdS(Nsprocstat -s %ss iii( R RRR#R$tuidstgidsR)trealRt effectivetsaved( R*RteuidtruidtsuidtegidtrgidtsgidR^RuRv((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_proc_uids_gidsÇs2  cCsg}td|jƒ}tj|jƒ}xË|jdƒD]º}|jƒjƒ}d|kr¤t|jƒdƒ}|jƒj }|j ||ƒ|j dƒq;d|kr;t|jƒdƒ}|jƒj }|j ||ƒ|j dƒq;q;Wt|ƒdkrtdƒ‚ndS(Nsprocstat -r %ss s voluntary contextiÿÿÿÿs involuntary contextis)couldn't find lines match in procstat out(R RR#R$RtlowerR"Rtnum_ctx_switchest voluntaryR)tappendtNonet involuntarytlenRP(R*ttestedRR^Rt pstat_valuet psutil_value((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_proc_ctx_switchesÔs"  cCs@g}td|jƒ}tj|jƒ}xí|jdƒD]Ü}|jƒjƒ}d|krµtd|jƒdjdƒdƒ}|jƒj }|j ||ƒ|j dƒq;d|kr;td|jƒdjdƒdƒ}|jƒj }|j ||ƒ|j dƒq;q;Wt|ƒdkr<td ƒ‚ndS( Nsprocstat -r %ss s user times0.iÿÿÿÿt.s system timeis)couldn't find lines match in procstat out(R RR#R$RRR"tfloatt cpu_timestuserR)R„R…tsystemR‡RP(R*RˆRR^RR‰RŠ((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_proc_cpu_timesès" ' 'cCs¿d}tt|ƒƒ}|jtjƒj|ƒd}t|ƒ}t|jƒdjdƒdƒ}t|jƒdjdƒdƒ}|jtjƒj|ƒ|jtjƒj|ƒdS(Nsdev.cpu.0.freqsdev.cpu.0.freq_levelsit/iÿÿÿÿ( RRR)R#tcpu_freqtcurrentRtmaxtmin(R*tsensort sysctl_resulttmax_freqtmin_freq((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyt!test_cpu_frequency_against_sysctlüs ##cCs3tdƒt}|jtjƒj|dtƒdS(Nsvm.stats.vm.v_active_counttdelta(RtPAGESIZEtassertAlmostEqualR#RHtactiveR(R*RF((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_vmem_activescCs3tdƒt}|jtjƒj|dtƒdS(Nsvm.stats.vm.v_inactive_countRœ(RRRžR#RHtinactiveR(R*RF((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_vmem_inactivescCs3tdƒt}|jtjƒj|dtƒdS(Nsvm.stats.vm.v_wire_countRœ(RRRžR#RHtwiredR(R*RF((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_vmem_wiredscCs3tdƒt}|jtjƒj|dtƒdS(Nsvm.stats.vm.v_cache_countRœ(RRRžR#RHtcachedR(R*RF((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_vmem_cached!scCs3tdƒt}|jtjƒj|dtƒdS(Nsvm.stats.vm.v_free_countRœ(RRRžR#RHR6R(R*RF((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_vmem_free'scCs/tdƒ}|jtjƒj|dtƒdS(Ns vfs.bufspaceRœ(RRžR#RHtbuffersR(R*RF((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_vmem_buffers-s smuse not installedcCs)tdƒ}|jtjƒj|ƒdS(NtTotal(R R)R#RHR4(R*RI((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_muse_vmem_total5s cCs/tdƒ}|jtjƒj|dtƒdS(NtActiveRœ(R RžR#RHRŸR(R*RI((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_muse_vmem_active:s cCs/tdƒ}|jtjƒj|dtƒdS(NtInactiveRœ(R RžR#RHR¡R(R*RI((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_muse_vmem_inactiveAs cCs/tdƒ}|jtjƒj|dtƒdS(NtWiredRœ(R RžR#RHR£R(R*RI((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_muse_vmem_wiredHs cCs/tdƒ}|jtjƒj|dtƒdS(NtCacheRœ(R RžR#RHR¥R(R*RI((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_muse_vmem_cachedOs cCs/tdƒ}|jtjƒj|dtƒdS(NtFreeRœ(R RžR#RHR6R(R*RI((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_muse_vmem_freeVs cCs/tdƒ}|jtjƒj|dtƒdS(NtBufferRœ(R RžR#RHR¨R(R*RI((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_muse_vmem_buffers]s cCs)|jtjƒjtdƒddƒdS(Nsvm.stats.sys.v_swtchRœiè(RžR#t cpu_statst ctx_switchesR(R*((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_cpu_stats_ctx_switchesdscCs)|jtjƒjtdƒddƒdS(Nsvm.stats.sys.v_intrRœiè(RžR#R¸t interruptsR(R*((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_cpu_stats_interruptshscCs)|jtjƒjtdƒddƒdS(Nsvm.stats.sys.v_softRœiè(RžR#R¸tsoft_interruptsR(R*((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_cpu_stats_soft_interruptslscCs)|jtjƒjtdƒddƒdS(Nsvm.stats.sys.v_syscallRœiè(RžR#R¸tsyscallsR(R*((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_cpu_stats_syscallspscCs8|jƒ\}}}|jtjƒj|dtƒdS(NRœ(RaRžR#t swap_memoryR6R(R*R4R5R6((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_swapmem_freezscCs8|jƒ\}}}|jtjƒj|dtƒdS(NRœ(RaRžR#RÁR5R(R*R4R5R6((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_swapmem_usedscCs8|jƒ\}}}|jtjƒj|dtƒdS(NRœ(RaRžR#RÁR4R(R*R4R5R6((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_swapmem_total„scCs\tdƒ}||jdƒd}||jdƒ }t|ƒ}|j|tjƒƒdS(Nssysctl kern.boottimes sec = it,(RRRR)R#t boot_time(R*tstbtime((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_boot_time‹s   s no batterycCsäd„}tdƒ}tg|jdƒD],}|jdƒd|jdƒdf^q(ƒ}tjƒ}t|djdd ƒƒ}|d }|j|j|ƒ|d krÇ|j|j tj ƒn|j||j ƒ|ƒdS( NcSs8t|dƒ\}}t|dƒ\}}d||fS(Ni<s%d:%02d(tdivmod(tsecstmRÇth((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyt secs2hours–ss acpiconf -i 0s s iiÿÿÿÿsRemaining capacity:t%R sRemaining time:tunknown( R tdictRR#tsensors_batteryRR!R)tpercenttsecslefttPOWER_TIME_UNLIMITED(R*RÎRtxRhtmetricsRÓtremaining_time((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_sensors_battery”s  B   cCs–|jtjƒjtdƒƒ|jtjƒjtdƒdkƒtjƒj}|dkrx|jtdƒdƒn|j|tdƒdƒdS(Nshw.acpi.battery.lifeshw.acpi.aclineiishw.acpi.battery.timeiÿÿÿÿi<(R)R#RÒRÓRt power_pluggedRÔ(R*RÔ((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyt#test_sensors_battery_against_sysctl§s  s has batterycCsK|jtƒ#tdƒtdƒtdƒWdQX|jtjƒƒdS(Nshw.acpi.battery.lifeshw.acpi.battery.timeshw.acpi.acline(t assertRaisesRPRt assertIsNoneR#RÒ(R*((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_sensors_battery_no_battery³s   cCs¾tjtƒ}x¨t|ƒD]š}d|}ttt|ƒd ƒƒ}|jtjƒd|j |ddƒd|}ttt|ƒd ƒƒ}|j tjƒd|j |ƒqWdS(Nsdev.cpu.%s.temperatureiÿÿÿÿtcoretempRœi sdev.cpu.%s.coretemp.tjmax( R#RDREtrangeRRRRžtsensors_temperaturesR”R)thigh(R*tnum_cpustcpuR—R˜((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyt(test_sensors_temperatures_against_sysctlÀs   (,RWRXRZRRt staticmethodRaRRoRqRtR€R‹R‘R›R R¢R¤R¦R§R©R R[tMUSE_AVAILABLER«R­R¯R±R³RµR·RºR¼R¾RÀRÂRÃRÄRÉRRÙRÛRÞRå(((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyR\–sR              s OPENBSD onlytOpenBSDSpecificTestCasecBseZd„ZRS(cCsMtdƒ}tjj|dƒ}tjjtjƒƒ}|j||ƒdS(Ns kern.boottimes%a %b %d %H:%M:%S %Y(Rtdatetimetstrptimet fromtimestampR#RÆR)(R*RÇtsys_btt psutil_bt((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyRÉØs (RWRXRÉ(((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyRèÕss NETBSD onlytNetBSDSpecificTestCasecBsheZed„ƒZd„Zd„Zd„Zd„Zd„Zd„Z d„Z d„Z d „Z RS( cCsdtddƒ?}x5|D]-}|j|ƒrt|jƒdƒdSqWWdQXtd|ƒ‚dS(Ns /proc/meminfotrbiis can't find %s(topenRRRR(tlook_fortfR((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyt parse_meminfoçs  "cCs&|jtjƒj|jdƒƒdS(Ns MemTotal:(R)R#RHR4Ró(R*((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_vmem_totalïscCs,|jtjƒj|jdƒdtƒdS(NsMemFree:Rœ(RžR#RHR6RóR(R*((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyR§óscCs,|jtjƒj|jdƒdtƒdS(NsBuffers:Rœ(RžR#RHR¨RóR(R*((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyR©øscCs,|jtjƒj|jdƒdtƒdS(Ns MemShared:Rœ(RžR#RHtsharedRóR(R*((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyttest_vmem_sharedýscCs,|jtjƒj|jdƒdtƒdS(Ns SwapTotal:Rœ(RžR#RÁR4RóR(R*((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyRÄscCs,|jtjƒj|jdƒdtƒdS(Ns SwapFree:Rœ(RžR#RÁR6RóR(R*((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyRÂscCs-tjƒ}|j|j|j|jƒdS(N(R#RÁR)R5R4R6(R*tsmem((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyRà s cCstddƒM}xC|D]/}|jdƒrt|jƒdƒ}PqqWtdƒ‚WdQX|jtjƒj|ddƒdS(Ns /proc/statRïtintriscouldn't find lineRœiè( RðRRRRRžR#R¸R»(R*RòRR»((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyR¼s cCstddƒM}xC|D]/}|jdƒrt|jƒdƒ}PqqWtdƒ‚WdQX|jtjƒj|ddƒdS(Ns /proc/statRïtctxtiscouldn't find lineRœiè( RðRRRRRžR#R¸R¹(R*RòRR¹((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyRºs ( RWRXRæRóRôR§R©RöRÄRÂRÃR¼Rº(((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyRîäs        t__main__(trun($RYRétosRRR&R#RRRRt psutil.testsRRRRRR R R tsysconfRtgetuidRçR:RR R[tTestCaseRR\RèRîRWtpsutil.tests.runnerRût__file__(((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_bsd.pyt sJ        Kÿ?B