4\c@sdZddlZddlZddlZddlZddlmZddlmZddlmZddlm Z ddlm Z ddlm Z dd lm Z dd lm Z dd lmZerejd ndZd ZdZdZeje ddejfdYZeje ddejfdYZeje ddejfdYZedkrddlmZeendS(sMACOS specific tests.iN(tMACOS(tcreate_zombie_proc(tget_test_subprocess(t HAS_BATTERY(tMEMORY_TOLERANCE(t reap_children(tretry_on_failure(tsh(tunittestt SC_PAGE_SIZEcCsCt|}|jd}yt|SWntk r>|SXdS(smExpects a sysctl command with an argument and parse the result returning only the value of interest. iN(Rtsplittintt ValueError(tcmdlinetouttresult((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pytsysctls   cCsetd}x3|jdD]}||krPqqWtdttjd|jdtS(s)Wrapper around 'vm_stat' cmdline utility.tvm_stats sline not founds\d+i(RR R R tretsearchtgrouptPAGESIZE(tfieldRtline((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyR(s    c Cs8idd 6}|}d }xH|r5|d d !jsH|d d !dkrc||d 7}|d }qWt|}|j}x_|jD]\}}||krPqqW|dkr|d }|j}ntd|id |d 6}x4t|d D]"\}}d |d d>||tp(R7tzpid((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyR8js cCstdtdS(Nt recursive(RtTrue(R7((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyR9oscCsa|j|jjtj|jj|jj|jj|jj|jj dS(N( R@ROtstatusR=t STATUS_ZOMBIEtppidtuidstgidstterminalR?(RD((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_pidtask_infoss     cCs|jtj|jjdS(N(t assertRaisesR=t ZombieProcessROtexe(RD((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_exe{scCs|jtj|jjdS(N(RZR=R[ROR (RD((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyt test_cmdline~scCs|jtj|jjdS(N(RZR=R[ROtenviron(RD((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyt test_environscCs|jtj|jjdS(N(RZR=R[ROtcwd(RD((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_cwdscCs|jtj|jjdS(N(RZR=R[ROtmemory_full_info(RD((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_memory_full_infoscCs|jtj|jjdS(N(RZR=R[ROt cpu_times(RD((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_cpu_timesscCs|jtj|jjdS(N(RZR=R[ROtnum_ctx_switches(RD((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_num_ctx_switchesscCs|jtj|jjdS(N(RZR=R[ROt num_threads(RD((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_num_threadsscCs|jtj|jjdS(N(RZR=R[ROt open_files(RD((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_open_filesscCs|jtj|jjdS(N(RZR=R[ROt connections(RD((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_connectionsscCs|jtj|jjdS(N(RZR=R[ROtnum_fds(RD((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyt test_num_fdsscCs&|jtjtjf|jjdS(N(RZR=R[t AccessDeniedROtthreads(RD((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyt test_threadss(RKRLRMR8R9RYR]R^R`RbRdRfRhRjRlRnRpRs(((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyRNgs            tTestSystemAPIscBseZdZdZdZdZdZedZedZ edZ edZ ed Z ed Z d Zeje d d ZRS(cCsd}xtjdtD]}tj|j}||j\}}}}|j|j||j|j|t|j |dkr|j d|j |nt|j |d kr|j d|j |qqWdS( NcSstd|j}|jd}|jd|jd}|jd \}}}}|dkrrd}nt|d}t|d}t|d}||||fS(Ns df -k "%s"s iitnoneR"i(RR'R tpopR (tpathRtlinesRtdevttotaltusedtfree((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pytdfs   talli ispsutil=%s, df=%si(ii(i( R=tdisk_partitionstFalset disk_usaget mountpointR@tdeviceRztabsR|tfailR{(RDR}tparttusageRyRzR{R|((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyt test_diskss cCs,td}|j|tjdtdS(Nssysctl hw.logicalcputlogical(RR@R=t cpu_countRR(RDR.((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_cpu_count_logicals cCs,td}|j|tjdtdS(Nssysctl hw.physicalcpuR(RR@R=RR(RDR.((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_cpu_count_physicals cCsstj}|j|jddtd|j|jddtd|j|jddtddS(Nissysctl hw.cpufrequencyssysctl hw.cpufrequency_minssysctl hw.cpufrequency_max(R=tcpu_freqR@tcurrentRtmintmax(RDtfreq((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyt test_cpu_freqs cCs)td}|j|tjjdS(Nssysctl hw.memsize(RR@R=tvirtual_memoryRz(RDtsysctl_hwphymem((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_vmem_totals cCs5td}tjj}|j||dtdS(NR|tdelta(RR=RR|tassertAlmostEqualR(RDt vmstat_valt psutil_val((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_vmem_frees cCs5td}tjj}|j||dtdS(NtactiveR(RR=RRRR(RDRR((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_vmem_actives cCs5td}tjj}|j||dtdS(NtinactiveR(RR=RRRR(RDRR((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_vmem_inactives cCs5td}tjj}|j||dtdS(NtwiredR(RR=RRRR(RDRR((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_vmem_wireds cCs/td}tjj}|j||dS(NtPageins(RR=t swap_memorytsinR@(RDRR((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_swapmem_sins cCs/td}tjj}|j||dS(NtPageout(RR=RtsoutR@(RDRR((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_swapmem_souts cCsxtjjD]|\}}ytd|}Wntk rFqX|j|jd|kd||j|jtt j d|dqWdS(Ns ifconfig %stRUNNINGtmsgs mtu (\d+)i( R=t net_if_statsR(Rt RuntimeErrorR@tisuptmtuR Rtfindall(RDR0tstatsR((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_net_if_stats s  s no batterycCstd}tjd|jd}tjd|jd}|dk}tj}|j|j||j|jt |dS(Ns pmset -g batts(\d+)%isNow drawing from '([^']+)'sAC Power( RRRRR=tsensors_batteryR@t power_pluggedtpercentR (RDRRt drawing_fromRt psutil_result((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyttest_sensors_batterys   (RKRLRRRRRRRRRRRRRRtskipIfRR(((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyRts     t__main__(trun(t__doc__tosRRAR=Rt psutil.testsRRRRRRRRtsysconftNoneRRRR4RtTestCaseR5RNRtRKtpsutil.tests.runnerRt__file__(((s;/usr/lib64/python2.7/site-packages/psutil/tests/test_osx.pyts4     9