JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrB =_~@s dZddlZddlZddlZddlmZddlmZddlmZddlmZddlm Z ddlm Z dd lm Z dd lm Z dd lm Z dd lmZd dZddZddZee dGdddeZee dGdddeZedkrddlmZeedS)zmacOS specific tests.N)MACOS) HAS_BATTERY)PsutilTestCase)retry_on_failure)sh)spawn_testproc) terminate)TOLERANCE_DISK_USAGE)TOLERANCE_SYS_MEM)unittestcCs6t|}|d}yt|Stk r0|SXdS)zmExpects a sysctl command with an argument and parse the result returning only the value of interest. N)rsplitint ValueError)ZcmdlineoutresultrH/opt/alt/python37/lib64/python3.7/site-packages/psutil/tests/test_osx.pysysctls  rcCsVddlm}td}x$|dD]}||kr Pq Wtdttd|d|S)z)Wrapper around 'vm_stat' cmdline utility.r) getpagesizevm_stat zline not foundz\d+) Zpsutil._psutil_posixrrr rrresearchgroup)fieldrrlinerrrr%s rc Csddi}|}d}x@|r&|dds6|dddkrP||d7}|dd}qWt|}|}xD|D]\}}||krlPqlW|dkr|d}|}n td||ddi}x0t|ddD]\}}d|dd >||<qWt|||S) NZ customary) BKMGTPEZYrr .kzcan't interpret %r )isdigitfloatstripitemsupperr enumerater) sZSYMBOLSinitnumletternameZssetprefixirrr human2bytes3s&&    r7z MACOS onlyc@s,eZdZeddZeddZddZdS) TestProcesscCstj|_dS)N)rpid)clsrrr setUpClassPszTestProcess.setUpClasscCst|jdS)N)rr9)r:rrr tearDownClassTszTestProcess.tearDownClassc Cstd|j}|dd}|dd}|dd}t|j}||t dt |||t dt |dS) Nzps -o lstart -p %sZSTARTEDr& z%H:%M:%Sz%Y) rr9replacer,r psutilZProcessZ create_time assertEqualtimestrftime localtime)selfoutputZstart_psZhhmmssyearZ start_psutilrrrtest_process_create_timeXsz$TestProcess.test_process_create_timeN)__name__ __module__ __qualname__ classmethodr;r<rIrrrrr8Ms  r8c@seZdZeddZddZddZddZd d Zed d Z ed dZ eddZ eddZ eddZ eddZddZee dddZdS)TestSystemAPIscCsdd}xrtjddD]b}t|j}||j\}}}}||j|||j||j|j|t d|j|j |t dqWdS)NcSstd|}|d}|d|d}|dd\}}}}|dkrRd}t|d}t|d}t|d}||||fS)Nz df -k "%s"rrZnoner&i)rr,r popr)pathrlinesrdevtotalusedfreerrrdfos      z%TestSystemAPIs.test_disks..dfF)all)delta) rAZdisk_partitions disk_usage mountpointrBdevicerTassertAlmostEqualrVr rU)rFrWpartusagerSrTrUrVrrr test_disksks    zTestSystemAPIs.test_diskscCs td}||tjdddS)Nzsysctl hw.logicalcpuT)logical)rrBrA cpu_count)rFr2rrrtest_cpu_count_logicalsz%TestSystemAPIs.test_cpu_count_logicalcCs td}||tjdddS)Nzsysctl hw.physicalcpuF)ra)rrBrArb)rFr2rrrtest_cpu_count_physicalsz&TestSystemAPIs.test_cpu_count_physicalcCsZt}||jddtd||jddtd||jddtddS)Nizsysctl hw.cpufrequencyzsysctl hw.cpufrequency_minzsysctl hw.cpufrequency_max)rAZcpu_freqrBcurrentrminmax)rFZfreqrrr test_cpu_freqszTestSystemAPIs.test_cpu_freqcCstd}||tjdS)Nzsysctl hw.memsize)rrBrAvirtual_memoryrT)rFZsysctl_hwphymemrrrtest_vmem_totalszTestSystemAPIs.test_vmem_totalcCs&td}tj}|j||tddS)NrV)rY)rrArirVr]r )rF vmstat_val psutil_valrrrtest_vmem_frees zTestSystemAPIs.test_vmem_freecCs&td}tj}|j||tddS)Nactive)rY)rrArirnr]r )rFrkrlrrrtest_vmem_actives zTestSystemAPIs.test_vmem_activecCs&td}tj}|j||tddS)Ninactive)rY)rrArirpr]r )rFrkrlrrrtest_vmem_inactives z!TestSystemAPIs.test_vmem_inactivecCs&td}tj}|j||tddS)Nwired)rY)rrArirrr]r )rFrkrlrrrtest_vmem_wireds zTestSystemAPIs.test_vmem_wiredcCs"td}tj}|||dS)NZPageins)rrA swap_memorysinrB)rFrkrlrrrtest_swapmem_sins zTestSystemAPIs.test_swapmem_sincCs"td}tj}|||dS)NZPageout)rrArtsoutrB)rFrkrlrrrtest_swapmem_souts z TestSystemAPIs.test_swapmem_soutc CsxxrtD]b\}}ytd|}Wntk r:YqX|j|jd|k|d||jtt d|dqWdS)Nz ifconfig %sRUNNING)msgz mtu (\d+)r) rAZ net_if_statsr-r RuntimeErrorrBisupmturrfindall)rFr4Zstatsrrrrtest_net_if_statssz TestSystemAPIs.test_net_if_statsz no batterycCs`td}td|d}td|d}|dk}t}||j|||jt |dS)Nz pmset -g battz(\d+)%r zNow drawing from '([^']+)'zAC Power) rrrrrAZsensors_batteryrB power_pluggedpercentr)rFrrZ drawing_fromrZ psutil_resultrrrtest_sensors_batterysz#TestSystemAPIs.test_sensors_batteryN)rJrKrLrr`rcrdrhrjrmrorqrsrvrxrr skipIfrrrrrrrNfs  rN__main__) run_from_name)__doc__rrCrArZ psutil.testsrrrrrrr r r rrr7rr8rNrJZpsutil.tests.runnerr__file__rrrrs0