0iY dZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlmZddlZddlmZddlmZddlmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddlm$Z$ddlm%Z%erddl&m'Z'ddl&m(Z(ddl&m)Z)ddl&m*Z*ejVjYejVj[e.Z/dZ0dZ1dZ2dZ3erd Z4d!Z5d"Z6d#Z7d$Z8d%Z9d&Z:d'Z;d(Zd?eZKe jje d,-Gd@dAeZLe jje d,-GdBdCeZMe jje d,-GdDdEeZNe jje d,-GdFdGeZOe jje d,-GdHdIeZPe jje d,-GdJdKeZQe jje d,-GdLdMeZRe jje d,-GdNdOeZSe jje d,-GdPdQeZTe jje d,-e jje dR-GdSdTeZUe jje d,-GdUdVeZVe jje d,-GdWdXeZWe jje d,-GdYdZeZXe jje d,-Gd[d\eZYe jje d,-Gd]d^eZZe jje d,-Gd_d`eZ[y)azLinux specific tests.N)mock)LINUX)AARCH64)GITHUB_ACTIONS)GLOBAL_TIMEOUT) HAS_BATTERY) HAS_CPU_FREQ)HAS_GETLOADAVG) HAS_RLIMIT)RISCV64)TOLERANCE_DISK_USAGE)TOLERANCE_SYS_MEM)PsutilTestCase) ThreadTask) call_until)pytest) reload_module)retry_on_failure) safe_rmpath)sh)skip_on_not_implemented) CLOCK_TICKS)RootFsDeviceFinder)calculate_avail_vmem) open_binaryii'iiic Vddl}t|ddd}tjtjtj5}tj |j |jttjd|ddcdddS#1swYyxYwNrascii256s) fcntlbytessocketAF_INET SOCK_DGRAM inet_ntoaioctlfileno SIOCGIFADDRstructpackifnamer#ss H/opt/hc_python/lib64/python3.12/site-packages/psutil/tests/test_linux.pyget_ipv4_addressr2Bsv 6#2; (F v~~v'8'8 9Q KK KVV1L M2   : 9 9 ABB(c Vddl}t|ddd}tjtjtj5}tj |j |jttjd|ddcdddS#1swYyxYwr) r#r$r%r&r'r(r)r*SIOCGIFNETMASKr,r-r.s r1get_ipv4_netmaskr6Ny 6#2; (F v~~v'8'8 9Q KK NFKK,G    : 9 9r3c Vddl}t|ddd}tjtjtj5}tj |j |jttjd|ddcdddS#1swYyxYwr) r#r$r%r&r'r(r)r*SIOCGIFBRDADDRr,r-r.s r1get_ipv4_broadcastr:Zr7r3c<td5}g}|D],}|j}|d|k(s|j|.t|dk(rt d| dddt tD]}||d}t dt|dDcgc] }|||dz }}dj |} tjtj| } tjtj| ||<|S#1swYxYwcc}w)Nz/proc/net/if_inet6rzcould not find interface :) opensplitappendlen ValueErrorrangejoinr% inet_ptonAF_INET6 inet_ntop) r/f all_fieldslinefieldsi unformattedjgroups formattedpackeds r1get_ipv6_addressesrSfs " #q DZZ\FbzV#!!&) z?a 8 CD D  $3z? # mA& ,1!S5Eq,I ,IqKAE ",I  HHV$ !!&//9=((&A 1 $ % $ # s D /D D Dc ddl}t|ddd}tjtjtj5}|j |j ttjd|}dj|ddDcgc]}|dd  c}dd cdddScc}w#1swYyxYw) Nrrrr r"02xr>r<) r#r$r%r&r'r)r* SIOCGIFHWADDRr,r-rE)r/r#r0infochars r1get_mac_addressr[|s 6#2; (F v~~v'8'8 9Q{{ HHJ v{{66'B ww42;?;44*A;?@"E : 9@ : 9sA B7 B2  B72B77Cc6tddgddi}|jd}|D]e}|jds|j\}}}}tjdd}|t |t |t |cSt d |) zQParse 'free' cmd and return swap memory's s total, used and free values. free-bLANGC.UTF-8env Swapztotal used freez$can't find 'Swap' in 'free' output: )rr@ startswith collections namedtupleintrC)outlinesrK_totalusedr]nts r1 free_swapros fd^&)!4 5C IIdOE ??6 "#'::< AudD''0ABBc%j#d)SY7 7  zfree_physmem..s(K9JAQ9Jsztotal used free shared outputz#can't find 'Mem' in 'free' output: )rr@rerfrgrC)rirjrKrlrmr]sharedrns r1 free_physmemr|s fd^&)!4 5C IIdOE ??5 !(Ka9J(K %E4v''7BeT45 5  ;C5A BBrpctddgddi}|jdD]5}|j}||vst|jddcSt d |d ) Nvmstatz-sr_r`rarc r can't find z in 'vmstat' output)rr@striprhrC)statrirKs r1r~r~sk h FI#6 7C $zz| 4<tzz#q)* *  {4(*=> ??rpc tddgj}d|vrtjdSt t t tjd|jdS)Nr]z-VUNKNOWNzcan't determine free versionz\d+r<) rrrskiptuplemaprhrefindallr@)ris r1get_free_version_inforsX fd^  " " $CC{{9:: S"**VSYY[_=> ??rpc#Kfd}ttjdd|5}|dddy#1swYyxYww)zMock open() builtin and forces it to return a certain content for a given path. `pairs` is a {"path": "content", ...} dict. c|vr?|}t|trtj|Stj|S|g|i|Srt) isinstancestrioStringIOBytesIO)nameargskwargscontent orig_openpairss r1 open_mockz$mock_open_content..open_mocksP 5=DkG'3'{{7++zz'**T3D3F3 3rp builtins.openTcreate side_effectNr?rpatch)rrmrs` @r1mock_open_contentrs6 4I ODi HA I H Hs%A7 AAAc#Kfd}ttjdd|5}|dddy#1swYyxYww)zZMock open() builtin and raises `exc` if the path being opened matches `for_path`. c*|k(r|g|i|Srt)rrrexcfor_pathrs r1rz&mock_open_exception..open_mocks% 8 I////rprTrNr)rrrrrs`` @r1mock_open_exceptionrs6 0 I ODi HA I H Hs&A9 AAAz LINUX onlyreasonczeZdZdZedZedZedZedZy)"TestSystemVirtualMemoryAgainstFreecvtj}tjj}||k(sJyrt)r|rlpsutilvirtual_memoryself cli_value psutil_values r1 test_totalz-TestSystemVirtualMemoryAgainstFree.test_totals1 N(( ,,.44 L(((rpctdkrtjdStj}t j j}t||z tksJy)Nr=rryfree version too old) rrrr|rmrrabsrrs r1 test_usedz,TestSystemVirtualMemoryAgainstFree.test_usedsY ! "Y .;;56 6 N'' ,,.33 9|+,/@@@@rpctj}tjj}t ||z t ksJyrt)r|r]rrrrrs r1 test_freez,TestSystemVirtualMemoryAgainstFree.test_frees< N'' ,,.33 9|+,/@@@@rpct}|j}|dk(rtjdSt j j}t ||z tksJ|d|d|jy)Nrz%free does not support 'shared' columnrz ) r|r{rrrrrroutput)rr] free_valuers r1 test_sharedz.TestSystemVirtualMemoryAgainstFree.test_sharedsu~[[ ?;;FG G,,.55  \) *-> > :\<.DKK= 9 : >rpc tddg}|jd}d|dvrtjdSt |djd}t j j}t||z tksJy) Nr]r^rc availablerz(free does not support 'available' columnryr<) rr@rrrhrrrrr)rrirjrrs r1test_availablez1TestSystemVirtualMemoryAgainstFree.test_available s&$  $ eAh &;;IJ Jq)"-. ,,.88 : ,-0AAAArpN) __name__ __module__ __qualname__rrrrrrrrpr1rrsi)  A AAA :: B BrprceZdZdZedZedZedZedZedZ y)$TestSystemVirtualMemoryAgainstVmstatctddz}tjj}t ||z t ksJy)Nz total memory)r~rrrlrrr vmstat_valuers r1rz/TestSystemVirtualMemoryAgainstVmstat.test_totals>n-4 ,,.44 <,./2CCCCrpctdkrtjdStddz}t j j }t||z tksJy)Nrrz used memoryr) rrrr~rrrmrrrs r1rz.TestSystemVirtualMemoryAgainstVmstat.test_useds[ ! "Y .;;56 6m,t3 ,,.33 <,./2CCCCrpctddz}tjj}t ||z t ksJy)Nz free memoryr)r~rrr]rrrs r1rz.TestSystemVirtualMemoryAgainstVmstat.test_free/s>m,t3 ,,.33 <,./2CCCCrpctddz}tjj}t ||z t ksJy)Nz buffer memoryr)r~rrbuffersrrrs r1 test_buffersz1TestSystemVirtualMemoryAgainstVmstat.test_buffers5s>o.5 ,,.66 <,./2CCCCrpctddz}tjj}t ||z t ksJy)Nz active memoryr)r~rractiverrrs r1 test_activez0TestSystemVirtualMemoryAgainstVmstat.test_active;s>o.5 ,,.55 <,./2CCCCrpctddz}tjj}t ||z t ksJy)Nzinactive memoryr)r~rrinactiverrrs r1 test_inactivez2TestSystemVirtualMemoryAgainstVmstat.test_inactiveAs?/047 ,,.77 <,./2CCCCrpN) rrrrrrrrrrrrpr1rrsD  D DDD DD DD DDrprcDeZdZdZedZdZdZdZdZ y)TestSystemVirtualMemoryMocksctjdj}td|i5}t j d5}t j dtj}|jsJt|dk(sJ|d}dt|jvsJd t|jvsJd t|jvsJd t|jvsJd t|jvsJd t|jvsJdt|jvsJ|jdk(sJ|jdk(sJ|jdk(sJ|j dk(sJ|j"dk(sJ|j$dk(sJ|j&dk(sJ ddddddy#1swYxYw#1swYyxYw)NaL 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 /proc/meminfoTrecordalwaysryrz#memory stats couldn't be determinedcachedr{rrrr)textwrapdedentencoderwarningscatch_warnings simplefilterrrcalledrBrmessagerrrr{rrslabrrrwsretws r1test_warnings_on_missesz4TestSystemVirtualMemoryMocks.test_warnings_on_missesJs// #  9 :a((5%%h/++-xxx2w!|#|qE<AIINNN3qyy>1113qyy>1113qyy>111!S^333 C N222"c!))n444zzQ&zzQ&||q(((zzQ&{{a'''}})))xx1}$}'6; :55; :s$GE3G <G G GG"ci}td5}|D])}|j}t|ddz||d<+ dddt|}d|vr!|d}t ||z |z dz}|dksJyy#1swY:xYw)Nrryrrs MemAvailable:dr)rr@rhrr)rmemsrIrKrLab diff_percents r1test_avail_old_percentz3TestSystemVirtualMemoryMocks.test_avail_old_percentns  )Q"%fQi.4"7VAY* ! & t #%&Aq1u:>C/L"$ $$ $ * )s /A77Bctjdj}td|i5}t j d5}t j}ddd|jsJjdk(sJd}dt|jvsJ dddy#1swYPxYw#1swYyxYw)Na 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 rTrl "r,inactive memory stats couldn't be determined rrrrrrrrrrrrrs r1 test_avail_old_comes_from_kernelz=TestSystemVirtualMemoryMocks.test_avail_old_comes_from_kernel~s//# 9 :a((5++-688O8==N2 221AAS F  ; :55; :$B8B,AB8,B5 1B88Cctjdj}td|i5}t j d5}t j}ddd|jsJjdk(sJd}dt|jvsJ dddy#1swYPxYw#1swYyxYw)Nat 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 rTr`LGrrrrs r1test_avail_old_missing_fieldsz:TestSystemVirtualMemoryMocks.test_avail_old_missing_fieldss// #  9 :a((5++-688O8==$CC CC1AAS F  ; :55; :rctjdj}td|i5t dt 5t jd5}tj}|jdk(sJ|d}dt|jvsJ dddddddddy#1swYxYw#1swYxYw#1swYyxYw) Na 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 rz/proc/zoneinfoTrrrr) rrrrrFileNotFoundErrorrrrrrrr)rrrrrs r1test_avail_old_missing_zoneinfoz** :J; :99JI; :s<CCAB7C&C7C <CC CCctjdj}td|i5}t j }|j sJ|jdk(sJ|jdk(sJ|jdk(sJ|jdk(sJ|jdk(sJ|jdk(sJ|jd k(sJ|jd k(sJ|jd k(sJ dddy#1swYyxYw) Na 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 riiipiTii iX )rrrrrrrrlr]rrr{rrrr)rrrmems r1test_virtual_memory_mockedz7TestSystemVirtualMemoryMocks.test_virtual_memory_mockeds//1#1bc d9 :a'')C88O899 * **88x' '';;(* **::0 00::* **::) ))<<8+ ++88y( ((==H, ,,; : :s B88|+373E3E3G01aE4   zzU"""499t#$'8888> =s CC ctddi5}tj|jsJ dddy#1swYyxYw)Nrrp)rrr rrrs r1#test_emulate_meminfo_has_no_metricsz8TestSystemSwapMemory.test_emulate_meminfo_has_no_metricsbs65 6!    88O87 6 6s #;AN) rrr staticmethodrrrrrrrrr!rrpr1rrs`<< B BB BB %%"9"rprceZdZdZy)TestSystemCPUTimescTtjj}tjdt j dd}ttt|jd}|dk\rd|vsJd|vsJ|dk\rd|vsJd|vsJ|d k\rd |vsJyd |vsJy) Nz \d+\.\d+\.\d+r.)r& steal)r&r(r"guest)r&r guest_nice) r cpu_times_fieldsrrosunamerrrhr@)rrL kernel_verkernel_ver_infos r1 test_fieldszTestSystemCPUTimes.test_fieldsrs!!#++ZZ 0"((*Q-@C C)9)9#)> ?@ j (f$ $$&( (( j (f$ $$&( (( i '6) ))v- --rpN)rrrr4rrpr1r$r$ps.rpr$ceZdZejj ejjd ddZ ejj ejjd ddZ ejj e jd d d Z ejj e jd  d d ZdZy)TestSystemCPUCountLogical/sys/devices/system/cpu/onlinez-/sys/devices/system/cpu/online does not existrctd5}|jj}ddddtvr:t |j dddz}t j|k(sJyy#1swYQxYw)Nr7-ry)r?rrrrhr@r cpu_count)rrIvalues r1test_against_sysdev_cpu_onlinez8TestSystemCPUCountLogical.test_against_sysdev_cpu_onlinest 2 3qFFHNN$E4 #e*  C(+,q0E##%. .. 4 3s A;;B/sys/devices/system/cpuz&/sys/devices/system/cpu does not existc tjd}t|Dcgc]}tjd||c}}t j |k(sJycc}w)Nr=zcpu\d+$)r0listdirrBrsearchrr:)rlsrwcounts r1test_against_sysdev_cpu_numz5TestSystemCPUCountLogical.test_against_sysdev_cpu_numsY ZZ1 2K1bii A&>&JQKL!U***Ls A A nprocznproc utility not availablecbttd}tjd|k(sJy)Nz nproc --allTlogical)rhrrr:)rnums r1test_against_nprocz,TestSystemCPUCountLogical.test_against_nprocs,"]#$-444rplscpulscpu utility not availablectd}t|jdDcgc]}|jdr|c}}t j d|k(sJycc}w)Nlscpu -prc#TrF)rrBr@rerr:)rrirwrHs r1test_against_lscpuz,TestSystemCPUCountLogical.test_against_lscpusXnciioGoQ\\#5F1oGH-444Hs A"A"cddl}|jj}tjdt 5}|jj|k(sJ|j sJtjdd5}|jjJ|jdk(sJ|jdddk(sJ dddtd d 5}|j}dddtj}tjd|d 5}|jj|k(sJ dddtd d i5}|jj|k(sJ|j sJ ddddddy#1swYxYw#1swYxYw#1swYnxYw#1swY6xYw#1swYyxYw) Nrzpsutil._pslinux.os.sysconfrrTrr& /proc/stat /proc/cpuinforb return_valuerrp)psutil._pslinux_pslinuxcpu_count_logicalrrrCr call_count call_argsr?rrrr)rroriginalrrI cpuinfo_data fake_files r1test_emulate_fallbacksz0TestSystemCPUCountLogical.test_emulate_fallbackss??446ZZ (j ??446(B BB88O81$?188:BBB||q((({{1~a(L888 @ot, vvx - <0I%Id88:hFFF#OS#9:a88:hFFFxxx;5  @?-,;:5  smAG?AFGF!*5G F-G.F9GF G!F* &G-F6 2G9G >GGN)rrrrmarkskipifr0pathexistsr<rCshutilwhichrIrOr_rrpr1r6r6s [[ GGNN; <<>/ / [[ GGNN4 557+ +  [[ FLL !!*G55 [[ FLL !!*G55 " rpr6ceZdZejj ejd ddZejj e jdvddZ dZ y ) TestSystemCPUCountCoresrJrKrctd}t}|jdD]9}|jdr|jd}|j |d;t j dt|k(sJy)NrMrcrN,ryFrF)rsetr@readdrr:rB)rricore_idsrKrLs r1rOz*TestSystemCPUCountCores.test_against_lscpusnn5IIdOD??3'C VAY'$.#h-???rp>i686x86_64zx86_64/i686 onlyctjj}tjdg5}tjj}|j sJ ddd||k(sJyy#1swYxYw)N glob.globrV)rrXcpu_count_coresrrr)rmeth_1rmeth_2s r1 test_method_2z%TestSystemCPUCountCores.test_method_2sl002 ZZ " 5__446F88O86  V# ## 6 5s -A77Bc.tjdg5}tjdd5}tjj J ddddddj sJj sJy#1swY.xYw#1swY2xYw)NrprqrTr)rrrrXrrr)rm1m2s r1test_emulate_nonez)TestSystemCPUCountCores.test_emulate_nonest ZZ " 51$?2668@@@@6yyyyyy@?6 5s"B !A?B ?B B  BN) rrrrr`rardrerOplatformmachineruryrrpr1rgrgs [[ FLL !!*G@@ [["44=O$$rprgc eZdZejj e dejj eddZejj e dejj exse e jddZ ejj e ddZ ejj e ddZejj e dd Zy ) TestSystemCPUFrequency not supportedrz(aarch64 does not always expose frequencycfd}tjjtjd|d5t j sJ dddy#1swYyxYw)Nc8|jdry|S)N&/sys/devices/system/cpu/cpufreq/policyFre)rb orig_existss r1path_exists_mockzMTestSystemCPUFrequency.test_emulate_use_second_file..path_exists_mocksGH"4((rpos.path.existsT)rr)r0rbrcrrrcpu_freq)rrrs @r1test_emulate_use_second_filez3TestSystemCPUFrequency.test_emulate_use_second_filesM  ) ggnn ZZ *:4 ??$ $$   s AA#z% does not report mhz in /proc/cpuinfoctfd}tjj tjd|5t t jt j}|sJ||jdk(sJ|jdk(sJt jdD]$}|jdk(sJ|jdk(r$J dddt t jt t y#1swY2xYw#t t jt t wxYw)Nc8|jdry|S)Nz/sys/devices/system/cpu/Fr)rbos_path_existss r1rzITestSystemCPUFrequency.test_emulate_use_cpuinfo..path_exists_mock s9:%d++rprrQTpercpu) r0rbrcrrrrrXrmaxmin)rrrfreqrs @r1test_emulate_use_cpuinfoz/TestSystemCPUFrequency.test_emulate_use_cpuinfos ,  ",:JKfoo.oo'Csww#~%~ww#~%~"OO48D88s?*?88s?*?9 L &// * & !LK &// * & !s)D BD DD D D *D7cfd}ttjd|5tjdd5tj}|j dk(sJ|j dk7r|j d k(sJ|jdk7r|jd k(sJddddddy#1swYxYw#1swYyxYw) Nc|jdr&|jdrtjdS|jdr&|jdrtjdS|jdr&|jdrtjdS|dk(rtjd S|g|i|S) N/scaling_cur_freqr500000/scaling_min_freq600000/scaling_max_freqs700000rSscpu MHz : 500endswithrerrrrrrs r1rz;TestSystemCPUFrequency.test_emulate_data..open_mock"s}}01doo87zz),,2389zz),,2389zz),,(zz"677 7777rprrQrTrq@@r@g@r?rrrrcurrentrrrrrrs @r1test_emulate_dataz(TestSystemCPUFrequency.test_emulate_data s 8$ ZZY ?,4@(||u,,,88s?88u,,,88s?88u,,,A@ ?@@@ ?s#B?A&B3"B?3B< 8B??Ccfd}ttjd|5tjdd5tjdd5tjd }|d j d k(sJ|d j d k7r|d j d k(sJ|d jd k7r|d jdk(sJ|dj dk(sJ|dj d k7r|dj dk(sJ|djd k7r|djdk(sJdddddddddy#1swYxYw#1swYxYw#1swYyxYw)Nc|}|jdr&|jdrtjdS|jdr&|jdrtjdS|jdr&|jdrtjdS|jdr&|jdrtjd S|jdr&|jdrtjd S|jdr&|jdrtjd S|d k(rtjd S|g|i|S)Nrz'/sys/devices/system/cpu/cpufreq/policy0s100000r200000rs300000z'/sys/devices/system/cpu/cpufreq/policy1s400000rrrSs#cpu MHz : 100 cpu MHz : 400r)rrrnrs r1rz@TestSystemCPUFrequency.test_emulate_multi_cpu..open_mockBs=Azz-.1<<94zz),,/0Q\\96zz),,/0Q\\96zz),,/0Q\\96zz),,/0Q\\96zz),,/0Q\\96zz),,(zz"IJJ 7777rprrQrTrq!psutil._pslinux.cpu_count_logicalr&rrY@rgi@gr@rygy@rrrrs @r1test_emulate_multi_cpuz-TestSystemCPUFrequency.test_emulate_multi_cpu@sD 8> ZZY ?,4@ZZ7a"??$7D7??e333Aw{{c)#Aw{{e333Aw{{c)#Aw{{e3337??e333Aw{{c)#Aw{{e333Aw{{c)#Aw{{e333A@ ?A@@ ?s;EECE+E3EE EE EE%cpfd}ttjd|5tjdd5tjdd5tj}|j d k(sJ dddddddddy#1swYxYw#1swYxYw#1swYyxYw) Nc|jdrt|jdrtjdS|dk(rtjdS|g|i|S)Nrz/cpuinfo_cur_freqrrSscpu MHz : 200)rrrrrs r1rzOTestSystemCPUFrequency.test_emulate_no_scaling_cur_freq_file..open_mockvs_}}01''}}01zz),,(zz"677 7777rprrQrTrqrry)r?rrrrrrs @r1%test_emulate_no_scaling_cur_freq_filez [[L(A04B04d [[L(A/B/rpr}ceZdZdZy)TestSystemCPUStatsc|td}tjj}t ||z dksJy)N interruptsi)r~r cpu_statsrrrs r1test_interruptsz"TestSystemCPUStats.test_interruptss8l+ '')44 <,./#555rpN)rrrrrrpr1rrs6rprcTeZdZejj e ddZy) TestLoadAvgr~rcttj}td5}|jj }dddt t d|dz dksJt t |d|dz dksJt t |d|dz dksJy#1swYpxYw)Nz /proc/loadavgrryr&)r getloadavgr?rr@rfloat)rrrI proc_values r1test_getloadavgzTestLoadAvg.test_getloadavgs((* / "a)J#5A',q/9:Q>>>5A',q/9:Q>>>5A',q/9:Q>>> # "s B..B7N)rrrrr`rar rrrpr1rrs, [[N*?C?D?rprceZdZdZy)TestSystemNetIfAddrsctjjD]\}}|D]}|jtjk(r|j t |k(r:J|jtjk(rl|j t|k(sJ|jt|k(sJ|j|jt|k(rJt|dk(rJ|jtjk(s|j jdd}|t!|vrJy)Nz0.0.0.0%r)r net_if_addrsitemsfamilyAF_LINKaddressr[r%r&r2netmaskr6 broadcastr:rGr@rS)rraddrsaddrrs r1test_ipszTestSystemNetIfAddrs.test_ipss!..0668KD%;;&..0<>>>%9rpN)rrrrrrpr1rrs?rprceZdZejj ejd ddZdZ ejj ejd ddZ y)TestSystemNetIfStatsifconfigifconfig utility not availablerc&tjjD]]\}} td|}|jd|vk(sJ||j t tjd|dk(r]Jy#t$rYlwxYw)N ifconfig RUNNINGz(?i)MTU[: ](\d+)r) r net_if_statsrrisupmturhrr RuntimeError)rrstatsris r1test_against_ifconfigz*TestSystemNetIfStats.test_against_ifconfigs"..0668KD% 9TF+,zzi3&67<<7yyCJJ2C8;%9   sB BBctjjD]T\}}td|d5}|jt |j jk(sJ dddVy#1swYaxYw)Nz/sys/class/net/z/mtu)rrrr?rrhrr)rrrrIs r1test_mtuzTestSystemNetIfStats.test_mtush!..0668KD%vT23qyyC(8$999943933s 7A;;B c<d}tjjD]M\}} td|}t j d|}|rt |jdk\rh|dz }t|jdjjd}t|jjd}||k(rJt j d|}|st |jdk\s|dz }t|jdjj}t|jjd}||k(rNJ|stjd Sy#t$rYuwxYw) Nrrzflags=(\d+)?<(.*?)>r&ryriz(.*) MTU:(\d+) Metric:(\d+)r,zno matches were found)rrrrrr@rBrPrjgrouplowerr@flagsrrfail)r matches_foundrrrimatchifconfig_flags psutil_flagss r1 test_flagszTestSystemNetIfStats.test_flagssi  !..0668KD% >9TF+, "8#>S0A5!Q&M%(Q)=)=)?)E)Ec)J%KN#&u{{'8'8'=#>L)\999II&FLEU\\^!4!9%* ),U[[^-A-A-C-I-I-K)L'*5;;+<+.ifconfigs-Cy&'C"% 137:#C #& 137:#C rzz* DQ GHCM ,?!Ea!HIC N # A3GJ!C !$ A3GJ!C JrpTF)pernicnowrapri(rrrrr rrr) rnet_io_countersrrrrrrrrrrr)rrniorr ifconfig_rets r1rz-TestSystemNetIOCounters.test_against_ifconfig sq  *$$D?99;KD% '~ E$$|L'AABYN NE$$|L'AABYN NE&&n)EEFM ME&&n)EEFM Mu{{\'%::;b@ @@u||l8&<<=B BBu||l8&<<=B BBu}}|I'>>?"D DD)'   sD?? E  E N) rrrrr`rardrerrrrpr1rr sK [[ FLL $$-M+E+ErprcteZdZejdeejdddZdZy) TestSystemNetConnectionsz psutil._pslinux.socket.inet_ntoprQzpsutil._pslinux.supports_ipv6Frqctjtjtj5} |jdt j ddddy#t$rY*wxYw#1swYyxYw)N)z::1rinet6kind)r%rG SOCK_STREAMbindOSErrorrnet_connections)r supports_ipv6rHr0s r1test_emulate_ipv6_unsupportedz6TestSystemNetConnections.test_emulate_ipv6_unsupported@sf]]6??F,>,> ?1 z"  " " 0 @ ?  @ ?s.A4A%A4% A1.A40A11A44A=ctjd}td|i5}tjd|j sJ dddy#1swYyxYw)Na 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 z/proc/net/unixunixr)rrrrrr)rrrs r1test_emulate_unixz*TestSystemNetConnections.test_emulate_unixKsL//#  0': ;q  " " /88O8< ; ;s %AAN)rrrrrrCrrrrpr1rr>s?TZZ2 KTZZ/eD1EL1 rprceZdZejj eed dedZ dZ dZ y)TestSystemDiskPartitionsstatvfszos.statvfs() not availablercRd}tjdD]}tj|j}||j\}}}}|j|k(sJt |j |z tksJt |j|z tkrJy)Nc.td|dj}|jd}|jd|jd}|jdd\}}}}|dk(rd}t |t |t |}}}||||fS)Nz df -P -B 1 ""rcrr=nonerU)rrr@poprh)rbrirjrKdevrlrmr]s r1dfz4TestSystemDiskPartitions.test_against_df..dfes|D6+,224CIIdOE IIaL99Q,,.yy yyy y s1v}}---  ' &  s0C4D A D#D 4C=D D  Dc6 tjdd5}tjt5t j ddd|jsJ ddddt _y#1swY,xYw#1swY!xYw#dt _wxYw)Nzos.path.realpathz /non/existentrq/proc) rrrraisesrrrr PROCFS_PATHr s r1test_emulate_realpath_failz3TestSystemDiskPartitions.test_emulate_realpath_failsr )"]]#45**,6xxx ")F  65")F s9B A?A3A?B 3A< 8A??BB BN) rrrrr`rahasattrr0rrrrrrpr1rr\sQ [[ B ""+GAA*.0 )rprc6eZdZdZdZdZdZdZdZdZ y) TestSystemDiskIoCountersc d}td|i5tjdd5tjd}|j dk(sJ|j d k(sJ|jd tzk(sJ|jd k(sJ|jd k(sJ|jd k(sJ|jdtzk(sJ|jdk(sJ|jdk(sJ ddddddy#1swYxYw#1swYyxYw)Nz+ 3 0 1 hda 2 3 4 5 6 7 8 9 10 11 12/proc/diskstats!psutil._pslinux.is_storage_deviceTrqFrryr&r,r=rzr(rrrrrdisk_io_counters read_countread_merged_count read_bytes SECTOR_SIZE read_time write_countwrite_merged_count write_bytes write_time busy_timerrrs r1test_emulate_kernel_2_4z0TestSystemDiskIoCounters.test_emulate_kernel_2_4s @  17; <3$--U;~~***,,111~~[888}})))!+++--222!k/999~~***}}***= <= <#DB>C8'D8D =DD c d}td|i5tjdd5tjd}|j dk(sJ|j d k(sJ|jd tzk(sJ|jd k(sJ|jd k(sJ|jd k(sJ|jdtzk(sJ|jdk(sJ|jdk(sJ ddddddy#1swYxYw#1swYyxYw)Nz' 3 0 hda 1 2 3 4 5 6 7 8 9 10 11r$r%TrqFr&ryr&r,r=rzr(r'r(rr)r5s r1test_emulate_kernel_2_6_fullz5TestSystemDiskIoCounters.test_emulate_kernel_2_6_fulls <  17; <3$--U;~~***,,111~~[888}})))!+++--222!k/999~~***}}***= <= C6%D6C? ;DD ctjd}td|i5tjdd5t j dd}t|dk(sJ|d jd k(sJ|d jd k(sJ|d jd k(sJ|d jd k(sJ ddddddy#1swYxYw#1swYyxYw) Nx 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 r$r%FrqTperdiskrr&nvme0n1ry nvme0n1p1rz) rrrrrrr*rBr+r0r5s r1test_emulate_include_partitionsz8TestSystemDiskIoCounters.test_emulate_include_partitionss//# 17; <3%--d5I3x1}$}9~00A555;'22a7779~11Q666;'33q888= <= c |dk(S)Nr@rrs r1is_storage_devicezSTestSystemDiskIoCounters.test_emulate_exclude_partitions..is_storage_devices 9$ $rpTrryrz) rrrrrrr*r+r0)rrrrFs r1test_emulate_exclude_partitionsz8TestSystemDiskIoCounters.test_emulate_exclude_partitionss //# 17; <3%--eEJ{"{ = %//# 17; <3- --eEJ~~***!+++= <= <= C2C> D&:D !D2C; 7C>>D D DDcd}tjd}tjdd|5tjd}dddt |t k(sJy#1swY#xYw)Nc |dk(S)Nr$rrbs r1rcz?TestSystemDiskIoCounters.test_emulate_use_sysfs..existss,, ,rpT)r?psutil._pslinux.os.path.existsr)rr*rrrB)rrcwprocfswsysfss r1test_emulate_use_sysfsz/TestSystemDiskIoCounters.test_emulate_use_sysfssf -))$7 ZZ ,Tv ,,T:F 7|s6{***   s A++A4cd}tjdd|5tjt5t j ddddddy#1swYxYw#1swYyxYw)Ncy)NFrrJs r1rcz>TestSystemDiskIoCounters.test_emulate_not_impl..existssrprKTr)rrrrNotImplementedErrorrr*)rrcs r1test_emulate_not_implz.TestSystemDiskIoCounters.test_emulate_not_implsZ ZZ ,Tv 23'')4  43  s"A(A A(A% !A((A1N) rrrr6r9r;rBrGrNrRrrpr1r"r"s&+&+(*,9&,@ +*rpr"c eZdZdZdZej jeddZ ej je jd dej jeddZ d Z y ) TestRootFsDeviceFinderctjdj}tj||_tj||_y)Nr)r0rst_devmajorminor)rr s r1setUpzTestRootFsDeviceFinder.setUp&s3ggcl!!XXc] XXc] rpc&t}tjjdr|j n2t j t5|j dddtjjd|jd|jdr|jn2t j t5|jddd|jy#1swYxYw#1swY&xYwNz/proc/partitionsz/sys/dev/block/r>z/uevent) rr0rbrcask_proc_partitionsrrrrWrXask_sys_dev_blockask_sys_class_block)rfinders r1test_call_methodsz(TestRootFsDeviceFinder.test_call_methods+s#% 77>>, -  & & (01**,2 77>>ODJJ>, -**,A 77>>ODJJ.open_mock|s*??7+++ 7777rprrQTrrzcpu 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 r) get_testfnr0mkdirr?rbrEwriterrrrrrrr. cpu_percentcpu_times_percentrsumrrdrmtree)r my_procfsrIrper_cpu_percentper_cpu_times_percentrs @r1test_no_procfs_on_importz!TestMisc.test_no_procfs_on_importps%OO%   "'',,y&13 71 GG1 2 GG1 2 GG1 28 4 "I 8 OCf%]]7+$$&,]]7+$$D1,]]7+&&(,]]7+&&d3,]]7+,,.,]]7+,,D9,&/"))+q00063356!;;;#)"4"4D"A?+q000)/(@(@(M%3s$9:;q@@@"'',,y&93?1GG9:GG9:GG9:@ ))+q0006--T:;q@@@63356!;;;C!9!9!FGHAMMQDV MM) $ & !!!W,,,w8 7 ,+++++++++++$@??DCV MM) $ & !s4O$"Q0)Q O1.!Q O>&!Q P !Q =P!Q 5P% !Q +P2CQ 4P?BQ "Q$O.1O; 6Q >P Q  P Q P" Q %P/ *Q 2P< 7Q ?Q Q  QQ&Q>ctjdj}td|i5}t j |j sJt j dt jt jddddtjdj}td|i5t j }j sJt j d}t j}t jd}|dk7sJt|dk7sJt|dk7sJt|dk7sJttt|dk7sJttt|dk7sJ|jdk(sJ|jdk7sJ dddy#1swY:0:0.0)rusershost)rrs r1 test_userszTestMisc.test_userss&LLND99N2 22#rpcd|j}tj| |t_t j t5tjdddt j t5tjdddt j t5tjddddt j t5tjdddt j t5tjdddt j t5tjdddt j t5tjdddt j t5tjdddt j tj5tj ddddt_y#1swYxYw#1swYxYw#1swY~xYw#1swYUxYw#1swY,xYw#1swYxYw#1swYxYw#1swYxYw#1swY{xYw#dt_wxYw)NTrr)rvr0rwrrrrrrr.rrrrrr NoSuchProcessProcess)rtdirs r1test_procfs_pathzTestMisc.test_procfs_paths   )!%F w'%%'(w'  "(w'  -(w'  "(w'&&((w'&&((w'##%(w'&&((v334 5")F '('''''''''''''''44")F s$J" H0 !J"H=!J"7I !J"/I!J"%I$:!J"I10!J"I>&!J"J +J"JJ"0H:5J"=IJ" IJ"I!J"$I.)J"1I;6J">JJ" JJ"JJ"" J/serialrEctj}t|j}t 5|j}t||dzk(sJt |ddj }|j|k7sJtj|}|j|tjvsJ dddy#1swYyxYw)Nryc|jSrt)id)rws r1z)TestMisc.test_issue_687.. srp)key) rrrBthreadsrsortedrpidas_dictpids)rpnthreadsrtidpts r1test_issue_687zTestMisc.test_issue_687s NN qyy{# \iikGw<8a</ //n5a8;;C55C< <$B JJLfkkm+ ++\\s B CCctddi5}tjtjsJ|j sJ dddy#1swYyxYw)Nz/proc/%s/statusrU)rr pid_existsr0getpidrr s r1test_pid_exists_no_proc_statusz'TestMisc.test_pid_exists_no_proc_statussE 126 71$$RYY[1 1188O88 7 7s 8AAN)rrrrsrrrrrrrr` xdist_grouprrrrpr1rprpisX6 ?-B%/N 3 )4 [[(+,,,$rprpz no batteryceZdZejj ejd ddZdZ dZ dZ dZ d Z d Zd Zd Zy )TestSensorsBatteryacpizacpi utility not availablerctd}t|jddjj dd}t j j}t||z dksJy)Nzacpi -briryrrU) rrhr@rreplacersensors_batterypercentr)rri acpi_valuers r1 test_percentzTestSensorsBattery.test_percent#sfm3*002::3CD --/77 : ,-111rpc8fd}ttjd|5}tjj dusJtjj tjk(sJ|jsJ dddy#1swYyxYw)Nch|jdrtjdS|g|i|S)Nz AC0/onlinez AC/online1rrrrs r1rz@TestSensorsBattery.test_emulate_power_plugged..open_mock.4}}89zz$'' 7777rprrQT) r?rrrr power_pluggedsecsleftPOWER_TIME_UNLIMITEDrrrrrs @r1test_emulate_power_pluggedz-TestSensorsBattery.test_emulate_power_plugged,s 8  ZZY ?1))+99TA AA&&(11../ /88O8 @ ? ?s A"BBcfd}ttjd|5}tjj dusJ|j sJ dddy#1swYyxYw)Nc|jdrt|jdrtjdS|g|i|S)Nr/statuschargingrrrrrs r1rzBTestSensorsBattery.test_emulate_power_plugged_2..open_mock@sF}}89''}}Y'{{:.. 7777rprrQTr?rrrrrrrs @r1test_emulate_power_plugged_2z/TestSensorsBattery.test_emulate_power_plugged_2=sT 8 ZZY ?1))+99TA AA88O8@ ? ? 1AA(cfd}ttjd|5}tjj dusJ|j sJ dddy#1swYyxYw)Nch|jdrtjdS|g|i|S)Nr0rrs r1rzDTestSensorsBattery.test_emulate_power_not_plugged..open_mockOrrprrQFrrs @r1test_emulate_power_not_pluggedz1TestSensorsBattery.test_emulate_power_not_pluggedMsT 8  ZZY ?1))+99UB BB88O8@ ? ?rcfd}ttjd|5}tjj dusJ|j sJ dddy#1swYyxYw)Nc|jdrt|jdrtjdS|g|i|S)Nrr dischargingrrs r1rzFTestSensorsBattery.test_emulate_power_not_plugged_2..open_mock]sF}}89''}}Y'{{=11 7777rprrQFrrs @r1 test_emulate_power_not_plugged_2z3TestSensorsBattery.test_emulate_power_not_plugged_2ZsT 8 ZZY ?1))+99UB BB88O8@ ? ?rcfd}ttjd|5}tjj J|j sJ dddy#1swYyxYw)Nc|jdrt|jdrtjdS|g|i|S)N)"/sys/class/power_supply/AC0/online!/sys/class/power_supply/AC/online#/sys/class/power_supply/BAT0/statuss???)rerrrrs r1rzETestSensorsBattery.test_emulate_power_undetermined..open_mockmsM ('DEzz&)) 7777rprrQrrs @r1test_emulate_power_undeterminedz2TestSensorsBattery.test_emulate_power_undeterminedjsR 8 ZZY ?1))+99A AA88O8@ ? ?s /AA&ctddi5}tjjdk(sJ|jsJ dddy#1swYyxYw)N(/sys/class/power_supply/BAT0/energy_fullrr)rrrrrr s r1test_emulate_energy_full_0z-TestSensorsBattery.test_emulate_energy_full_0}sM  7 > ))+33q8 8888O8    s 2A  Ac$tdt5tdt5tddi5tjj dk(sJ dddddddddy#1swYxYw#1swYxYw#1swYyxYw)Nrz(/sys/class/power_supply/BAT0/charge_fullz%/sys/class/power_supply/BAT0/capacitys88X)rrrrrrrs r1"test_emulate_energy_full_not_availz5TestSensorsBattery.test_emulate_energy_full_not_avails! 6  %:!'.open_mocksi}}]+{{:..|,{{3''~.{{:.. 7777rpz os.listdirBAT0rqrrQ)r?rrrrr)rrmlistdirmopenrs @r1test_itz"TestSensorsBatteryEmulated.test_its~ 8 ZZ F8 <OCu--/;;;D=|||DC= .open_mocks}}W%{{6**~.{{7++~.zz(++|,zz(++}-zz(++ 7777rprrQrpz/sys/class/hwmon/hwmon0/temp1rqrrr>@gD@I@ r?rrrsensors_temperaturesrrhighcritical)rrtemprs @r1test_emulate_class_hwmonz0TestSensorsTemperatures.test_emulate_class_hwmons 8 ZZY ?+J*K224V.open_mocks}}X&zz(++v&zz(++x({{:..v&{{6** 7777rpc4|dvrgS|dk(rdgS|dk(rddgSgS)N>/sys/class/hwmon/hwmon*/temp*_*&/sys/class/hwmon/hwmon*/device/temp*_*z /sys/class/thermal/thermal_zone*z /sys/class/thermal/thermal_zone0z,/sys/class/thermal/thermal_zone0/trip_point*z2/sys/class/thermal/thermal_zone1/trip_point_0_typez2/sys/class/thermal/thermal_zone1/trip_point_0_temprrJs r1 glob_mockzETestSensorsTemperatures.test_emulate_class_thermal..glob_mocksH ;;:;;GGHHIrprrQrpTrrrrUrrr)rrrrrs @r1test_emulate_class_thermalz2TestSensorsTemperatures.test_emulate_class_thermals 8  ZZY ?K)L224V.open_mocksi}}W%{{6**}-{{7++}-{{6** 7777rprrQrpz/sys/class/hwmon/hwmon2/fan1rqrrri)r?rrr sensors_fansrr)rrfanrs @r1rz!TestSensorsFans.test_emulate_datas 8 ZZY ?+I*J))+F3A6yyG+++{{d*** @ ?@ ?s"B=B ;B B BB!N)rrrrrrpr1rrs+rprceZdZedZdZdZdZdZdZ dZ dZ d Z d Z d Zd Zd ZdZdZdZej*j-e ddZdZdZdZdZy) TestProcessc|j}tjj|jj \}}}tj|jj d}t|td|Dz dksJt|td|Dz dksJt|td|Dz dksJy)NF)groupedc3NK|]}|j|jzywrt) private_dirty private_cleanrus r1rxz>TestProcess.test_parse_smaps_vs_memory_maps.. sJT!//AOO;Ts#%rc34K|]}|jywrt)pssrus r1rxz>TestProcess.test_parse_smaps_vs_memory_maps..#s1DqQUUDc34K|]}|jywrt)rrus r1rxz>TestProcess.test_parse_smaps_vs_memory_maps..$s3daffdr) spawn_subprocrrXrr _parse_smaps memory_mapsrr{)rsprocussrrmapss r1test_parse_smaps_vs_memory_mapsz+TestProcess.test_parse_smaps_vs_memory_mapss""$00;HHJS$~~eii(44U4C cJTJJJ K   31D1112T9994#3d3334t;;;rpctjdj}tdt j d|i5}t jjt j }|j\}}}|jsJ|dk(sJ|dk(sJ|dk(sJ dddy#1swYyxYw)Nan 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 /proc//smapsilri<) rrrrr0rrrXrrr)rrrrrrrs r1test_parse_smaps_mockedz#TestProcess.test_parse_smaps_mocked&s//#,- .& V .get_test_fileHse A n4ILLNDyyBGGOOE$::# y0 +rprrrzr+zw+za+rwzx+)rvr?moder)rr&testfns r1test_open_files_modez TestProcess.test_open_files_modeGs @" &#  (--4 44 &\ (--4 44 &#  (--4 44 &$  (--5 55 &$  (--5 55 &$  (--5 55  F &#  (--4 44F &$  (--5 55 #  \          s_F F9F,&F9GG8G0G)FF),F69GGGG&)G2cDtjjt|j d5t fdt jdt5}jgk(sJ|jsJ dddt jdttjd5}jgk(sJ|jsJ ddddddy#1swYnxYw#1swYxYw#1swYyxYw)NrcNtjtk7SrtrBr!filesrsr1rz7TestProcess.test_open_files_file_gone..os1<<>2c%j@rppsutil._pslinux.os.readlinkrQrU) rrr!r?rvrrrrrrerrnoEINVALrrr/rs @@r1test_open_files_file_gonez%TestProcess.test_open_files_file_gonehs NN   $//#S ) @ A--||~+++xxx -#ELL"5||~+++xxx * )* )s<+D,$C>7D$D -D>D D D DDcttjjt|j d5t fdt jdt5}jgk(sJ|jsJ ddddddy#1swYxYw#1swYyxYw)NrcNtjtk7Srtr-r.sr1rz5TestProcess.test_open_files_fd_gone..r0rprrQ) rrr!r?rvrrrrrr4s @@r1test_open_files_fd_gonez#TestProcess.test_open_files_fd_gones NN   $//#S ) @ A->||~+++xxx * )* )s$+B.,$B"B."B+ 'B..B7ctjjt|j d5t fdd}t j|ttjd5}t jd5jgk(sJ|jsJ dddddddddy#1swYxYw#1swYxYw#1swYyxYw)NrcNtjtk7Srtr-r.sr1rz:TestProcess.test_open_files_enametoolong..r0rpr1rUrQpsutil._pslinux.debug) rrr!r?rvrrrrr2 ENAMETOOLONGr)r patch_pointrr/rs @@r1test_open_files_enametoolongz(TestProcess.test_open_files_enametoolongs NN   $//#S ) @ A7K1C1CR)HZZ 78<<>R///88O89 * )98 * )s=AC.C"$C=C"C.C C""C+ 'C..C7ctjdi5}tjj t j jJ|jsJ dddy#1swYyxYw)Nz)psutil._pslinux._psposix.get_terminal_maprq) rrrrXrr0rterminalrr s r1test_terminal_mockedz TestProcess.test_terminal_mockeds[ ZZ 7b ??**299;7@@BJ JJ88O8    s AA22A;ctj}tjd}t j d|d5}|j ddgk(sJ|jsJ dddtjd}t j d|d5}|j gdk(sJ|jsJ dddy#1swYfxYw#1swYyxYw) NzfoobarrTrUfoobarz foobarrCrDrUrrrrrrcmdlinerrrr^rs r1test_cmdline_mockedzTestProcess.test_cmdline_mockeds NN KK 01 ZZ ! $ 99;5%.0 0088O8  KK 45 ZZ ! $ 99;"44 4488O8       &C&CCC#ctj}tjd}t j d|d5}|j ddgk(sJ|jsJ dddtjd}t j d|d5}|j gdk(sJ|jsJ dddy#1swYfxYw#1swYyxYw) Nzfoo bar rTrUrCrDz foo bar rErFrHs r1test_cmdline_spaces_mockedz&TestProcess.test_cmdline_spaces_mockeds NN KK + ZZ ! $ 99;5%.0 0088O8  KK , ZZ ! $ 99;"44 4488O8       rJctj}tjd}t j d|d5}|j ddgk(sJ|jsJ dddy#1swYyxYw)Nzfoo barrTrUrCrDrFrHs r1test_cmdline_mixed_separatorsz)TestProcess.test_cmdline_mixed_separatorssh NN KK 01 ZZ ! $ 99;5%.0 0088O8    s &A22A;ctjdd5tjj dk(sJtjj dk(sJ dddy#1swYyxYw)Nr1z/home/foo (deleted)rqz /home/foo)rrrrexecwdrs r1!test_readlink_path_deleted_mockedz-TestProcess.test_readlink_path_deleted_mockedsb ZZ )8M >>#'')[8 88>>#'')[8 88    s AA11A:cfd}ttjd|5}tjj }|j sJ|gk(sJ dddfd}tjd|5tjtj5tjj ddddddy#1swY}xYw#1swYxYw#1swYyxYw)Ncv|jdtjdrt|g|i|SNrz/task)rer0rrrs r1 open_mock_1z4TestProcess.test_threads_mocked..open_mock_1s9 }E:;''T3D3F3 3rprrQcv|jdtjdrt|g|i|SrU)rer0rPermissionErrorrs r1 open_mock_2z4TestProcess.test_threads_mocked..open_mock_2s9 }E:;%%T3D3F3 3rp) r?rrrrrrrr AccessDenied)rrVrrrYrs @r1test_threads_mockedzTestProcess.test_threads_mockeds  4  ZZ[ AQ.."**,C88O8"9 9B 4 ZZ[ Av223 ((*4B AB A43B As/8C$C1%#C%C1C"%C. *C11C:c,tjdt5}tjdg5tjj }|j sJ|dk(sJ ddddddy#1swYxYw#1swYyxYw)Npsutil._pslinux.readlinkrQzpsutil._pslinux.Process.cmdlinerqrU)rrrrrrPrrrrs r1test_exe_mockedzTestProcess.test_exe_mockeds{ ZZ &4E 1nn&**,xxxby y       s"B 8A>-B >B B  Bctjdt5}tjj }|j sJ|dk(sJ dddy#1swYyxYw)Nr]rQrU)rrrrrrQrr^s r1test_cwd_mockedzTestProcess.test_cwd_mockedsS ZZ &4E .."&&(C88O8"9 9    s 8AA'c<tdtjdt5}t j }t jt5|jddd|jsJ dddy#1swY!xYw#1swYyxYw)Nrr) rr0rrrrrrrrrrrs r1test_issue_1014zTestProcess.test_issue_1014 st!RYY[M (*;  A01 288O8   21   s#.BB&BB BBctj}tdtjdt 5t jdd5tjtj5|jdddddddddy#1swYxYw#1swYxYw#1swYyxYw)Nrz/statmrFrq) rrrr0rrrrrrr memory_inforrs r1test_issue_2418zTestProcess.test_issue_2418s NN  RYY[M (*; ,5A]]6#7#78MMO9B  98BA  s;B9$B-7B!B-B9!B* &B--B6 2B99Cr~rctjdttjd5}tjdd5}t j }|jtjt j5}|jt jdddddddddjsJjsJjjjk(sJ|jj|jk(sJy#1swYxYw#1swYxYw#1swYxYw)Nzresource.prlimitrUrQz"psutil._pslinux.Process._is_zombieTrq)rrrr2ENOSYSrrrrr ZombieProcessrlimit RLIMIT_NOFILErr;r)rrwrxrcms r1test_rlimit_zombiezTestProcess.test_rlimit_zombies ZZ GELL",E 44NN$]]6#7#78BHHV1129  yyyyyyxx||quu$$$xx}}((( 98   s<E AD? D30D?8E 3D< 8D??E E  Ecgd}dj|j}tdtjd|i5t j }|jdk(sJ|jt jk(sJ|jdk(sJ|jdtz t jzk(sJ|j}|jdtz k(sJ|j d tz k(sJ|j"d tz k(sJ|j$d tz k(sJ|j&d tz k(sJ|j)dk(sJ dddy#1swYyxYw) N)*rz(cat)Z1rrrrrrrrr2345rrrr6rrrrrrrrrrrrrrrrrwrr7rrz/statcatryr(r&r,r=rzr')rErrr0rrrrstatus STATUS_ZOMBIEppid create_timerrrr.rsystem children_userchildren_systemiowaitcpu_num)rrrrcpus r1test_stat_file_parsingz"TestProcess.test_stat_file_parsing2sN+ X((4.'') & U ;WE F A668u$ $$88:!5!55 55668q= ===?a+o8H8H8J&JJ JJ++-C88q;. ..::[0 00$$K7 77&&!k/9 99::[0 0099;!# ##G F Fs D0FF ctjdj}tdt j d|i5t j}|jjdk(sJ|jjdk(sJ|jdk(sJ|j}|jdk(sJ|jdk(sJ|jd k(sJ|j!}|jd k(sJ|jd k(sJ|jd k(sJ|j"j%t't)d k(sJ dddy#1swYyxYw)Nz 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: 13rr Biiiiiir()rrrrr0rrrnum_ctx_switches voluntary involuntary num_threadsuidsreal effectivesavedgids_proc_get_eligible_cpuslistrD)rrrrrs r1test_status_file_parsingz$TestProcess.test_status_file_parsingnsK//#/017 & W =wG H A%%'11R7 77%%'33r9 99==?b( ((668D99$ $$>>T) ))::% %%668D99$ $$>>T) ))::% %%77--/4a>A AAI H Hs DE00E9cPtjdttjd5}t j }tjd5|jgk(sJ|jsJ ddddddy#1swYxYw#1swYyxYw)Nr1rUrQr;) rrrr2r<rrrrrcs r1!test_net_connections_enametoolongz-TestProcess.test_net_connections_enametoolongsZZ ) 2 2B7  A34((*b000xxx5   54   s#*B$B?BB BB%ctj}|jj|jjdk7sJ|j d|jjdk(sJy)NT) monotonicry)rrrr} _get_identrgs r1test_create_time_monotonicz&TestProcess.test_create_time_monotonicsf NN ww""$(;(;d(;(KKKK||~a AGG$7$7$$7$GGGGrpN)rrrrrrr*r5r8r>rArIrLrNrRr[r_rardrhrr`rar rorrrrrrpr1r r s < <%B6B .  $&  9+6 ! $ [[J?)@)&:$xB0  Hrpr cpeZdZdZedZdZdZdZdZ dZ dZ d Z e d Zd Zd Zy )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. c6tj|_yrt)rrproc)clss r1 setUpClassz#TestProcessAgainstStatus.setUpClasss>>#rpctjjd|jjd5}|D]N}|j }|j |s%|jdd} t|ccdddStd|#t$r|cYccdddSwxYw#1swYyxYw)Nrr r&r) r _psplatform open_textrrrre partitionrhrC)r linestartrIrKr;s r1read_status_filez)TestProcessAgainstStatus.read_status_files    ) )TYY]]O7 + zz|??9- NN403E%"5z)  {9-89 9&%$   %  s;'B6 B65 B?B6 B6 B3%B62B33B66B?cd|jd}|jj|k(sJy)NzName:)rrrrr;s r1 test_namez"TestProcessAgainstStatus.test_name+%%g.yy~~5(((rpc|jd}||jddz|jd}|jdd}|jj |k(sJy)NzState:(ry)rr9)rrbrfindrrrzrs r1 test_statusz$TestProcessAgainstStatus.test_statuss_%%h/ejjo)EKK,<= c3'yy!U***rpcd|jd}|jj|k(sJy)NzPPid:)rrr|rs r1 test_ppidz"TestProcessAgainstStatus.test_ppidrrpcd|jd}|jj|k(sJy)NzThreads:)rrrrs r1test_num_threadsz)TestProcessAgainstStatus.test_num_threadss-%%j1yy$$&%///rpc|jd}ttt|j dd}|j j |k(sJy)NzUid:ryr=)rrrrhr@rrrs r1 test_uidsz"TestProcessAgainstStatus.test_uidsI%%f-c#u{{}Qq123yy~~5(((rpc|jd}ttt|j dd}|j j |k(sJy)NzGid:ryr=)rrrrhr@rrrs r1 test_gidsz"TestProcessAgainstStatus.test_gidsrrpc|jd}|jjj|k(sJ|jd}|jjj|k(sJy)Nzvoluntary_ctxt_switches:znonvoluntary_ctxt_switches:)rrrrrrs r1test_num_ctx_switchesz.TestProcessAgainstStatus.test_num_ctx_switchessf%%&@Ayy))+55>>>%%&CDyy))+775@@@rpc|jd}dt|vrXtt|j d\}}|j j tt||dzk(sJyy)NCpus_allowed_list:r9ry) rrrrhr@r cpu_affinityrrD)rr;min_max_s r1test_cpu_affinityz*TestProcessAgainstStatus.test_cpu_affinitysh%%&:; #e* S%++c"23JD$99))+tE$q4I/JJ JJ rpc|jd}tjd5}|jjj ddddt |vrjrJyjsJy#1swY4xYw)Nrzpsutil._pslinux.per_cpu_timesr9)rrrrrrrr)rr;rs r1test_cpu_affinity_eligible_cpusz8TestProcessAgainstStatus.test_cpu_affinity_eligible_cpussi%%&:; ZZ7 8A IIOO . . 09 #e* xx  >>88O8E D Ds 3AAN)rrrrrrpr1rrsrpr)\rrf contextlibr2rr0rzrrdr%r,rr runittestrrr psutil.testsrrrrr r r r r rrrrrrrrrrrWrrrrrbr"dirname__file__HEREr+rXr5r9r.r2r6r:rSr[ror|r~rcontextmanagerrrr`rarrrrr$r6rgr}rrrrrrrr"rTrprrrrr rrrrpr1rsJ     ''$%'# -*'##&)$0+24+ wwrwwx01  K      ,F DC(@@ (   (Il31B1B41BhIl3,D>,D4,D^Il3F->F-4F-\Il3P>P4PpIl3..4.&Il3F F 4F RIl3n4@Il3W/^W/4W/tIl3 6 64 6Il3 ?. ?4 ?"Il3?>?4?NIl338>38438lIl30En0E40EfIl3~4:Il3<)~<)4<)~Il3D*~D*4D*NIl3<2^<24<2HIl3n~n4nlIl3 OL9JJ:4JDIl34(Il3?-n?-4?-DIl3+n+4+6Il3}H.}H4}H@ Il3J~J4JdIl34rp