\c@ sdZddlmZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlmZddlmZddlmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlm 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.Z/dZ0dZ1dZ2er}dZ3nd Z4d!Z5d"Z6d#Z7d$Z8d%Z9ej:d&Z;ej:d'Z<e)j=e d(d)e)j>fd*YZ?e)j=e d(d+e)j>fd,YZ@e)j=e d(d-e)j>fd.YZAe)j=e d(d/e)j>fd0YZBe)j=e d(d1e)j>fd2YZCe)j=e d(d3e)j>fd4YZDe)j=e d(d5e)j>fd6YZEe)j=e d(d7e)j>fd8YZFe)j=e d(d9e)j>fd:YZGe)j=e d(d;e)j>fd<YZHe)j=e d(d=e)j>fd>YZIe)j=e d(d?e)j>fd@YZJe)j=e d(dAe)j>fdBYZKe)j=e d(dCe)j>fdDYZLe)j=e d(dEe)j>fdFYZMe)j=e d(e)j=e dGdHe)j>fdIYZNe)j=e d(dJe)j>fdKYZOe)j=e d(dLe)j>fdMYZPe)j=e d(dNe)j>fdOYZQe)j=e d(dPe)j>fdQYZRe)j=e d(dRe)j>fdSYZSeTdTkrddUlUmVZVeVe.ndS(VsLinux specific tests.i(tdivisionN(tLINUX(t basestring(tPY3(tu(t call_until(t HAS_BATTERY(t HAS_CPU_FREQ(tHAS_GETLOADAVG(t HAS_RLIMIT(tMEMORY_TOLERANCE(tmock(tPYPY(tpyrun(t reap_children(t reload_module(tretry_on_failure(t safe_rmpath(tsh(tskip_on_not_implemented(tTESTFN(t ThreadTask(tTRAVIS(tunittest(twhichiii'ic C sddl}|d }tr.t|d}ntjtjtj}tj|:tj|j |j t t j d|dd!SWdQXdS(Niitasciit256sii(tfcntlRtbytestsockettAF_INETt SOCK_DGRAMt contextlibtclosingt inet_ntoatioctltfilenot SIOCGIFADDRtstructtpack(tifnameRts((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pytget_ipv4_address@s  c C sddl}|d }tr.t|d}ntjtjtj}tj||j|j t t j d|}trd}nddl }|j}djg|dd!D]}d ||^qd SWdQXdS( NiiRRcS s|S(N((tx((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pytordWstiis%02x:(RRRRRRR R!R#R$t SIOCGIFHWADDRR&R't __builtin__R,tjoin(R(RR)tinfoR,R/tchar((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pytget_mac_addressMs  !   cC stddidd6}|jd}xi|D]a}|jdr/|j\}}}}tjdd}|t|t|t|Sq/Wtd dj|d S( sQParse 'free' cmd and return swap memory's s total, used and free values. sfree -btenvsC.UTF-8tLANGs tSwaptfreestotal used frees&can't find 'Swap' in 'free' output: %sN(Rtsplitt startswitht collectionst namedtupletintt ValueErrorR0(touttlinestlinet_ttotaltusedR7tnt((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt free_swap_s &c C stddidd6}|jd}x}|D]u}|jdr/g|jdd!D]}t|^qX\}}}}tjd d }||||||Sq/Wtd dj|d S( sSParse 'free' cmd and return physical memory's total, used and free values. sfree -bR4sC.UTF-8R5s tMemiiR7stotal used free shared outputs%can't find 'Mem' in 'free' output: %sN(RR8R9R<R:R;R=R0( R>R?R@R+RBRCR7tsharedRD((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt free_physmemns 8 cC svtddidd6}xF|jdD]5}|j}||kr)t|jddSq)Wtd|dS( Ns vmstat -sR4sC.UTF-8R5s t is can't find %r in 'vmstat' output(RR8tstripR<R=(tstatR>R@((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pytvmstats   cC s8tdj}ttt|jdjdS(Nsfree -Vit.(RRJttupletmapR<R8(R>((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pytget_free_version_infosc# sZfd}ttr'dnd}tj|dtd| }|VWdQXdS(sMock open() builtin and forces it to return a certain `content` on read() if the path being opened matches `for_path`. c sb|krNtr>ttr.tjStjSq^tjSn|||SdS(N(Rt isinstanceRtiotStringIOtBytesIO(tnametargstkwargs(tcontenttfor_patht orig_open(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt open_mocks  s builtins.opens__builtin__.opentcreatet side_effectN(topenRR tpatchtTrue(RYRXR[t patch_pointtm((RXRYRZs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pytmock_open_contents  c# sZfd}ttr'dnd}tj|dtd| }|VWdQXdS(sZMock open() builtin and raises `exc` if the path being opened matches `for_path`. c s)|krn|||SdS(N((RURVRW(texcRYRZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[s  s builtins.opens__builtin__.openR\R]N(R^RR R_R`(RYRdR[RaRb((RdRYRZs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pytmock_open_exceptions s LINUX onlytTestSystemVirtualMemorycB seZdZejeo'edkdedZeje dedZ edZ eje dedZ eje ded Z ed Zed Zd Zd ZdZdZdZdZRS(cC s3tdd}tjj}|j||dS(Ns total memoryi(RLtpsutiltvirtual_memoryRBtassertAlmostEqual(tselft vmstat_valuet psutil_value((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt test_totalsii sold free versionc C sQt}|j}tjj}|j||dtdd|||jfdS(Ntdeltatmsgs %s %s %s(RHRCRgRhRiR toutput(RjR7t free_valueRl((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt test_useds   sunreliable on TRAVIScC s9tdd}tjj}|j||dtdS(Ns free memoryiRn(RLRgRhR7RiR (RjRkRl((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt test_freescC s9tdd}tjj}|j||dtdS(Ns buffer memoryiRn(RLRgRhtbuffersRiR (RjRkRl((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt test_buffersscC s9tdd}tjj}|j||dtdS(Ns active memoryiRn(RLRgRhtactiveRiR (RjRkRl((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt test_activescC s9tdd}tjj}|j||dtdS(Nsinactive memoryiRn(RLRgRhtinactiveRiR (RjRkRl((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt test_inactivesc C sot}|j}|dkr0tjdntjj}|j||dtdd|||jfdS(Nis%free does not support 'shared' columnRnRos %s %s %s( RHRGRtSkipTestRgRhRiR Rp(RjR7RqRl((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt test_shareds   c C std}|jd}d|dkr=tjdnRt|djd}tjj}|j||dt d d |||fdS( Nsfree -bs t availableis(free does not support 'available' columniiRnRos %s %s %s( RR8RRzR<RgRhR|RiR (RjR>R?RqRl((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_availables c C stdtjdj}tjdt}tjdtj }|j s^t |j t |d|d}|jjdst |jdt|j|jd t|j|jd t|j|jd t|j|jd t|j|jd t|j|jdt|j|j |jd|j |jd|j |jd|j |jd|j |jd|j |jd|j |jdWdQXWdQXdS(Ns /proc/meminfosp 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 trecordtalwaysiispsutil/_pslinux.pys#memory stats couldn't be determinedtcachedRGRvRxRtR|(Rcttextwraptdedenttencodetwarningstcatch_warningsR`t simplefilterRgRhtcalledtAssertionErrort assertEqualtlentfilenametendswithtassertIntstrtmessageRRvRxRGRtR|tslab(RjRbtwstrettw((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_warnings_on_missess4    c C sddlm}ddlm}i}|d@}x6|D].}|j}t|dd||dR+R((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_against_lscpu{s 7cC soddl}|jj}tjddt9}|j|jj||js[ttjddt K}|j |jj|j|j d|j|j dddWdQXt d d }|j}WdQXtj|}tjdd |dt  }|j|jj|WdQXtd d '}|j|jj||jWdQXWdQXdS( Nispsutil._pslinux.os.sysconfR]spsutil._common.openR\iis /proc/stats /proc/cpuinfotrbt return_valueR-(Rt_pslinuxtcpu_count_logicalR R_R=RRRR`t assertIsNonet call_countt call_argsR^RRRRTRc(RjRgtoriginalRbRt cpuinfo_datat fake_file((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_fallbackss& ! ( RRRRRtpathtexistsRRRRRR(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRcs""tTestSystemCPUCountPhysicalcB s3eZejed ddZdZRS(Rslscpu utility not availablecC std}t}xI|jdD]8}|jds%|jd}|j|dq%q%W|jtjdtt |dS(Nslscpu -ps Rt,iR( RtsetR8R9taddRRgRtFalseR(RjR>tcore_idsR@R((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRs  c C sttjddg;}tjddt}|jtjjWdQXWdQX|jsat|jsptdS(Ns glob.globRspsutil._common.openR\( R R_R`RRgRtcpu_count_physicalRR(Rjtm1tm2((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_nones "(RRRRRRR(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRs" tTestSystemCPUFrequencycB seZejedeje ddZeje ddZeje ddZeje ddZ ejedeje ddZ RS(sfails on Traviss not supportedc  s~fd}gtjjtjdd|dt9tjsRt|j t tj dtWdQXdS(Nc s.|jdrtSjd|SdS(Ns&/sys/devices/system/cpu/cpufreq/policy(R9RtappendR(R(tflagst orig_exists(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pytpath_exists_mocks sos.path.existsR]R\R( RRRR R_R`Rgtcpu_freqRRRR(RjR((RRs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_use_second_files  c sfd}gtjjztjdd|ttjtj}|sbt snt |j |j d|j |j dx@tjdt D],}|j |j d|j |j dqWWdQXWdttjttXdS(Nc s=|jdrtS|dkr/jdn|SdS(Ns/sys/devices/system/cpu/s /proc/cpuinfo(R9RRR(R(Rtos_path_exists(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRs  sos.path.existsR]gtpercpu(RRRR R_RRgRRRRtmaxtminR`(RjRRtfreq((RRs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_use_cpuinfos      ! c  sfd}ttr!dnd}tj|d|tjddtntj}|j|jd|j dkr|j|j d n|j dkr|j|j d nWdQXWdQXdS( Nc s|jdr+|jdr+tjdS|jdrV|jdrVtjdS|jdr|jdrtjdS|dkrtjd S|||SdS( Ns/scaling_cur_freqs&/sys/devices/system/cpu/cpufreq/policyt500000s/scaling_min_freqt600000s/scaling_max_freqt700000s /proc/cpuinfoscpu MHz : 500(RR9RRRT(RURVRW(RZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[s     s builtins.opens__builtin__.openR]sos.path.existsRg@@gg@g@( R^RR R_R`RgRRtcurrentRR(RjR[RaR((RZs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_datas c ssfd}ttr!dnd}tj|d|1tjddttjdddtjd t}|j|d jd |d j d kr|j|d j d n|d j d kr|j|d j dn|j|djd|dj d kr0|j|dj dn|dj d kr]|j|dj dnWdQXWdQXWdQXdS(Nc  s5|}|jdr1|jdr1tjdS|jdr\|jdr\tjdS|jdr|jdrtjdS|jdr|jdrtjd S|jdr|jdrtjd S|jdr|jdrtjd S|d kr!tjd S|||SdS(Ns/scaling_cur_freqs'/sys/devices/system/cpu/cpufreq/policy0t100000s/scaling_min_freqt200000s/scaling_max_freqt300000s'/sys/devices/system/cpu/cpufreq/policy1t400000RRs /proc/cpuinfoscpu MHz : 100 cpu MHz : 400(RR9RRRT(RURVRWtn(RZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[ s,        s builtins.opens__builtin__.openR]sos.path.existsRs!psutil._pslinux.cpu_count_logicaliRigY@ggi@gr@igy@g@@g@( R^RR R_R`RgRRRRR(RjR[RaR((RZs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_multi_cpu s$  c sfd}ttr!dnd}tj|d|\tjddt@tjddd$tj}|j|jd WdQXWdQXWdQXfd }ttrdnd}tj|d|4tjddt|j t tjWdQXWdQXdS( Nc sm|jdr$ttjdnE|jdr@tjdS|dkrYtjdS|||SdS(Ns/scaling_cur_freqR-s/cpuinfo_cur_freqR s /proc/cpuinfoscpu MHz : 200(RRRRRRRT(RURVRW(RZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[;s   s builtins.opens__builtin__.openR]sos.path.existsRs!psutil._pslinux.cpu_count_logicaliic s}|jdr$ttjdnU|jdrHttjdn1|dkrittjdn|||SdS(Ns/scaling_cur_freqR-s/cpuinfo_cur_freqs /proc/cpuinfo(RRRR(RURVRW(RZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[Qs ( R^RR R_R`RgRRRt assertRaisestNotImplementedError(RjR[RaR((RZs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt%test_emulate_no_scaling_cur_freq_file7s    % ( RRRRRRRRRR R(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRs.tTestSystemCPUStatscB s>eZejeddZejeddZRS(sfails on TraviscC s5td}tjj}|j||dddS(Nscontext switchesRni(RLRgt cpu_statst ctx_switchesRi(RjRkRl((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_ctx_switcheses cC s5td}tjj}|j||dddS(Nt interruptsRni(RLRgRRRi(RjRkRl((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_interruptsks (RRRRRRR(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRbst TestLoadAvgcB s$eZeje ddZRS(s not supportedcC stj}tdd}|jj}WdQX|jt|d|ddd|jt|d|ddd|jt|d|ddddS(Ns /proc/loadavgtriRnii(Rgt getloadavgR^RR8Ritfloat(RjRlRt proc_value((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_getloadavgus  $$(RRRRRR(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRrstTestSystemNetIfAddrscB seZdZRS(cC sxtjjD]y\}}xj|D]b}|jtjkrZ|j|jt|q&|jtj kr&|j|jt |q&q&WqWdS(N( Rgt net_if_addrstitemstfamilytAF_LINKRtaddressR3RRR*(RjRUtaddrstaddr((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_ipss  (RRR%(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRstTestSystemNetIfStatscB seZdZRS(cC sxxqtjjD]]\}}ytd|}Wntk rFqX|j|jttj d|dqWdS(Ns ifconfig %ss(?i)MTU[: ](\d+)i( Rgt net_if_statsRRt RuntimeErrorRtmtuR<RR(RjRUtstatsR>((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_against_ifconfigs  (RRR+(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR&stTestSystemNetIOCounterscB seZedZRS(c sWfd}tjdtdt}x)|jD]\}y|}Wntk rfq4nX|j|j|ddd|j|j|ddd|j|j |d dd|j|j |d dd|j|j |d dd |j|j |d dd |j|j |ddd |j|j|ddd q4WdS(Nc si}td}ttjd|d|d(RU(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pytifconfigs    tpernictnowrapR3RniiR4R-R.R/i R0R1R2ii(Rgtnet_io_countersR`RRR(RiR3R4R-R.R/R0R1R2(RjR6tnioR*t ifconfig_ret((RUs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR+s. (RRRR+(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR,stTestSystemNetConnectionscB sDeZejddeejddedZdZRS(s psutil._pslinux.socket.inet_ntopR]spsutil._pslinux.supports_ipv6RcC sdy9tjtjtj}|j|j|jdWntjk rOnXtjdddS(Ns::1itkindtinet6(s::1i( RtAF_INET6t SOCK_STREAMt addCleanuptclosetbindterrorRgtnet_connections(Rjt supports_ipv6t inet_ntopR)((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_ipv6_unsupportedscC sDtdtjd&}tjdd|js:tWdQXdS(Ns/proc/net/unixs. 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=tunix(RcRRRgRERR(RjRb((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_unixs (RRR R_R=RRHRJ(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR<s! tTestSystemDiskPartitionscB sHeZejeed dedZdZdZ RS(tstatvfssos.statvfs() not availablecC sd}xtjdtD]}tj|j}||j\}}}}|j|j|t|j|dkr|j d|j|fnt|j |d kr|j d|j |fqqWdS( NcS std|j}|jd}|jd|jd}|jd \}}}}|dkrrd}nt|t|t|}}}||||fS(Nsdf -P -B 1 "%s"s iitnoneR-(RRJR8tpopR<(RR>R?R@tdevRBRCR7((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pytdf s   &talli ispsutil=%s, df=%si(ii(i( Rgtdisk_partitionsRt disk_usaget mountpointRRBRR7tfailRC(RjRPtparttusageRORBRCR7((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_against_dfs c C stdd}|j}WdQXd|krjxtjD]}|jdkr=Pq=q=W|jdntjtd}t j dd|dt u}t j d ddgT}tj}|j st |j st |st |j|d jdWdQXWdQXdS(Ns/proc/filesystemsRtzfsscouldn't find any ZFS partitions nodev zfs spsutil._common.openRR\s$psutil._pslinux.cext.disk_partitionss /dev/sdb3t/trwi(s /dev/sdb3RZRYR[(R^RRgRRtfstypeRURRRSRR R_R`RRR(RjRRRVRRRR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt test_zfs_fss$    c C s}zltjdddQ}|jt}tjWdQX|jsLt|j|j j t j WdQXWddt_ XdS(Nsos.path.realpathRs /non/existents/proc( R R_RtOSErrorRgRRRRRt exceptionRRt PROCFS_PATH(RjRbtcm((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_realpath_fail6s  #( RRRRthasattrRRRXR]Rb(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRKs tTestSystemDiskIoCounterscB sGeZdZdZdZdZdZdZdZRS(c C stddtjddttjdt}|j|jd|j|j d|j|j dt |j|j d |j|j d |j|jd |j|jd t |j|jd |j|jdWdQXWdQXdS(Ns/proc/diskstatss+ 3 0 1 hda 2 3 4 5 6 7 8 9 10 11 12s!psutil._pslinux.is_storage_deviceRR8iiiiiiiii (RcR R_R`Rgtdisk_io_countersRRt read_counttread_merged_countt read_bytest SECTOR_SIZEt read_timet write_counttwrite_merged_countt write_bytest write_timet busy_time(RjR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_kernel_2_4Fs   c C stddtjddttjdt}|j|jd|j|j d|j|j dt |j|j d |j|j d |j|jd |j|jd t |j|jd |j|jdWdQXWdQXdS(Ns/proc/diskstatss' 3 0 hda 1 2 3 4 5 6 7 8 9 10 11s!psutil._pslinux.is_storage_deviceRR8iiiiiiiii (RcR R_R`RgReRRRfRgRhRiRjRkRlRmRnRo(RjR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_kernel_2_6_fullYs   c C stddtjddttjdt}|j|jd|j|j dt |j|j d|j|j d t |j|j d |j|jd |j|jd |j|jd |j|jd WdQXWdQXdS( Ns/proc/diskstatss 3 1 hda 1 2 3 4s!psutil._pslinux.is_storage_deviceRR8iiiii(RcR R_R`RgReRRRfRhRiRkRmRgRjRlRnRo(RjR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_kernel_2_6_limitedms   c C stdtjdtjddttjdtdt}|j t |d|j |dj d |j |d j d |j |dj d |j |d j d WdQXWdQXdS( Ns/proc/diskstatss 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 s!psutil._pslinux.is_storage_deviceRtperdiskR8itnvme0n1it nvme0n1p1i( RcRRR R_RRgReR`RRRfRk(RjR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_include_partitionss   cC stdtjdFtjddt*tjdtdt}|j|WdQXWdQXd}tdtjdetjddt d |Ctjdtdt}|j |j d |j |j d WdQXWdQXdS( Ns/proc/diskstatss 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 s!psutil._pslinux.is_storage_deviceRRsR8cS s |dkS(NRt((RU((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pytis_storage_devicesR\R]ii( RcRRR R_RRgReRR`RRfRk(RjRRw((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_exclude_partitionss$      cC sod}tjdt}tjddtd|tjdt}WdQX|jt|t|dS(NcS s|dkrtStS(Ns/proc/diskstats(RR`(R((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRs Rsspsutil._pslinux.os.path.existsR\R](RgReR`R R_RR(RjRtwprocfstwsysfs((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_use_sysfss   cC sBd}tjddtd||jttjWdQXdS(NcS stS(N(R(R((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRsspsutil._pslinux.os.path.existsR\R](R R_R`RRRgRe(RjR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_not_impls  ( RRRpRqRrRvRxR{R|(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRdCs      tTestMisccB sPeZdZdZdZdZdZdZdZdZ RS(cC s8td}tj}|jt|t|dS(Ns boot time(RLRgt boot_timeRR<(RjRkRl((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_boot_times  c  stj}ttjj|dd.}|jd|jd|jdWdQXz6tfd}tr~dnd}tj |d |t t |j t t j|j t t jd t|j t t j|j t t jd t|j t t j|j t t jd t|t _|jt jd |jtt jd t jd t}|jt|d t jd t}|jttt|d ttjj|dd.}|jd |jd |jdWdQX|jt jd |jtt jd td |jtt jd |jtttt jd td WdQXWdtj|t t X|jt jddS(NRKRscpu 0 0 0 0 0 0 0 0 0 0 scpu0 0 0 0 0 0 0 0 0 0 0 scpu1 0 0 0 0 0 0 0 0 0 0 c s4|jdr$ttjdn|||S(Ns/procsrejecting access for test(R9RRR(RURVRW(RZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[ss builtins.opens__builtin__.openR]Riscpu 1 0 0 0 0 0 0 0 0 0 scpu0 1 0 0 0 0 0 0 0 0 0 scpu1 1 0 0 0 0 0 0 0 0 0 s/proc(ttempfiletmkdtempR^RRR0twriteRR R_RRgRRRR`t cpu_percenttcpu_times_percentR`RtsumROtassertNotEqualtshutiltrmtree(Rjt my_procfsRR[Ratper_cpu_percenttper_cpu_times_percent((RZs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_no_procfs_on_importsL !    !  /  c C stdtjdjJ}tj|js:ttjdttj tj dtWdQXtdtjdj}tj}|jsttjdt}tj }tj dt}|j |d|j t |d|j t |d|j t |d|j t t t |d|j t t t |d|j |jd|j |jdWdQXdS(Ns /proc/stats 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 Rs 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 igY@(RcRRRRgRRRR`RRRRORRtuser(RjRbRtcpu_percent_percpuRtcpu_times_percent_percpu((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_cpu_steal_decreases4    cC sGtjddt,}|jttjj|js=t WdQXdS(Nspsutil._common.openR\( R R_R`RR(RgRR~RR(RjRb((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_boot_time_mocked=s  c C s!tjddddddtdfg3}|jtjdjd |jsYtWdQXtjddddd dtdfg3}|jtjdjd |jstWdQXtjddddd dtdfg3}|jtjdjd |jstWdQXdS( Nspsutil._pslinux.cext.usersRt giampaolospts/2s:0ghAiit localhosts:0.0tfoo( R R_R`RRgtusersthostRR(RjRb((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_users_mockedDs      cC stj}z|t_|jttj|jttj|jttjdt|jttj |jttj |jttj |jttj |jttj |jtjtjWddt_tj|XdS(NRs/proc(RRRgR`RRRhRR`R~RER9R'RRt NoSuchProcesstProcessRtrmdir(Rjttdir((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_procfs_pathXs   cC st}|jzntj}|jdj}tj| sQt|tj|}|j|j |tj Wd|j XdS(Ni( RtstartRgRtthreadstidt pid_existsRtas_dictRtpidststop(Rjtttpttidtpt((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_issue_687ks    cC sFtdd1}tjtjs-t|js<tWdQXdS(Ns/proc/%s/statusR-(RcRgRRtgetpidRR(RjRb((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_pid_exists_no_proc_status}s( RRRRRRRRRR(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR}s  < )    s no batterytTestSensorsBatterycB seZejed ddZejed ddZdZdZdZ dZ dZ d Z d Z d Zd ZRS( tacpisacpi utility not availablecC s`td}t|jddjjdd}tjj}|j||dddS(Nsacpi -bRit%R-Rn( RR<R8RJtreplaceRgtsensors_batterytpercentRi(RjR>t acpi_valueRl((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt test_percents +cC svtd}d|jkr+tjdSd|kr@t}nd|jddk}|jtjj |dS(Nsacpi -btunknownsacpi output not reliablesdischarging at zero ratetChargings i( RtlowerRRR`R8RRgRt power_plugged(RjR>tplugged((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_power_pluggeds    c sfd}ttr!dnd}tj|d|K}|jtjjt|jtjj tj |j st WdQXdS(Nc s?|jds|jdr+tjdS|||SdS(Ns AC0/onlines AC/onlinet1(RRRRT(RURVRW(RZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[s s builtins.opens__builtin__.openR]( R^RR R_RRgRRR`tsecslefttPOWER_TIME_UNLIMITEDRR(RjR[RaRb((RZs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_power_pluggedsc sqfd}ttr!dnd}tj|d|/}|jtjjt|j sgt WdQXdS(Nc si|jds|jdr3ttjdn2|jdrUtjtdS|||SdS(Ns AC0/onlines AC/onlineR-s/statustcharging(RRRRRRRSR(RURVRW(RZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[s s builtins.opens__builtin__.openR]( R^RR R_RRgRRR`RR(RjR[RaRb((RZs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_power_plugged_2s c sqfd}ttr!dnd}tj|d|/}|jtjjt|j sgt WdQXdS(Nc s?|jds|jdr+tjdS|||SdS(Ns AC0/onlines AC/onlinet0(RRRRT(RURVRW(RZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[s s builtins.opens__builtin__.openR]( R^RR R_RRgRRRRR(RjR[RaRb((RZs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_power_not_pluggeds c sqfd}ttr!dnd}tj|d|/}|jtjjt|j sgt WdQXdS(Nc si|jds|jdr3ttjdn2|jdrUtjtdS|||SdS(Ns AC0/onlines AC/onlineR-s/statust discharging(RRRRRRRSR(RURVRW(RZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[s s builtins.opens__builtin__.openR]( R^RR R_RRgRRRRR(RjR[RaRb((RZs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt test_emulate_power_not_plugged_2s c snfd}ttr!dnd}tj|d|,}|jtjj|jsdt WdQXdS(Nc sc|jds|jdr3ttjdn,|jdrOtjdS|||SdS(Ns"/sys/class/power_supply/AC0/onlines!/sys/class/power_supply/AC/onlineR-s#/sys/class/power_supply/BAT0/statuss???(R9RRRRRRT(RURVRW(RZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[s  s builtins.opens__builtin__.openR]( R^RR R_RRgRRRR(RjR[RaRb((RZs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_power_undetermineds  c C s[tdttjd:tdttjd|jtjWdQXWdQXdS(Ns'/sys/class/power_supply/BAT0/energy_nowR-s'/sys/class/power_supply/BAT0/charge_now(ReRRRRRgR(Rj((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_no_base_filesscC sDtdd/}|jtjjd|js:tWdQXdS(Ns(/sys/class/power_supply/BAT0/energy_fullRi(RcRRgRRRR(RjRb((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_energy_full_0scC swtdttjdVtdttjd4tdd|jtjjdWdQXWdQXWdQXdS(Ns(/sys/class/power_supply/BAT0/energy_fullR-s(/sys/class/power_supply/BAT0/charge_fulls%/sys/class/power_supply/BAT0/capacityt88iX( ReRRRRcRRgRR(Rj((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt"test_emulate_energy_full_not_avails cC stdttjd_tdttjd=tdttjd|jtjjWdQXWdQXWdQXdS(Ns!/sys/class/power_supply/AC/onlineR-s"/sys/class/power_supply/AC0/onlines#/sys/class/power_supply/BAT0/status(ReRRRRRgRR(Rj((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_no_powers(RRRRRRRRRRRRRRRR(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRs""       tTestSensorsTemperaturescB s5eZejeddZdZdZRS(sunreliable on TRAVISc  sfd}ttr!dnd}tj|d|d}tjdtI}|jtj i|j syt |j dt |djWdQXWdQXdS(Nc s\|jdr$ttjdn4|jdrHttjdn|||SdS(Nt_inputR-ttemp(RR^RtEIO(RURVRW(RZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[%s s builtins.opens__builtin__.openR]R~tignoringi(R^RR R_RRR`RRgtsensors_temperaturesRRRRR(RjR[RaRbR((RZs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_eio_error#sc  sfd}ttr!dnd}tj|d|tjdddgetjdd }|j|jd |j|jd |j|j d |j|j d WdQXWdQXdS(Nc s|jdr"tjtdS|jdrDtjtdS|jdr`tjdS|jdr|tjdS|jd rtjd S|||SdS( Ns/nameRUs /temp1_labeltlabels /temp1_inputt30000s /temp1_maxt40000s /temp1_critt50000(RRRRSRRT(RURVRW(RZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[6s   s builtins.opens__builtin__.openR]s glob.globRs/sys/class/hwmon/hwmon0/temp1RUiRg>@gD@gI@( R^RR R_RgRRRRthightcritical(RjR[RaR((RZs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_class_hwmon5s  c  sfd}d}ttr*dnd}tj|d|tjddtd|etjdd }|j|jd |j|j d |j|j d |j|j d WdQXWdQXdS( Nc s|jdrtjdS|jdr8tjdS|jdrZtjtdS|jdr|tjtdS|||SdS( Nt0_tempRRRt0_typeRttypeRU(RRRRTRSR(RURVRW(RZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[Qs  cS sM|dkrgS|dkr gS|dkr3dgS|dkrIddgSdS(Ns/sys/class/hwmon/hwmon*/temp*_*s&/sys/class/hwmon/hwmon*/device/temp*_*s /sys/class/thermal/thermal_zone*s /sys/class/thermal/thermal_zone0s,/sys/class/thermal/thermal_zone0/trip_point*s2/sys/class/thermal/thermal_zone1/trip_point_0_types2/sys/class/thermal/thermal_zone1/trip_point_0_temp((R((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt glob_mock]s    s builtins.opens__builtin__.openR]s glob.globR\RUiR-g>@gI@( R^RR R_R`RgRRRRRR(RjR[RRaR((RZs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_emulate_class_thermalPs (RRRRRRRR(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR s tTestSensorsFanscB seZdZRS(c  sfd}ttr!dnd}tj|d|^tjdddg?tjdd }|j|jd |j|jd WdQXWdQXdS( Nc sz|jdr"tjtdS|jdrDtjtdS|jdrftjtdS|||SdS(Ns/nameRUs /fan1_labelRs /fan1_inputt2000(RRRRSR(RURVRW(RZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[wss builtins.opens__builtin__.openR]s glob.globRs/sys/class/hwmon/hwmon2/fan1RUiRi( R^RR R_Rgt sensors_fansRRR(RjR[Ratfan((RZs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRvs   (RRR(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRsst TestProcesscB seZdZeZdZdZejeddZ dZ dZ dZ dZ d Zd Zd Zd Zd Zeje ddZdZdZdZRS(cC sttdS(N(RR(Rj((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pytsetUpscC s'tjdt}t|}|jttddttj|j }t j d|j }|j dt}|j|jtg|D]}|j|j^qdd|j|jtg|D]}|j^qdd|j|jtg|D]}|j^qdddS(Nsk import time with open("%s", "w") as f: time.sleep(10) cS s tjdS(NRM(RR(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pytss'%s' not in retg?tgroupedRni(RRRR RARRRgRtpidttimetsleeptmemory_full_infot memory_mapsRRitussRt private_dirtyt private_cleantpssR(RjtsrctsprocRRtmapsR+((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_memory_full_infos      //cC stdtjtjdjg}tj}|j}|j sRt |j |j d |j |j d |j |jd WdQXdS(Ns/proc/%s/smapss 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 iiiiiii iili i<(RcRRRRRRgRRRRRRRR(RjRbRR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_memory_full_info_mockeds   sunreliable on PYPYcC sd}ttd|j|jdWdQXttd|j|jdWdQXttd|j|jdWdQXttd|j|jdWdQXttd|j|jdWdQXttd|j|jdWdQXtrttttd|j|jdWdQXttttd |j|jdWdQXndS( NcS stj}tjd}xVtrtxI|jD];}|jtjjtkrW|Stj|kr2Pq2q2WqWt ddS(Nistimeout looking for test file( RgRRR`t open_filesRRtabspathRR((Rt giveup_attfile((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt get_test_files   RRRsr+sw+sa+R+sx+(R^RRtmodeRR(RjR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_open_files_modes(   c C stj}|j}tjt|jdt|tjddt t j d/}|j}| s|t |j st WdQXtjddt t jd,}|j|jg|j st WdQXWdQXdS(Nslen(ret) != %ispsutil._pslinux.os.readlinkR]R-(RgRRRtNamedTemporaryFileRRR R_R^RRRRtEINVALR(RjRtfilesRb((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_open_files_file_gones       c C stj}|j}tjt|jdt|trKdnd}tj |dt t j d/}|j}| st |jst WdQXWdQXdS(Nslen(ret) != %is builtins.opens__builtin__.openR]R-(RgRRRRRRRR R_RRRRR(RjRRRaRb((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_open_files_fd_gones      cC sVtjddi;}|jtjjtjj|j sLt WdQXdS(Ns)psutil._pslinux._psposix.get_terminal_mapR( R R_RRgRRRRtterminalRR(RjRb((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_terminal_mockeds  %c C stj}tjtd}tjdd|dt2}|j|j ddg|j sjt WdQXtjtd}tjdd|dt5}|j|j dddg|j st WdQXdS( Ntfoobarspsutil._common.openRR\Rtbart foobarR-( RgRRRRSRR R_R`RtcmdlineRR(RjRRRb((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_cmdline_mocked(s   c C stj}tjtd}tjdd|dt2}|j|j ddg|j sjt WdQXtjtd}tjdd|dt5}|j|j dddg|j st WdQXdS( Nsfoo bar spsutil._common.openRR\RRs foo bar R-( RgRRRRSRR R_R`RRRR(RjRRRb((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_cmdline_spaces_mocked6s   cC sXtjddd=|jtjjd|jtjjdWdQXdS(Nspsutil._pslinux.os.readlinkRs/home/foo (deleted)s /home/foo(R R_RRgRtexetcwd(Rj((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt!test_readlink_path_deleted_mockedDs  c sfd}ttr!dnd}tj|d|8}tjj}|js`t|j |gWdQXfd}tj|d|!|j tj tjjWdQXdS(Nc sB|jdtjr.ttjdn|||SdS(Ns /proc/%s/taskR-(R9RRRRR(RURVRW(RZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[Oss builtins.opens__builtin__.openR]c sB|jdtjr.ttjdn|||SdS(Ns /proc/%s/taskR-(R9RRRRtEPERM(RURVRW(RZ(s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR[^s( R^RR R_RgRRRRRRt AccessDenied(RjR[RaRbR((RZs=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_threads_mockedJscC stjddttjd}tjddtjdd}tjj}|j sit |j sxt |j |dtjddt !|j tjtjjWdQXWdQXWdQXdS(Nspsutil._pslinux.readlinkR]R-spsutil.Process.cmdlineispsutil._pslinux.os.path.lexistsR(R R_R^RRRgR RRRRRRRt ZombieProcess(RjRRR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_exe_mockedgs    c C stdtjttjd]}tj}|jt}|j WdQX|j |j jtj|j s~t WdQXdS(Ns/proc/%s/smapsR-(ReRRRRRRgRRRRR_RR(RjRbRterr((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_issue_1014|s  s not supportedc C stjddttjdW}tj}|j|jtj }|j tj WdQX|j stt WdQX|j|jj|j|j|jj|jdS(Ns"psutil._pslinux.cext.linux_prlimitR]R-(R R_R^RtENOSYSRgRRURR trlimitt RLIMIT_NOFILERRRR_R(RjRbRRd((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_rlimit_zombies   c C stjddttjdQ}tj}|j|jtj }|j WdQX|j snt WdQX|j |jj|j|j |jj|jdS(Nspsutil._pslinux.os.readlinkR]R-(R R_R^RRRgRRURR RRRRR_R(RjRbRRd((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_cwd_zombies   c'C sddlm}dddddddddddddddd d ddddd ddddddddddddddddd g'}d j|j}td tj|tj}|j |j d|j |j tj |j |j d|j |jd|tj|j}|j |jd||j |jd||j |jd||j |jd||j |jdWdQXdS(Ni(t CLOCK_TICKSRs(cat)tZRt2t3t4t5t6RIs /proc/%s/stattcatiiiiii(RRR0RRcRRRgRRRUtstatust STATUS_ZOMBIEtppidt create_timeR~RRtsystemt children_usertchildren_systemtcpu_num(RjRRVRXRtcpu((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_stat_file_parsingsl   c C s9tdtjtjdj tj}|j|j j d|j|j j d|j|j d|j }|j|jd|j|jd|j|jd|j}|j|jd |j|jd |j|jd |j|jjttd d WdQXdS(Ns/proc/%s/statuss 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: 13i i iBiiiiiiii(RcRRRRRRgRRtnum_ctx_switchest voluntaryt involuntaryt num_threadstuidstrealt effectivetsavedtgidst_proct_get_eligible_cpustlisttrange(RjRR+R/((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_status_file_parsings"    (RRRttearDownRRRRR RRRRRRRR R RR RRR&R4(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRs$   #$          ;tTestProcessAgainstStatuscB seZdZedZdZdZdZdZdZ dZ dZ e d Z d Zd ZRS( s /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. cC stj|_dS(N(RgRtproc(tcls((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt setUpClasssc C stjjd|jj|}xb|D]Z}|j}|j|r&|jdd}yt|SWqt k r||SXq&q&Wt d|WdQXdS(Ns/proc/%s/statuss is can't find %r( Rgt _psplatformt open_textR7RRJR9t partitionR<R=(Rjt linestartRR@R((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pytread_status_files     cC s,|jd}|j|jj|dS(NsName:(R>RR7RU(RjR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt test_namescC sa|jd}||jdd|jd!}|jdd}|j|jj|dS(NsState:t(it)RIR(R>tfindtrfindRRR7R(RjR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt test_statuss#cC s,|jd}|j|jj|dS(NsPPid:(R>RR7R(RjR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt test_ppidscC s,|jd}|j|jj|dS(NsThreads:(R>RR7R*(RjR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_num_threadsscC sN|jd}ttt|jdd!}|j|jj|dS(NsUid:ii(R>RNROR<R8RR7R+(RjR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt test_uids#s"cC sN|jd}ttt|jdd!}|j|jj|dS(NsGid:ii(R>RNROR<R8RR7R/(RjR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt test_gids(s"cC sZ|jd}|j|jjj||jd}|j|jjj|dS(Nsvoluntary_ctxt_switches:snonvoluntary_ctxt_switches:(R>RR7R'R(R)(RjR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_num_ctx_switches-scC sr|jd}dt|krntt|jd\}}|j|jjtt ||dndS(NsCpus_allowed_list:Ri( R>RROR<R8RR7t cpu_affinityR2R3(RjRtmin_tmax_((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_cpu_affinity4s cC so|jd}tjd}|jjjWdQXdt|kr\|j sktn|jsktdS(NsCpus_allowed_list:spsutil._pslinux.per_cpu_timesR( R>R R_R7R0R1RRR(RjRRb((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_cpu_affinity_eligible_cpus;s (RRt__doc__t classmethodR9R>R?RDRERFRGRHRRIRMRN(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR6s       t TestUtilscB seZdZdZRS(cC sMtjddd2}|jtjjdd|jsCtWdQXdS(Ns os.readlinkRs foo (deleted)RR(R R_RRgR:treadlinkRR(RjRb((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt test_readlinkMscC stjjt}t|d}|jdWdQX|jtjj tdt d|jtjj tdt d|jtjj tdddddS(Ntwtsfoo tbinaryRs??tfallbackR( RRRRR^RRRgR:RRR`(RjtfnameR((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyttest_catRs""(RRRSRX(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRQJs t__main__(trun(WROt __future__RR:R RRRRRRRR&RRRRRgRtpsutil._compatRRRt psutil.testsRRRRR R R R R RRRRRRRRRRRRRtdirnamet__file__tHERER%t SIOCGIFCONFR.RiR*R3RERHRLRPtcontextmanagerRcReRtTestCaseRfRRRRRRRRR&R,R<RKRdR}RRRRR6RQRtpsutil.tests.runnerRZ(((s=/usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyts                   1]?- ARgR