Viewing File: /opt/alt/python35/lib64/python3.5/site-packages/psutil/tests/__pycache__/test_linux.cpython-35.pyc



Cs[D@sadZddlmZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlmZddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddlm$Z$ddlm%Z%ddlm&Z&ddlm'Z'ddlm(Z(ddlm)Z)ddlm*Z*ddlm+Z+ej,j-ej,j.e/Z0dZ1dZ2dZ3erdZ4d d!Z5d"d#Z6d$d%Z7d&d'Z8d(d)Z9d*d+Z:ej;d,d-Z<ej;d.d/Z=e*j>ed0Gd1d2d2e*j?Z@e*j>ed0Gd3d4d4e*j?ZAe*j>ed0Gd5d6d6e*j?ZBe*j>ed0Gd7d8d8e*j?ZCe*j>ed0Gd9d:d:e*j?ZDe*j>ed0Gd;d<d<e*j?ZEe*j>ed0Gd=d>d>e*j?ZFe*j>ed0e*j>ed?Gd@dAdAe*j?ZGe*j>ed0GdBdCdCe*j?ZHe*j>ed0GdDdEdEe*j?ZIe*j>ed0GdFdGdGe*j?ZJe*j>ed0GdHdIdIe*j?ZKe*j>ed0GdJdKdKe*j?ZLeMdLkr]e#e/dS)MzLinux specific tests.)divisionN)LINUX)
basestring)PY3)u)
call_until)HAS_BATTERY)HAS_CPU_FREQ)
HAS_RLIMIT)MEMORY_TOLERANCE)mock)PYPY)pyrun)
reap_children)
reload_module)retry_before_failing)run_test_module_by_name)safe_rmpath)sh)skip_on_not_implemented)TESTFN)
ThreadTask)TRAVIS)unittest)whichiii'icCsddl}|dd}tr1t|d}tjtjtj}tj|=tj|j	|j
ttj
d|ddSWdQRXdS)Nrascii256s)fcntlrbytessocketAF_INET
SOCK_DGRAM
contextlibclosing	inet_ntoaioctlfilenoSIOCGIFADDRstructpack)ifnamer sr//test_linux.pyget_ipv4_addressAsr1c
sddl}|dd}tr1t|d}tjtjtj}tj||j|j	t
tjd|}trddnddl
}|jdjfdd	|d
dDdd
SWdQRXdS)NrrrrcSs|S)Nr/)xr/r/r0ordXszget_mac_address.<locals>.ordcs g|]}d|qS)z%02x:r/).0char)r3r/r0
<listcomp>]s	z#get_mac_address.<locals>.<listcomp>r)r rr!r"r#r$r%r&r(r)
SIOCGIFHWADDRr+r,__builtin__r3join)r-r r.infor<r/)r3r0get_mac_addressNs!	r?cCstd}|jd}xi|D]a}|jdr"|j\}}}}tjdd}|t|t|t|Sq"Wtddj|dS)zQParse 'free' cmd and return swap memory's s total, used and free
    values.
    zfree -b
ZSwapfreeztotal used freez&can't find 'Swap' in 'free' output:
%sN)rsplit
startswithcollections
namedtupleint
ValueErrorr=)outlinesline_totalusedrAntr/r/r0	free_swap`s
&rOcCstd}|jd}xt|D]l}|jdr"dd|jddD\}}}}tjdd	}||||||Sq"Wtd
dj|dS)zSParse 'free' cmd and return physical memory's total, used
    and free values.
    zfree -br@ZMemcSsg|]}t|qSr/)rF)r5r2r/r/r0r7|s	z free_physmem.<locals>.<listcomp>r9rAztotal used free shared outputz%can't find 'Mem' in 'free' output:
%sN)rrBrCrDrErGr=)rHrIrJrLrMrAsharedrNr/r/r0free_physmemos
/rRcCsitd}xF|jdD]5}|j}||krt|jddSqWtd|dS)Nz	vmstat -sr@ rz can't find %r in 'vmstat' output)rrBstriprFrG)statrHrJr/r/r0vmstatsrVcCs8tdj}ttt|jdjdS)Nzfree -Vr9.r:)rrTtuplemaprFrB)rHr/r/r0get_free_version_infosrZc	#s^fdd}ttr*dnd}tj|ddd|}|VWdQRXdS)	zMock open() builtin and forces it to return a certain `content`
    on read() if the path being opened matches `for_path`.
    csb|krNtr>ttr.tjStjSq^tjSn|||SdS)N)r
isinstancerioStringIOBytesIO)nameargskwargs)contentfor_path	orig_openr/r0	open_mocks
z$mock_open_content.<locals>.open_mockz
builtins.openz__builtin__.opencreateTside_effectN)openrrpatch)rcrbrepatch_pointmr/)rbrcrdr0mock_open_contents
rlc	#s^fdd}ttr*dnd}tj|ddd|}|VWdQRXdS)	zZMock open() builtin and raises `exc` if the path being opened
    matches `for_path`.
    cs)|krn|||SdS)Nr/)r_r`ra)excrcrdr/r0res	z&mock_open_exception.<locals>.open_mockz
builtins.openz__builtin__.openrfTrgN)rhrrri)rcrmrerjrkr/)rmrcrdr0mock_open_exceptions
rnz
LINUX onlyc@sNeZdZddZejeo0ed"kdeddZ	eje
ded	d
ZeddZeje
ded
dZ
eje
deddZeddZeddZddZddZddZddZddZdd Zd!S)#TestSystemVirtualMemorycCs3tdd}tjj}|j||dS)Nztotal memoryi)rVpsutilvirtual_memoryrLassertAlmostEqual)selfvmstat_valuepsutil_valuer/r/r0
test_totalsz"TestSystemVirtualMemory.test_totalzold free versionc
CsQt}|j}tjj}|j||dtdd|||jfdS)Ndeltamsgz	%s %s 
%s)rRrMrprqrrroutput)rsrA
free_valuerur/r/r0	test_useds		z!TestSystemVirtualMemory.test_usedzunreliable on TRAVIScCs9tdd}tjj}|j||dtdS)Nzfree memoryiry)rVrprqrArrr)rsrtrur/r/r0	test_freesz!TestSystemVirtualMemory.test_freecCs9tdd}tjj}|j||dtdS)Nz
buffer memoryiry)rVrprqbuffersrrr)rsrtrur/r/r0test_bufferssz$TestSystemVirtualMemory.test_bufferscCs9tdd}tjj}|j||dtdS)Nz
active memoryiry)rVrprqactiverrr)rsrtrur/r/r0test_activesz#TestSystemVirtualMemory.test_activecCs9tdd}tjj}|j||dtdS)Nzinactive memoryiry)rVrprqinactiverrr)rsrtrur/r/r0
test_inactivesz%TestSystemVirtualMemory.test_inactivec
Cslt}|j}|dkr-tjdtjj}|j||dtdd|||jfdS)Nrz%free does not support 'shared' columnryrzz	%s %s 
%s)	rRrQrSkipTestrprqrrrr{)rsrAr|rur/r/r0test_shareds		z#TestSystemVirtualMemory.test_sharedc
Cstd}|jd}d|dkr=tjdnRt|djd
}tjj}|j||dt	dd	|||fdS)Nzfree -br@	availablerz(free does not support 'available' columnr9ryrzz	%s %s 
%sr:)
rrBrrrFrprqrrrr)rsrHrIr|rur/r/r0test_available	sz&TestSystemVirtualMemory.test_availablecCstdtjdj}tjdd}tjdtj}|j	s^t
|jt|d|d}|j
jdst
|jd	t|j|jd
t|j|jdt|j|jdt|j|jd
t|j|jdt|j|jdt|j|j|jd|j|jd|j|jd|j|jd|j|jd|j|jd|j|jdWdQRXWdQRXdS)Nz
/proc/meminfoap                Active(anon):    6145416 kB
                Active(file):    2950064 kB
                Inactive(anon):   574764 kB
                Inactive(file):  1567648 kB
                MemAvailable:         -1 kB
                MemFree:         2057400 kB
                MemTotal:       16325648 kB
                SReclaimable:     346648 kB
                recordTalwaysr9rzpsutil/_pslinux.pyz#memory stats couldn't be determinedcachedrQrrrr)rltextwrapdedentencodewarningscatch_warningssimplefilterrprqcalledAssertionErrorassertEquallenfilenameendswithassertInstrmessagerrrrQrrslab)rsrkwsretwr/r/r0test_warnings_on_missess4	

z/TestSystemVirtualMemory.test_warnings_on_missesc
Csddlm}ddlm}i}|d@}x6|D].}|j}t|dd||d<q<WWdQRX||}d|kr|d}t|||d}	|j|	d	dS)
Nr)calculate_avail_vmem)open_binaryz
/proc/meminfor9is
MemAvailable:d
)psutil._pslinuxrrrBrFabsZ
assertLess)
rsrrZmemsfrJfieldsabZdiff_percentr/r/r0test_avail_old_percent?s
'
z.TestSystemVirtualMemory.test_avail_old_percentcCstdtjdjt}tjdd}tj}WdQRX|jsXt	|j
|jd	|d}|jdt
|jWdQRXdS)
Nz
/proc/meminfoaL                Active:          9444728 kB
                Active(anon):    6145416 kB
                Active(file):    2950064 kB
                Buffers:          287952 kB
                Cached:          4818144 kB
                Inactive(file):  1578132 kB
                Inactive(anon):   574764 kB
                Inactive(file):  1567648 kB
                MemAvailable:    6574984 kB
                MemFree:         2057400 kB
                MemTotal:       16325648 kB
                Shmem:            577588 kB
                SReclaimable:     346648 kB
                rTiSdirz,inactive memory stats couldn't be determinedl ")rlrrrrrrprqrrrrrrr)rsrkrrrr/r/r0 test_avail_old_comes_from_kernelQs
z8TestSystemVirtualMemory.test_avail_old_comes_from_kernelcCstdtjdjt}tjdd}tj}WdQRX|jsXt	|j
|jd|d}|jd	t
|jWdQRXdS)
Nz
/proc/meminfoa                    Active:          9444728 kB
                    Active(anon):    6145416 kB
                    Buffers:          287952 kB
                    Cached:          4818144 kB
                    Inactive(file):  1578132 kB
                    Inactive(anon):   574764 kB
                    MemFree:         2057400 kB
                    MemTotal:       16325648 kB
                    Shmem:            577588 kB
                    rTidiiIrz,inactive memory stats couldn't be determinedi}l'Ll`LG)rlrrrrrrprqrrrrrrr)rsrkrrrr/r/r0test_avail_old_missing_fieldsms

z5TestSystemVirtualMemory.test_avail_old_missing_fieldscCstdtjdjtdttjdctj	ddI}t
j}|j|j
d|d
}|jdt|jWdQRXWdQRXWdQRXdS)Nz
/proc/meminfoaT                    Active:          9444728 kB
                    Active(anon):    6145416 kB
                    Active(file):    2950064 kB
                    Buffers:          287952 kB
                    Cached:          4818144 kB
                    Inactive(file):  1578132 kB
                    Inactive(anon):   574764 kB
                    Inactive(file):  1567648 kB
                    MemFree:         2057400 kB
                    MemTotal:       16325648 kB
                    Shmem:            577588 kB
                    SReclaimable:     346648 kB
                    z/proc/zoneinfozno such file or directoryrTidiiIrz,inactive memory stats couldn't be determinedi}l'Ll`LG)rlrrrrnIOErrorerrnoENOENTrrrprqrrrrr)rsrrrr/r/r0test_avail_old_missing_zoneinfos


z7TestSystemVirtualMemory.test_avail_old_missing_zoneinfocsfdd}ttr$dnd}tj|ddd|}tj}|jsct|j|j	d|j|j
d|j|jd|j|jd|j|j
d|j|jd|j|jd|j|jd|j|jdWdQRXdS)Ncs<|dkr(tjtjdjS|||SdS)Nz
/proc/meminfoa=	                    MemTotal:              100 kB
                    MemFree:               2 kB
                    MemAvailable:          3 kB
                    Buffers:               4 kB
                    Cached:                5 kB
                    SwapCached:            6 kB
                    Active:                7 kB
                    Inactive:              8 kB
                    Active(anon):          9 kB
                    Inactive(anon):        10 kB
                    Active(file):          11 kB
                    Inactive(file):        12 kB
                    Unevictable:           13 kB
                    Mlocked:               14 kB
                    SwapTotal:             15 kB
                    SwapFree:              16 kB
                    Dirty:                 17 kB
                    Writeback:             18 kB
                    AnonPages:             19 kB
                    Mapped:                20 kB
                    Shmem:                 21 kB
                    Slab:                  22 kB
                    SReclaimable:          23 kB
                    SUnreclaim:            24 kB
                    KernelStack:           25 kB
                    PageTables:            26 kB
                    NFS_Unstable:          27 kB
                    Bounce:                28 kB
                    WritebackTmp:          29 kB
                    CommitLimit:           30 kB
                    Committed_AS:          31 kB
                    VmallocTotal:          32 kB
                    VmallocUsed:           33 kB
                    VmallocChunk:          34 kB
                    HardwareCorrupted:     35 kB
                    AnonHugePages:         36 kB
                    ShmemHugePages:        37 kB
                    ShmemPmdMapped:        38 kB
                    CmaTotal:              39 kB
                    CmaFree:               40 kB
                    HugePages_Total:       41 kB
                    HugePages_Free:        42 kB
                    HugePages_Rsvd:        43 kB
                    HugePages_Surp:        44 kB
                    Hugepagesize:          45 kB
                    DirectMap46k:          46 kB
                    DirectMap47M:          47 kB
                    DirectMap48G:          48 kB
                    )r\r^rrr)r_r`ra)rdr/r0res1zETestSystemVirtualMemory.test_virtual_memory_mocked.<locals>.open_mockz
builtins.openz__builtin__.openrfTrgrirPrwiiiipiTii iXi)rhrrrirprqrrrrLrArrrQrrrr)rsrerjrkmemr/)rdr0test_virtual_memory_mockeds7z2TestSystemVirtualMemory.test_virtual_memory_mockedN)rwrwrx)__name__
__module____qualname__rvrskipIfrrZrr}rr~rrrrrrrrrrrr/r/r/r0ros&	'roc@seZdZeddZddZeddZeddZd	d
Z	ddZ
d
dZddZdS)TestSystemSwapMemoryc	Cs8td}|j}WdQRXd|ko7d|kS)z3Return True if /proc/meminfo provides swap metrics.z
/proc/meminfoNz
SwapTotal:z	SwapFree:)rhread)rdatar/r/r0meminfo_has_swap_infosz*TestSystemSwapMemory.meminfo_has_swap_infocCs1tj}tjj}|j||dtS)Nry)rOrLrpswap_memoryrrr)rsr|rur/r/r0rvszTestSystemSwapMemory.test_totalcCs1tj}tjj}|j||dtS)Nry)rOrMrprrrr)rsr|rur/r/r0r}szTestSystemSwapMemory.test_usedcCs1tj}tjj}|j||dtS)Nry)rOrArprrrr)rsr|rur/r/r0r~szTestSystemSwapMemory.test_freecCstjddd}tjdd}tjdtj}|jsUt|j	t
|d|d}|jjdst|j
d	t|j|j	|jd|j	|jdWdQRXWdQRXdS)
Nzpsutil._pslinux.openrfTrrr9rzpsutil/_pslinux.pyz9'sin' and 'sout' swap memory stats couldn't be determined)rrirrrrprrrrrrrrrrsinsout)rsrkrrrr/r/r0test_missing_sin_souts

z*TestSystemSwapMemory.test_missing_sin_soutcCstdttjd}tjdd}tjdtj}|j	s[t
|jt|d|d}|j
jdst
|jd	t|j|j|jd|j|jdWdQRXWdQRXdS)
Nz/proc/vmstatzno such file or directoryrTrr9rzpsutil/_pslinux.pyzK'sin' and 'sout' swap memory stats couldn't be determined and were set to 0)rnrrrrrrrprrrrrrrrrrrr)rsrkrrrr/r/r0test_no_vmstat_mocked!s

z*TestSystemSwapMemory.test_no_vmstat_mockedcCs|jstjdStjd}tj}WdQRX|jsNtddl	j
}|j\}}}}}}}||9}||9}|j|j
||j|j|dS)Nz!/proc/meminfo has no swap metricsz"psutil._pslinux.cext.linux_sysinfor)rrskiprrirprrrZpsutil._psutil_linuxZ
_psutil_linuxZ
linux_sysinforrLrA)rsrkswapZcextrKrLrAZunit_multiplierr/r/r0test_meminfo_against_sysinfo4s
!

z1TestSystemSwapMemory.test_meminfo_against_sysinfoc	Cs6tdd }tj|js+tWdQRXdS)Nz
/proc/meminfo)rlrprrr)rsrkr/r/r0#test_emulate_meminfo_has_no_metricsDs
z8TestSystemSwapMemory.test_emulate_meminfo_has_no_metricsN)
rrrstaticmethodrrvrr}r~rrrrr/r/r/r0rsrc@seZdZejedddZejejj	ddddZ
ejejj	dd	d
dZejedd
ddZ
ejeddddZddZddZejedddZejedejedddZejedddZejedd d!Zejedejedd"d#Zd$S)%
TestSystemCPUzunknown failure on traviscCstjj}tjdtjdd}ttt	|j
d}|dkrl|jd|n|jd||d
kr|jd	|n|jd	||dkr|jd|n|jd|dS)Nz
\d+\.\d+\.\d+rrrWstealrZguestrwZ
guest_nice)rrr)rrr)rwrr)
rp	cpu_times_fieldsrefindallosunamerXrYrFrBrassertNotIn)rsrZ
kernel_verZkernel_ver_infor/r/r0test_cpu_timesUs zTestSystemCPU.test_cpu_timesz/sys/devices/system/cpu/onlinez-/sys/devices/system/cpu/online does not existc
Csqtd}|jj}WdQRXdt|krmt|jddd}|jtj|dS)Nz/sys/devices/system/cpu/online-r9)	rhrrTrrFrBrrp	cpu_count)rsrvaluer/r/r0*test_cpu_count_logical_w_sysdev_cpu_onlinegs
z8TestSystemCPU.test_cpu_count_logical_w_sysdev_cpu_onlinez/sys/devices/system/cpuz&/sys/devices/system/cpu does not existcCsBtjd}tdd|D}|jtj|dS)Nz/sys/devices/system/cpucSs.g|]$}tjd|dk	r|qS)zcpu\d+$N)rsearch)r5r2r/r/r0r7ts	zITestSystemCPU.test_cpu_count_logical_w_sysdev_cpu_num.<locals>.<listcomp>)rlistdirrrrpr)rsZlscountr/r/r0'test_cpu_count_logical_w_sysdev_cpu_numpsz5TestSystemCPU.test_cpu_count_logical_w_sysdev_cpu_numZnprocznproc utility not availablecCs2ttd}|jtjdd|dS)Nznproc --alllogicalT)rFrrrpr)rsnumr/r/r0test_cpu_count_logical_w_nprocwsz,TestSystemCPU.test_cpu_count_logical_w_nprocZlscpuzlscpu utility not availablecCsNtd}tdd|jdD}|jtjdd|dS)Nzlscpu -pcSs%g|]}|jds|qS)#)rC)r5r2r/r/r0r7s	z@TestSystemCPU.test_cpu_count_logical_w_lscpu.<locals>.<listcomp>r@rT)rrrBrrpr)rsrHrr/r/r0test_cpu_count_logical_w_lscpu|s"z,TestSystemCPU.test_cpu_count_logical_w_lscpuc&Cstddl}|jj}tjddt=}|j|jj||js[ttjdddK}|j	|jj|j|j
d|j|jdddWdQRXtd	d
}|j
}WdQRXtj|}tjdd|dd }|j|jj|WdQRXtd	d'}|j|jj||jWdQRXWdQRXdS)
Nrzpsutil._pslinux.os.sysconfrgzpsutil._pslinux.openrfTrz
/proc/statz
/proc/cpuinforbreturn_valuer)r_pslinuxZcpu_count_logicalrrirGrrrassertIsNoneZ
call_count	call_argsrhrr\r^rl)rsrpZoriginalrkrZcpuinfo_data	fake_filer/r/r0test_cpu_count_logical_mockeds&" z+TestSystemCPU.test_cpu_count_logical_mockedc	CsHtjddd,}|jtjj|js=tWdQRXdS)Nzpsutil._pslinux.openrfT)rrirrprZcpu_count_physicalrr)rsrkr/r/r0test_cpu_count_physical_mockedsz,TestSystemCPU.test_cpu_count_physical_mockedz
not supportedc	Cs4tjddg|jtjWdQRXdS)Nzpsutil._pslinux.glob.globr)rrirrpcpu_freq)rsr/r/r0test_cpu_freq_no_resultsz%TestSystemCPU.test_cpu_freq_no_resultzfails on Travisc
ssfdd}gtjtjdd|dd-tjsRt|jtdWdQRXdS)Ncs;|jdr jdgSjd|SdS)Nz&/sys/devices/system/cpu/cpufreq/policy)rCappend)pattern)flags	orig_globr/r0	glob_mocks


z>TestSystemCPU.test_cpu_freq_use_second_file.<locals>.glob_mockzpsutil._pslinux.glob.globrgrfTr)globrrirprrrr)rsrr/)rrr0test_cpu_freq_use_second_files	
z+TestSystemCPU.test_cpu_freq_use_second_filecsfdd}ttr$dnd}tj|d|jtjdddgJtj}|j|jd	|j|jd
|j|j	dWdQRXWdQRXdS)Ncsh|jdrtjdS|jdr8tjdS|jdrTtjdS|||SdS)Nz/scaling_cur_freqs500000z/scaling_min_freqs600000z/scaling_max_freqs700000)rr\r^)r_r`ra)rdr/r0res


z;TestSystemCPU.test_cpu_freq_emulate_data.<locals>.open_mockz
builtins.openz__builtin__.openrgz	glob.globrz'/sys/devices/system/cpu/cpufreq/policy0g@@g@g@)
rhrrrirprrcurrentminmax)rsrerjfreqr/)rdr0test_cpu_freq_emulate_datas

z(TestSystemCPU.test_cpu_freq_emulate_datacsfdd}ttr$dnd}dddg}tj|d|gtjd	d
|Jtj}|j|jd|j|jd|j|j	d
WdQRXWdQRXdS)Ncsh|jdrtjdS|jdr8tjdS|jdrTtjdS|||SdS)Nz/scaling_cur_freqs100000z/scaling_min_freqs200000z/scaling_max_freqs300000)rr\r^)r_r`ra)rdr/r0res


z@TestSystemCPU.test_cpu_freq_emulate_multi_cpu.<locals>.open_mockz
builtins.openz__builtin__.openz'/sys/devices/system/cpu/cpufreq/policy0z'/sys/devices/system/cpu/cpufreq/policy1z'/sys/devices/system/cpu/cpufreq/policy2rgz	glob.globrgY@gi@gr@)
rhrrrirprrrrr)rsrerjpoliciesrr/)rdr0test_cpu_freq_emulate_multi_cpus
	z-TestSystemCPU.test_cpu_freq_emulate_multi_cpucs
fdd}ttr$dnd}dddg}tj|d|Atjd	d
|$tj}|j|jdWdQRXWdQRXfdd}ttrdnd}tj|d|5tjd	d
||jt	tjWdQRXWdQRXdS)
NcsT|jdr$ttjdn,|jdr@tjdS|||SdS)Nz/scaling_cur_freqr4z/cpuinfo_cur_freqs200000)rrrrr\r^)r_r`ra)rdr/r0res

zGTestSystemCPU.test_cpu_freq_no_scaling_cur_freq_file.<locals>.open_mockz
builtins.openz__builtin__.openz'/sys/devices/system/cpu/cpufreq/policy0z'/sys/devices/system/cpu/cpufreq/policy1z'/sys/devices/system/cpu/cpufreq/policy2rgz	glob.globrcs\|jdr$ttjdn4|jdrHttjdn|||SdS)Nz/scaling_cur_freqr4z/cpuinfo_cur_freq)rrrr)r_r`ra)rdr/r0res
)
rhrrrirprrrassertRaisesNotImplementedError)rsrerjrrr/)rdr0&test_cpu_freq_no_scaling_cur_freq_files 	!z4TestSystemCPU.test_cpu_freq_no_scaling_cur_freq_fileN)rrrrrrrrpathexistsrrrrrrrr	rrrrrr/r/r/r0rRs %%!"rc@sLeZdZejedddZejedddZdS)TestSystemCPUStatszfails on TraviscCs5td}tjj}|j||dddS)Nzcontext switchesryi)rVrp	cpu_statsZctx_switchesrr)rsrtrur/r/r0test_ctx_switches"sz$TestSystemCPUStats.test_ctx_switchescCs5td}tjj}|j||dddS)N
interruptsryi)rVrprrrr)rsrtrur/r/r0test_interrupts(sz"TestSystemCPUStats.test_interruptsN)rrrrrrrr	r/r/r/r0rsrc@seZdZddZddZeddZejdde	ejd	d
ddd
Z
ddZdS)TestSystemNetworkcCsxtjjD]v\}}xg|D]_}|jtjkrZ|j|jt|q&|jtj	kr&|j|jt
|q&WqWdS)N)rpZnet_if_addrsitemsfamilyZAF_LINKraddressr?r"r#r1)rsr_Zaddrsaddrr/r/r0test_net_if_addrs_ips7s
z'TestSystemNetwork.test_net_if_addrs_ipscCsyxrtjjD]^\}}ytd|}Wntk
rGYqX|j|jttj	d|dqWdS)Nzifconfig %sz(?i)MTU[: ](\d+)r)
rpnet_if_statsrrRuntimeErrorrZmturFrr)rsr_statsrHr/r/r0test_net_if_stats@s
z#TestSystemNetwork.test_net_if_statscs[fdd}tjdddd}x*|jD]\}y|}Wntk
rjw7YnX|j|j|ddd|j|j|ddd|j|j|ddd	|j|j|d
dd	|j|j	|ddd|j|j
|ddd|j|j|ddd|j|j|dddq7WdS)Ncsi}td}ttjd|d|d<ttjd|d|d<ttjd|d|d<ttjd|d	|d
<ttjd|d|d<ttjd|d	|d
<ttjd|d|d<ttjd|d|d<|S)Nzifconfig %szRX packets[: ](\d+)rpackets_recvzTX packets[: ](\d+)packets_sentzerrors[: ](\d+)errinr9erroutzdropped[: ](\d+)dropindropoutz#RX (?:packets \d+ +)?bytes[: ](\d+)
bytes_recvz#TX (?:packets \d+ +)?bytes[: ](\d+)
bytes_sent)rrFrr)ZnicrrH)r_r/r0ifconfigNs    z8TestSystemNetwork.test_net_io_counters.<locals>.ifconfigZpernicTnowrapFrryirPrrrrrrrrii)
rpnet_io_countersrrrrrrrrrrrr)rsrZniorZifconfig_retr/)r_r0test_net_io_countersLs.
z&TestSystemNetwork.test_net_io_countersz psutil._pslinux.socket.inet_ntoprgzpsutil._pslinux.supports_ipv6rFcCsey9tjtjtj}|j|j|jdWntjk
rPYnXtjdddS)N::1rkindZinet6)r r)	r"AF_INET6SOCK_STREAM
addCleanupclosebinderrorrpnet_connections)rsZ
supports_ipv6	inet_ntopr.r/r/r0%test_net_connections_ipv6_unsupportedsz7TestSystemNetwork.test_net_connections_ipv6_unsupportedc
CsEtdtjd&}tjdd|js:tWdQRXdS)Nz/proc/net/unixa.                0: 00000003 000 000 0001 03 462170 @/tmp/dbus-Qw2hMPIU3n
                0: 00000003 000 000 0001 03 35010 @/tmp/dbus-tB2X8h69BQ
                0: 00000003 000 000 0001 03 34424 @/tmp/dbus-cHy80Y8O
                000000000000000000000000000000000000000000000000000000
                r!Zunix)rlrrrpr(rr)rsrkr/r/r0test_net_connections_mockedsz-TestSystemNetwork.test_net_connections_mockedN)rrrrrrrrrirGr*r+r/r/r/r0r
4s	:$r
c@seZdZejeeddeddZddZ	ddZ
d	d
ZddZd
dZ
ddZddZddZdS)TestSystemDisksstatvfszos.statvfs() not availablecCsdd}xtjddD]}tj|j}||j\}}}}|j|j|t|j|d	kr|jd|j|ft|j	|dkr|jd|j	|fqWdS)NcSstd|j}|jd}|jd|jd}|jdd\}}}}|dkrud}t|t|t|}}}||||fS)Nzdf -P -B 1 "%s"r@rrZnoner4)rrTrBpoprF)rrHrIrJdevrLrMrAr/r/r0dfs
"&z:TestSystemDisks.test_disk_partitions_and_usage.<locals>.dfallFrizpsutil=%s, df=%si(ii(i)
rpdisk_partitions
disk_usageZ
mountpointrrLrrAfailrM)rsr0partusager/rLrMrAr/r/r0test_disk_partitions_and_usagesz.TestSystemDisks.test_disk_partitions_and_usagecCstdd}|j}WdQRXd|krhxtjD]}|jdkr>Pq>W|jdntjtd}t	j
dd|dd	v}t	j
d
ddgT}tj}|jst|jst|st|j
|djdWdQRXWdQRXdS)Nz/proc/filesystemsrzfszcouldn't find any ZFS partitionz
nodev	zfs
zpsutil._pslinux.openrrfTz$psutil._pslinux.cext.disk_partitions	/dev/sdb3/rwr)r:r;r9r<)rhrrpr2Zfstyper4r\r]rrrirrr)rsrrr5rm1m2rr/r/r0test_disk_partitions_mockeds$z+TestSystemDisks.test_disk_partitions_mockedcCstddtjdddtjdd}|j|jd|j|jd	|j|jd
t	|j|j
d|j|jd|j|jd
|j|j
dt	|j|jd|j|jdWdQRXWdQRXdS)Nz/proc/diskstatsz+   3     0   1 hda 2 3 4 5 6 7 8 9 10 11 12z!psutil._pslinux.is_storage_devicerTrFr9rrwrrPrrrr)rlrrirpdisk_io_countersr
read_countread_merged_count
read_bytesSECTOR_SIZE	read_timewrite_countwrite_merged_countwrite_bytes
write_time	busy_time)rsrr/r/r0'test_disk_io_counters_kernel_2_4_mockeds

z7TestSystemDisks.test_disk_io_counters_kernel_2_4_mockedcCstddtjdddtjdd}|j|jd|j|jd	|j|jd
t	|j|j
d|j|jd|j|jd
|j|j
dt	|j|jd|j|jdWdQRXWdQRXdS)Nz/proc/diskstatsz'   3    0   hda 1 2 3 4 5 6 7 8 9 10 11z!psutil._pslinux.is_storage_devicerTrFr9rrwrrPrrrr)rlrrirpr@rrArBrCrDrErFrGrHrIrJ)rsrr/r/r0,test_disk_io_counters_kernel_2_6_full_mockeds

z<TestSystemDisks.test_disk_io_counters_kernel_2_6_full_mockedcCstddtjdddtjdd}|j|jd|j|jd	t|j|j	d
|j|j
dt|j|jd|j|jd|j|j
d|j|jd|j|jdWdQRXWdQRXdS)
Nz/proc/diskstatsz   3    1   hda 1 2 3 4z!psutil._pslinux.is_storage_devicerTrFr9rrwrr)rlrrirpr@rrArCrDrFrHrBrErGrIrJ)rsrr/r/r0/test_disk_io_counters_kernel_2_6_limited_mockeds

z?TestSystemDisks.test_disk_io_counters_kernel_2_6_limited_mockedcCstdtjdtjdddtjdddd}|jt|d	|j|d
j	d|j|dj	d|j|d
j
d
|j|dj
d
WdQRXWdQRXdS)Nz/proc/diskstatsz                    3    0   nvme0n1 1 2 3 4 5 6 7 8 9 10 11
                    3    0   nvme0n1p1 1 2 3 4 5 6 7 8 9 10 11
                    z!psutil._pslinux.is_storage_devicerFperdiskTrrnvme0n1r9Z	nvme0n1p1rP)rlrrrrirpr@rrrArF)rsrr/r/r0(test_disk_io_counters_include_partitionss

z8TestSystemDisks.test_disk_io_counters_include_partitionsc!CstdtjdGtjddd*tjdddd}|j|WdQRXWdQRXdd	}tdtjdftjdd
dd|Ctjdddd}|j|j	d
|j|j
dWdQRXWdQRXdS)Nz/proc/diskstatsz                    3    0   nvme0n1 1 2 3 4 5 6 7 8 9 10 11
                    3    0   nvme0n1p1 1 2 3 4 5 6 7 8 9 10 11
                    z!psutil._pslinux.is_storage_devicerFrNrcSs
|dkS)NrOr/)r_r/r/r0is_storage_device:szSTestSystemDisks.test_disk_io_counters_exclude_partitions.<locals>.is_storage_devicerfTrgr9rP)rlrrrrirpr@rrrArF)rsrrQr/r/r0(test_disk_io_counters_exclude_partitions*s$


z8TestSystemDisks.test_disk_io_counters_exclude_partitionscCssdd}tjdd}tjdddd|tjdd}WdQRX|jt|t|dS)NcSs|dkrdSdS)Nz/proc/diskstatsFTr/)rr/r/r0rJsz;TestSystemDisks.test_disk_io_counters_sysfs.<locals>.existsrNTzpsutil._pslinux.os.path.existsrfrg)rpr@rrirr)rsrZwprocfsZwsysfsr/r/r0test_disk_io_counters_sysfsIsz+TestSystemDisks.test_disk_io_counters_sysfsc
CsFdd}tjdddd||jttjWdQRXdS)NcSsdS)NFr/)rr/r/r0rVsz>TestSystemDisks.test_disk_io_counters_not_impl.<locals>.existszpsutil._pslinux.os.path.existsrfTrg)rrirrrpr@)rsrr/r/r0test_disk_io_counters_not_implUsz.TestSystemDisks.test_disk_io_counters_not_implN)rrrrrhasattrrrr7r?rKrLrMrPrRrSrTr/r/r/r0r,sr,c@seZdZddZejdddZddZdd	Zd
dZ	dd
Z
ddZddZdS)TestMisccCs8td}tj}|jt|t|dS)Nz	boot time)rVrp	boot_timerrF)rsrtrur/r/r0test_boot_timefszTestMisc.test_boot_timezpsutil.traceback.print_excc"stj}ttjj|dd.}|jd|jd|jdWdQRXzJtfdd}trdnd	}tj	|d
|t
t|jst
|jttj|jttjdd|jttj|jttjdd|jttj|jttjdd|t_|jtjd
|jttjd
tjdd}|jt|d
tjdd}|jttt|d
ttjj|dd.}|jd|jd|jdWdQRX|jtjd
|jttjddd
|jttjd
|jttttjddd
WdQRXWdtj|t
tX|jtjddS)NrUrzcpu   0 0 0 0 0 0 0 0 0 0
zcpu0  0 0 0 0 0 0 0 0 0 0
zcpu1  0 0 0 0 0 0 0 0 0 0
cs1|jdr!ttjd|||S)Nz/proczrejecting access for test)rCrrr)r_r`ra)rdr/r0rewsz4TestMisc.test_no_procfs_on_import.<locals>.open_mockz
builtins.openz__builtin__.openrgpercpuTrzcpu   1 0 0 0 0 0 0 0 0 0
zcpu0  1 0 0 0 0 0 0 0 0 0
zcpu1  1 0 0 0 0 0 0 0 0 0
z/proc)tempfilemkdtemprhrrr=writerrrirrprrrrrcpu_percentcpu_times_percentPROCFS_PATHrsumrYassertNotEqualshutilrmtree)rstbZ	my_procfsrrerjZper_cpu_percentZper_cpu_times_percentr/)rdr0test_no_procfs_on_importksN!


	!

0
z!TestMisc.test_no_procfs_on_importcCstdtjdjJ}tj|js:ttjddtjtjddWdQRXtdtjdj}tj}|jsttjdd}tj}tjdd}|j	|d|j	t
|d|j	t
|d|j	t
|d|j	t
tt
|d|j	t
tt
|d|j|j
d|j	|jdWdQRXdS)Nz
/proc/statz                cpu   0 0 0 0 0 0 0 1 0 0
                cpu0  0 0 0 0 0 0 0 1 0 0
                cpu1  0 0 0 0 0 0 0 1 0 0
                rYTz                cpu   1 0 0 0 0 0 0 0 0 0
                cpu0  1 0 0 0 0 0 0 0 0 0
                cpu1  1 0 0 0 0 0 0 0 0 0
                rgY@)rlrrrrpr]rrr^rar`rYrruser)rsrkr]Zcpu_percent_percpur^Zcpu_times_percent_percpur/r/r0test_cpu_steal_decreases4

z TestMisc.test_cpu_steal_decreasec
CsHtjddd,}|jttjj|js=tWdQRXdS)Nzpsutil._pslinux.openrfT)	rrirrrprrWrr)rsrkr/r/r0test_boot_time_mockeds

zTestMisc.test_boot_time_mockedcCstjddd
g3}|jtjd	jd
|jsGtWdQRXtjdddg3}|jtjd	jd
|jstWdQRXtjdddg3}|jtjd	jd|jstWdQRXdS)Nzpsutil._pslinux.cext.usersr	giampaolopts/2:0hATrr	localhost:0.0foo)rirjrkrlTr)rirjrnrlTr)rirjrorlTr)rrirrpZusershostrr)rsrkr/r/r0test_users_mockedszTestMisc.test_users_mockedcCstj}z|t_|jttj|jttj|jttjdd|jttj|jttj	|jttj
|jttj|jttj|jtj
tjWddt_tj|XdS)NrYTz/proc)rZr[rpr_rrrqrrWr(rrr2Z
NoSuchProcessProcessrrmdir)rsZtdirr/r/r0test_procfs_paths		zTestMisc.test_procfs_pathc
Cst}|jzntj}|jdj}tj|sQt|tj|}|j|j	|tj
Wd|jXdS)Nr9)rstartrprrthreadsid
pid_existsrZas_dictrZpidsstop)rstptidZptr/r/r0test_issue_687s	

zTestMisc.test_issue_687c	CsGtdd1}tjtjs-t|js<tWdQRXdS)Nz/proc/%s/statusr4)rlrprxrgetpidrr)rsrkr/r/r0test_pid_exists_no_proc_statussz'TestMisc.test_pid_exists_no_proc_statusN)
rrrrXrrirergrhrqrtr}rr/r/r/r0rVcs>)rVz
no batteryc@seZdZejeddddZejeddddZddZd	d
Z	ddZ
d
dZddZddZ
ddZddZddZdS)TestSensorsBatteryZacpizacpi utility not availablecCs`td}t|jddjjdd}tjj}|j||dddS)Nzacpi -b,r9%r4ry)	rrFrBrTreplacerpsensors_batterypercentrr)rsrHZ
acpi_valuerur/r/r0test_percent$s+zTestSensorsBattery.test_percentcCsvtd}d|jkr+tjdSd|kr@d}nd|jddk}|jtjj|dS)	Nzacpi -bunknownzacpi output not reliablezdischarging at zero rateTZChargingr@r)	rlowerrrrBrrpr
power_plugged)rsrHZpluggedr/r/r0test_power_plugged+s
	z%TestSensorsBattery.test_power_pluggedc
sfdd}ttr$dnd}tj|d|K}|jtjjd|jtjjtj	|j
stWdQRXdS)Ncs?|jds|jdr+tjdS|||SdS)Nz
AC0/onlinez	AC/online1)rr\r^)r_r`ra)rdr/r0re8s
z@TestSensorsBattery.test_emulate_power_plugged.<locals>.open_mockz
builtins.openz__builtin__.openrgT)rhrrrirrprrZsecsleftZPOWER_TIME_UNLIMITEDrr)rsrerjrkr/)rdr0test_emulate_power_plugged6sz-TestSensorsBattery.test_emulate_power_pluggedc
sufdd}ttr$dnd}tj|d|/}|jtjjd|jsjt	WdQRXdS)Ncsi|jds|jdr3ttjdn2|jdrUtjtdS|||SdS)Nz
AC0/onlinez	AC/onliner4z/statusZcharging)rrrrr\r]r)r_r`ra)rdr/r0reIs
zBTestSensorsBattery.test_emulate_power_plugged_2.<locals>.open_mockz
builtins.openz__builtin__.openrgT)
rhrrrirrprrrr)rsrerjrkr/)rdr0test_emulate_power_plugged_2Fsz/TestSensorsBattery.test_emulate_power_plugged_2c
sufdd}ttr$dnd}tj|d|/}|jtjjd|jsjt	WdQRXdS)Ncs?|jds|jdr+tjdS|||SdS)Nz
AC0/onlinez	AC/online0)rr\r^)r_r`ra)rdr/r0reYs
zDTestSensorsBattery.test_emulate_power_not_plugged.<locals>.open_mockz
builtins.openz__builtin__.openrgF)
rhrrrirrprrrr)rsrerjrkr/)rdr0test_emulate_power_not_pluggedWsz1TestSensorsBattery.test_emulate_power_not_pluggedc
sufdd}ttr$dnd}tj|d|/}|jtjjd|jsjt	WdQRXdS)Ncsi|jds|jdr3ttjdn2|jdrUtjtdS|||SdS)Nz
AC0/onlinez	AC/onliner4z/statusZdischarging)rrrrr\r]r)r_r`ra)rdr/r0rehs
zFTestSensorsBattery.test_emulate_power_not_plugged_2.<locals>.open_mockz
builtins.openz__builtin__.openrgF)
rhrrrirrprrrr)rsrerjrkr/)rdr0 test_emulate_power_not_plugged_2esz3TestSensorsBattery.test_emulate_power_not_plugged_2c	srfdd}ttr$dnd}tj|d|,}|jtjj|jsgt	WdQRXdS)Ncsc|jds|jdr3ttjdn,|jdrOtjdS|||SdS)Nz"/sys/class/power_supply/AC0/onlinez!/sys/class/power_supply/AC/onliner4z#/sys/class/power_supply/BAT0/statuss???)rCrrrr\r^)r_r`ra)rdr/r0reys
zETestSensorsBattery.test_emulate_power_undetermined.<locals>.open_mockz
builtins.openz__builtin__.openrg)
rhrrrirrprrrr)rsrerjrkr/)rdr0test_emulate_power_undeterminedvs	z2TestSensorsBattery.test_emulate_power_undeterminedcCs]tdttjd;tdttjd|jtjWdQRXWdQRXdS)Nz'/sys/class/power_supply/BAT0/energy_nowr4z'/sys/class/power_supply/BAT0/charge_now)rnrrrrrpr)rsr/r/r0test_emulate_no_base_filessz-TestSensorsBattery.test_emulate_no_base_filesc
CsEtdd/}|jtjjd|js:tWdQRXdS)Nz(/sys/class/power_supply/BAT0/energy_fullrr)rlrrprrrr)rsrkr/r/r0test_emulate_energy_full_0sz-TestSensorsBattery.test_emulate_energy_full_0cCsztdttjdXtdttjd5tdd|jtjjdWdQRXWdQRXWdQRXdS)Nz(/sys/class/power_supply/BAT0/energy_fullr4z(/sys/class/power_supply/BAT0/charge_fullz%/sys/class/power_supply/BAT0/capacitys88X)	rnrrrrlrrprr)rsr/r/r0"test_emulate_energy_full_not_avails
z5TestSensorsBattery.test_emulate_energy_full_not_availcCstdttjdatdttjd>tdttjd|jtjjWdQRXWdQRXWdQRXdS)Nz!/sys/class/power_supply/AC/onliner4z"/sys/class/power_supply/AC0/onlinez#/sys/class/power_supply/BAT0/status)rnrrrrrprr)rsr/r/r0test_emulate_no_powersz(TestSensorsBattery.test_emulate_no_powerN)rrrrrrrrrrrrrrrrrr/r/r/r0r s%%
rc@s:eZdZejedddZddZdS)TestSensorsTemperatureszunreliable on TRAVIScsfdd}ttr$dnd}tj|d|e}tjddI}|jtji|j	s|t
|jdt|d	j
WdQRXWdQRXdS)
Ncs8|jdr$ttjdn|||SdS)N_inputr4)rOSErrorrZEIO)r_r`ra)rdr/r0reszATestSensorsTemperatures.test_emulate_eio_error.<locals>.open_mockz
builtins.openz__builtin__.openrgrTZignoringr)rhrrrirrrrpsensors_temperaturesrrrrr)rsrerjrkrr/)rdr0test_emulate_eio_errorsz.TestSensorsTemperatures.test_emulate_eio_errorcsfdd}ttr$dnd}tj|d|tjdddgetjd	d
}|j|jd|j|jd|j|j	d
|j|j
dWdQRXWdQRXdS)Ncs|jdr"tjtdS|jdrDtjtdS|jdr`tjdS|jdr|tjdS|jd	rtjd
S|||SdS)Nz/namer_z/temp1_labellabelz/temp1_inputs30000z
/temp1_maxs40000z/temp1_crits50000)rr\r]rr^)r_r`ra)rdr/r0res


z<TestSensorsTemperatures.test_emulate_data.<locals>.open_mockz
builtins.openz__builtin__.openrgz	glob.globrz/sys/class/hwmon/hwmon0/temp1r_rrg>@gD@gI@)rhrrrirprrrrhighcritical)rsrerjZtempr/)rdr0test_emulate_datas
z)TestSensorsTemperatures.test_emulate_dataN)rrrrrrrrr/r/r/r0rsrc@seZdZddZdS)TestSensorsFanscsfdd}ttr$dnd}tj|d|_tjdddg?tjd	d
}|j|jd|j|jdWdQRXWdQRXdS)
Ncsz|jdr"tjtdS|jdrDtjtdS|jdrftjtdS|||SdS)Nz/namer_z/fan1_labelrz/fan1_inputZ2000)rr\r]r)r_r`ra)rdr/r0resz4TestSensorsFans.test_emulate_data.<locals>.open_mockz
builtins.openz__builtin__.openrgz	glob.globrz/sys/class/hwmon/hwmon2/fan1r_rri)	rhrrrirpZsensors_fansrrr)rsrerjZfanr/)rdr0rs

z!TestSensorsFans.test_emulate_dataN)rrrrr/r/r/r0rsrc@seZdZddZeZddZddZeje	ddd	Z
d
dZdd
ZddZ
ddZddZddZddZddZddZejedddZdd Zd!d"Zd#d$Zd%S)&TestProcesscCsttdS)N)rr)rsr/r/r0setUpszTestProcess.setUpcCstjdt}t|}|jttdddttj|j	}t
jd|j}|j
dd}|j|jtdd	|Dd
d|j|jtdd	|Dd
d|j|jtd
d	|Dd
ddS)Nzk
            import time
            with open("%s", "w") as f:
                time.sleep(10)
            cSs
tjdS)NrW)rrr/r/r/r0<lambda>sz3TestProcess.test_memory_full_info.<locals>.<lambda>z'%s' not in retg?ZgroupedFcSs g|]}|j|jqSr/)Z
private_dirtyZ
private_clean)r5r2r/r/r0r7s	z5TestProcess.test_memory_full_info.<locals>.<listcomp>ryicSsg|]}|jqSr/)pss)r5r2r/r/r0r7s	cSsg|]}|jqSr/)r)r5r2r/r/r0r7s	)rrrrr$rrrprrpidtimesleepmemory_full_infomemory_mapsrrussr`rr)rssrcZsprocr{rmapsr/r/r0test_memory_full_infos 


&z!TestProcess.test_memory_full_infocCstdtjtjdjg}tj}|j}|j	sRt
|j|jd|j|j
d|j|jd
WdQRXdS)Nz/proc/%s/smapsa                fffff0 r-xp 00000000 00:00 0                  [vsyscall]
                Size:                  1 kB
                Rss:                   2 kB
                Pss:                   3 kB
                Shared_Clean:          4 kB
                Shared_Dirty:          5 kB
                Private_Clean:         6 kB
                Private_Dirty:         7 kB
                Referenced:            8 kB
                Anonymous:             9 kB
                LazyFree:              10 kB
                AnonHugePages:         11 kB
                ShmemPmdMapped:        12 kB
                Shared_Hugetlb:        13 kB
                Private_Hugetlb:       14 kB
                Swap:                  15 kB
                SwapPss:               16 kB
                KernelPageSize:        17 kB
                MMUPageSize:           18 kB
                Locked:                19 kB
                VmFlags: rd ex
                rrirwr
ilii<)rlrr~rrrrprrrrrrrrr)rsrkr{rr/r/r0test_memory_full_info_mockeds
z(TestProcess.test_memory_full_info_mockedzunreliable on PYPYc;Csdd}ttd|j|jdWdQRXttd|j|jdWdQRXttd|j|jdWdQRXttd|j|jdWdQRXttd|j|jdWdQRXttd|j|jdWdQRXtrttttd	|j|jdWdQRXttttd
|j|jdWdQRXdS)NcSs|tj}tjd}xMxF|jD]8}|jtjjtkrQ|Stj|kr,Pq,WqWtddS)Nrztimeout looking for test file)	rprrr
open_filesrrabspathrr)r{Z	giveup_atfiler/r/r0
get_test_fileBs	z7TestProcess.test_open_files_mode.<locals>.get_test_filerr8rzr+zw+za+r2zx+)rhrrmoderr)rsrr/r/r0test_open_files_mode@s(

z TestProcess.test_open_files_modecCstj}|j}tjt|jdt|tjddt	t
jd/}|j}|s|t|j
stWdQRXtjddt	t
jd,}|j|jg|j
stWdQRXWdQRXdS)Nzlen(ret) != %izpsutil._pslinux.os.readlinkrgr4)rprrrrZNamedTemporaryFilerrrrirrrrrEINVALr)rsr{filesrkr/r/r0test_open_files_file_goneds

z%TestProcess.test_open_files_file_gonecCstj}|j}tjt|jdt|trKdnd}tj	|dt
tjd/}|j}|st
|jst
WdQRXWdQRXdS)Nzlen(ret) != %iz
builtins.openz__builtin__.openrgr4)rprrrrZrrrrrrirrrrr)rsr{rrjrkr/r/r0test_open_files_fd_gonexs

z#TestProcess.test_open_files_fd_gonec
CsWtjddi;}|jtjjtjj|j	sLt
WdQRXdS)Nz)psutil._pslinux._psposix.get_terminal_mapr)rrirrprrrrr~Zterminalrr)rsrkr/r/r0test_terminal_mockeds%z TestProcess.test_terminal_mockedcCstj}tjtd}tjdd|dd2}|j|jddg|j	sjt
WdQRXtjtd}tjdd|dd5}|j|jddd	g|j	st
WdQRXdS)
Nzfoobarzpsutil._pslinux.openrrfTrobarz	foobarr4)rprrr\r]rrrircmdlinerr)rsr{rrkr/r/r0test_cmdline_mockedszTestProcess.test_cmdline_mockedcCstj}tjtd}tjdd|dd2}|j|jddg|j	sjt
WdQRXtjtd}tjdd|dd5}|j|jddd	g|j	st
WdQRXdS)
Nzfoo bar zpsutil._pslinux.openrrfTrorz	foo bar  r4)rprrr\r]rrrirrrr)rsr{rrkr/r/r0test_cmdline_spaces_mockedsz&TestProcess.test_cmdline_spaces_mockedc
CsYtjddd=|jtjjd|jtjjdWdQRXdS)Nzpsutil._pslinux.os.readlinkrz/home/foo (deleted)z	/home/foo)rrirrprrexecwd)rsr/r/r0!test_readlink_path_deleted_mockeds
z-TestProcess.test_readlink_path_deleted_mockedcsfdd}ttr$dnd}tj|d|8}tjj}|jsct|j	|gWdQRXfdd}tj|d|!|j
tjtjjWdQRXdS)NcsB|jdtjr.ttjdn|||SdS)Nz
/proc/%s/taskr4)rCrr~rrr)r_r`ra)rdr/r0resz2TestProcess.test_threads_mocked.<locals>.open_mockz
builtins.openz__builtin__.openrgcsB|jdtjr.ttjdn|||SdS)Nz
/proc/%s/taskr4)rCrr~rrEPERM)r_r`ra)rdr/r0res)rhrrrirprrrvrrrrAccessDenied)rsrerjrkrr/)rdr0test_threads_mockedszTestProcess.test_threads_mockedcCstjddttjd}tjddtjdd}tjj}|j	sit
|j	sxt
|j|dtjddd!|jtj
tjjWdQRXWdQRXWdQRXdS)	Nzpsutil._pslinux.readlinkrgr4zpsutil.Process.cmdlinerzpsutil._pslinux.os.path.lexistsrF)rrirrrrprrrrrrrr
ZombieProcess)rsr=r>rr/r/r0test_exe_mockeds
zTestProcess.test_exe_mockedcCstdtjttjd^}tj}|jt}|j	WdQRX|j
|jjtj|jst
WdQRXdS)Nz/proc/%s/smapsr4)rnrr~rrrrprrrrr	exceptionrr)rsrkr{errr/r/r0test_issue_1014s
zTestProcess.test_issue_1014z
not supportedcCstjddttjdX}tj}|j|jtj	}|j
tjWdQRX|jsut
WdQRX|j|jj|j|j|jj|jdS)Nz"psutil._pslinux.cext.linux_prlimitrgr4)rrirrZENOSYSrprrr_rrZrlimitZ
RLIMIT_NOFILErrrrr)rsrkr{rmr/r/r0test_rlimit_zombies
zTestProcess.test_rlimit_zombiecCstjddttjdR}tj}|j|jtj	}|j
WdQRX|jsotWdQRX|j
|jj|j|j
|jj|jdS)Nzpsutil._pslinux.os.readlinkrgr4)rrirrrrprrr_rrrrrrrr)rsrkr{rmr/r/r0test_cwd_zombies
zTestProcess.test_cwd_zombiec'Csddlm}dddddddddddddddd	d
ddddddddddddddddddddddg'}dj|j}td
tj|tj}|j	|j
d|j	|jtj|j	|j
d|j	|jd|tj|j}|j	|jd||j	|jd||j	|jd||j	|jd||j	|jdWdQRXdS)Nr)CLOCK_TICKS0z(cat)Z123456rSz
/proc/%s/statcatr9rrrwrrP)rrr=rrlrr~rprrrr_statusZ
STATUS_ZOMBIEppidZcreate_timerWrrfsystem
children_userchildren_systemZcpu_num)rsrr`rbr{Zcpur/r/r0test_stat_file_parsingsl	z"TestProcess.test_stat_file_parsingc
Cs:tdtjtjdjtj}|j|j	j
d|j|j	jd|j|jd|j
}|j|jd|j|jd|j|jd|j}|j|jd	|j|jd
|j|jd|j|jjttdd
WdQRXdS)Nz/proc/%s/statusa                Uid:	1000	1001	1002	1003
                Gid:	1004	1005	1006	1007
                Threads:	66
                Cpus_allowed:	f
                Cpus_allowed_list:	0-7
                voluntary_ctxt_switches:	12
                nonvoluntary_ctxt_switches:	13rxrBiiiiiirr)rlrr~rrrrprrrnum_ctx_switches	voluntaryinvoluntarynum_threadsuidsrealZ	effectiveZsavedgids_proc_get_eligible_cpuslistrange)rsr{rrr/r/r0test_status_file_parsingMs"
z$TestProcess.test_status_file_parsingN)rrrrZtearDownrrrrr
rrrrrrrrrrr
rrrrr/r/r/r0rs$#$;rc@seZdZdZeddZddZddZdd	Zd
dZ	dd
Z
ddZddZe
ddZddZddZdS)TestProcessAgainstStatusa/proc/pid/stat and /proc/pid/status have many values in common.
    Whenever possible, psutil uses /proc/pid/stat (it's faster).
    For all those cases we check that the value found in
    /proc/pid/stat (by psutil) matches the one found in
    /proc/pid/status.
    cCstj|_dS)N)rprrproc)clsr/r/r0
setUpClasspsz#TestProcessAgainstStatus.setUpClasscCstjjd|jj}}xc|D][}|j}|j|r&|jdd}yt|SWq&t	k
r|SYq&Xq&Wt	d|WdQRXdS)Nz/proc/%s/status	rz
can't find %r)
rp_psplatform	open_textrrrTrC	partitionrFrG)rsZ	linestartrrJrr/r/r0read_status_filets	


z)TestProcessAgainstStatus.read_status_filecCs,|jd}|j|jj|dS)NzName:)rrrr_)rsrr/r/r0	test_namesz"TestProcessAgainstStatus.test_namecCsd|jd}||jdd|jd}|jdd}|j|jj|dS)NzState:(r9)rSr)rfindrfindrrrr)rsrr/r/r0test_statuss&z$TestProcessAgainstStatus.test_statuscCs,|jd}|j|jj|dS)NzPPid:)rrrr)rsrr/r/r0	test_ppidsz"TestProcessAgainstStatus.test_ppidcCs,|jd}|j|jj|dS)NzThreads:)rrrr)rsrr/r/r0test_num_threadssz)TestProcessAgainstStatus.test_num_threadscCsQ|jd}ttt|jdd}|j|jj|dS)NzUid:r9r)rrXrYrFrBrrr)rsrr/r/r0	test_uidss%z"TestProcessAgainstStatus.test_uidscCsQ|jd}ttt|jdd}|j|jj|dS)NzGid:r9r)rrXrYrFrBrrr)rsrr/r/r0	test_gidss%z"TestProcessAgainstStatus.test_gidscCsZ|jd}|j|jjj||jd}|j|jjj|dS)Nzvoluntary_ctxt_switches:znonvoluntary_ctxt_switches:)rrrrrr)rsrr/r/r0test_num_ctx_switchessz.TestProcessAgainstStatus.test_num_ctx_switchescCso|jd}dt|krktt|jd\}}|j|jjtt	||ddS)NzCpus_allowed_list:rr9)
rrrYrFrBrrZcpu_affinityrr)rsrZmin_Zmax_r/r/r0test_cpu_affinitys
z*TestProcessAgainstStatus.test_cpu_affinityc
Csp|jd}tjd}|jjjWdQRXdt|kr]|jsltn|jsltdS)NzCpus_allowed_list:zpsutil._pslinux.per_cpu_timesr)	rrrirrrrrr)rsrrkr/r/r0test_cpu_affinity_eligible_cpussz8TestProcessAgainstStatus.test_cpu_affinity_eligible_cpusN)rrr__doc__classmethodrrrrrrrrrrrrr/r/r/r0rgs
rc@s@eZdZddZddZddZddZd	S)
	TestUtilsc
Cs3tjjt}|j|jdWdQRXdS)NZrt)rprr__file__rr)rsrr/r/r0test_open_textszTestUtils.test_open_textc
Cs3tjjt}|j|jdWdQRXdS)Nr)rprrrrr)rsrr/r/r0test_open_binaryszTestUtils.test_open_binaryc
CsNtjddd2}|jtjjdd|jsCtWdQRXdS)Nzos.readlinkrz
foo (deleted)rro)rrirrprreadlinkrr)rsrkr/r/r0
test_readlinkszTestUtils.test_readlinkcCstjjt}t|d}|jdWdQRX|jtjj	tddd|jtjj	tddd|jtjj	tdd	d
d
dS)NZwtzfoo binaryFroTsfooz??fallbackr)
rrrrrhr\rrprr)rsZfnamerr/r/r0test_cats""zTestUtils.test_catN)rrrrrr	rr/r/r/r0rsr__main__)NrZ
__future__rrDr%rrr\rrrbr"r+rZrrrrprZpsutil._compatrrrZpsutil.testsrrr	r
rrr
rrrrrrrrrrrrrrrdirnamerZHEREr*ZSIOCGIFCONFr;rDr1r?rOrRrVrZcontextmanagerrlrnrZTestCaserorrrr
r,rVrrrrrrrr/r/r/r0<module>s
	5]o-gR
Back to Directory File Manager