
Gq]c           @   s  d  Z  d d l m Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l	 Z	 d d l
 Z
 d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d	 l m Z d d
 l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m  Z  d d l m! Z! d d l m" Z" d d l m# Z# d d l m$ Z$ d d l m% Z% d d l m& Z& d d l m' Z' d d l m( Z( d d l m) Z) d d l m* Z* e j+ j, e j+ j- e.   Z/ d Z0 d Z1 d Z2 e r}d Z3 n  d    Z4 d!   Z5 d"   Z6 d#   Z7 d$   Z8 d%   Z9 e j: d&    Z; e j: d'    Z< e) j= e d(  d) e) j> f d*     Y Z? e) j= e d(  d+ e) j> f d,     Y Z@ e) j= e d(  d- e) j> f d.     Y ZA e) j= e d(  d/ e) j> f d0     Y ZB e) j= e d(  d1 e) j> f d2     Y ZC e) j= e d(  d3 e) j> f d4     Y ZD e) j= e d(  d5 e) j> f d6     Y ZE e) j= e d(  d7 e) j> f d8     Y ZF e) j= e d(  d9 e) j> f d:     Y ZG e) j= e d(  d; e) j> f d<     Y ZH e) j= e d(  d= e) j> f d>     Y ZI e) j= e d(  d? e) j> f d@     Y ZJ e) j= e d(  dA e) j> f dB     Y ZK e) j= e d(  dC e) j> f dD     Y ZL e) j= e d(  dE e) j> f dF     Y ZM e) j= e d(  e) j= e dG  dH e) j> f dI     Y  ZN e) j= e d(  dJ e) j> f dK     Y ZO e) j= e d(  dL e) j> f dM     Y ZP e) j= e d(  dN e) j> f dO     Y ZQ e) j= e d(  dP e) j> f dQ     Y ZR e) j= e d(  dR e) j> f dS     Y ZS eT dT k rd dU lU mV ZV eV e.  n  d S(V   s   Linux specific tests.i(   t   divisionN(   t   LINUX(   t
   basestring(   t   PY3(   t   u(   t
   call_until(   t   HAS_BATTERY(   t   HAS_CPU_FREQ(   t   HAS_GETLOADAVG(   t
   HAS_RLIMIT(   t   MEMORY_TOLERANCE(   t   mock(   t   PYPY(   t   pyrun(   t   reap_children(   t   reload_module(   t   retry_on_failure(   t   safe_rmpath(   t   sh(   t   skip_on_not_implemented(   t   TESTFN(   t
   ThreadTask(   t   TRAVIS(   t   unittest(   t   whichi  i  i'  i   c         C   s   d d  l  } |  d  }  t r. t |  d  }  n  t j t j t j  } t j |  : t j | j	 | j
   t t j d |    d d ! SWd  QXd  S(   Nii   t   asciit   256si   i   (   t   fcntlR   t   bytest   sockett   AF_INETt
   SOCK_DGRAMt
   contextlibt   closingt	   inet_ntoat   ioctlt   filenot   SIOCGIFADDRt   structt   pack(   t   ifnameR   t   s(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   get_ipv4_address@   s    
c      
   C   s   d d  l  } |  d  }  t r. t |  d  }  n  t j t j t j  } t j |   | j | j	   t
 t j d |    } t r d   } n d d  l } | j } d j g  | d d !D] } d	 | |  ^ q  d  SWd  QXd  S(
   Nii   R   R   c         S   s   |  S(   N(    (   t   x(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   ordW   s    t    i   i   s   %02x:(   R   R   R   R   R   R   R    R!   R#   R$   t   SIOCGIFHWADDRR&   R'   t   __builtin__R,   t   join(   R(   R   R)   t   infoR,   R/   t   char(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   get_mac_addressM   s    
!	c          C   s   t  d d i d d 6}  |  j d  } xi | D]a } | j d  r/ | j   \ } } } } t j d d  } | t |  t |  t |   Sq/ Wt d	 d j |    d
 S(   sQ   Parse 'free' cmd and return swap memory's s total, used and free
    values.
    s   free -bt   envs   C.UTF-8t   LANGs   
t   Swapt   frees   total used frees&   can't find 'Swap' in 'free' output:
%sN(   R   t   splitt
   startswitht   collectionst
   namedtuplet   intt
   ValueErrorR0   (   t   outt   linest   linet   _t   totalt   usedR7   t   nt(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt	   free_swap_   s    &c    	      C   s   t  d d i d d 6}  |  j d  } x} | D]u } | j d  r/ g  | j   d d !D] } t |  ^ qX \ } } } } t j d	 d
  } | | | | | |   Sq/ Wt d d j |    d S(   sS   Parse 'free' cmd and return physical memory's total, used
    and free values.
    s   free -bR4   s   C.UTF-8R5   s   
t   Memi   i   R7   s   total used free shared outputs%   can't find 'Mem' in 'free' output:
%sN(   R   R8   R9   R<   R:   R;   R=   R0   (	   R>   R?   R@   R+   RB   RC   R7   t   sharedRD   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   free_physmemn   s    8c         C   sv   t  d d i d d 6} xF | j d  D]5 } | j   } |  | k r) t | j d  d  Sq) Wt d |    d  S(	   Ns	   vmstat -sR4   s   C.UTF-8R5   s   
t    i    s    can't find %r in 'vmstat' output(   R   R8   t   stripR<   R=   (   t   statR>   R@   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   vmstat   s    c          C   s8   t  d  j   }  t t t |  j   d j d    S(   Ns   free -Vit   .(   R   RJ   t   tuplet   mapR<   R8   (   R>   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   get_free_version_info   s    c         #   sZ       f d   } t   t r' d n d } t j | d t d |  } | VWd QXd S(   s   Mock open() builtin and forces it to return a certain `content`
    on read() if the path being opened matches `for_path`.
    c            sb   |   k rN t  r> t   t  r. t j    St j    Sq^ t j    Sn  |  | |  Sd  S(   N(   R   t
   isinstanceR   t   iot   StringIOt   BytesIO(   t   namet   argst   kwargs(   t   contentt   for_patht	   orig_open(    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt	   open_mock   s    s   builtins.opens   __builtin__.opent   createt   side_effectN(   t   openR   R   t   patcht   True(   RY   RX   R[   t   patch_pointt   m(    (   RX   RY   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   mock_open_content   s
    c         #   sZ       f d   } t   t r' d n d } t j | d t d |  } | VWd QXd S(   sZ   Mock open() builtin and raises `exc` if the path being opened
    matches `for_path`.
    c            s)   |   k r    n  |  | |  Sd  S(   N(    (   RU   RV   RW   (   t   excRY   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[      s    	s   builtins.opens   __builtin__.openR\   R]   N(   R^   R   R   R_   R`   (   RY   Rd   R[   Ra   Rb   (    (   Rd   RY   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   mock_open_exception   s
    s
   LINUX onlyt   TestSystemVirtualMemoryc           B   s  e  Z d    Z e j e o' e   d k  d  e   d     Z e j e	 d  e   d     Z
 e   d    Z e j e	 d  e   d     Z e j e	 d  e   d	     Z e   d
    Z e   d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s3   t  d  d } t j   j } |  j | |  d  S(   Ns   total memoryi   (   RL   t   psutilt   virtual_memoryRB   t   assertAlmostEqual(   t   selft   vmstat_valuet   psutil_value(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt
   test_total   s    i   i   s   old free versionc      
   C   sQ   t    } | j } t j   j } |  j | | d t d d | | | j f d  S(   Nt   deltat   msgs	   %s %s 
%s(   RH   RC   Rg   Rh   Ri   R
   t   output(   Rj   R7   t
   free_valueRl   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt	   test_used   s    		s   unreliable on TRAVISc         C   s9   t  d  d } t j   j } |  j | | d t d  S(   Ns   free memoryi   Rn   (   RL   Rg   Rh   R7   Ri   R
   (   Rj   Rk   Rl   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt	   test_free   s    c         C   s9   t  d  d } t j   j } |  j | | d t d  S(   Ns   buffer memoryi   Rn   (   RL   Rg   Rh   t   buffersRi   R
   (   Rj   Rk   Rl   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_buffers   s    c         C   s9   t  d  d } t j   j } |  j | | d t d  S(   Ns   active memoryi   Rn   (   RL   Rg   Rh   t   activeRi   R
   (   Rj   Rk   Rl   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_active   s    c         C   s9   t  d  d } t j   j } |  j | | d t d  S(   Ns   inactive memoryi   Rn   (   RL   Rg   Rh   t   inactiveRi   R
   (   Rj   Rk   Rl   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_inactive   s    c      
   C   so   t    } | j } | d k r0 t j d   n  t j   j } |  j | | d t d d | | | j f d  S(   Ni    s%   free does not support 'shared' columnRn   Ro   s	   %s %s 
%s(	   RH   RG   R   t   SkipTestRg   Rh   Ri   R
   Rp   (   Rj   R7   Rq   Rl   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_shared   s    		c      
   C   s   t  d  } | j d  } d | d k r= t j d   nR t | d j   d  } t j   j } |  j | | d t	 d	 d
 | | | f d  S(   Ns   free -bs   
t	   availablei    s(   free does not support 'available' columni   iRn   Ro   s	   %s %s 
%s(
   R   R8   R   Rz   R<   Rg   Rh   R|   Ri   R
   (   Rj   R>   R?   Rq   Rl   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_available  s    c         C   s  t  d t j d  j    } t j d t  } t j d  t j	   } | j
 s^ t  |  j t |  d  | d } | j j d  s t  |  j d t | j   |  j d	 t | j   |  j d
 t | j   |  j d t | j   |  j d t | j   |  j d t | j   |  j d t | j   |  j | j d  |  j | j d  |  j | j d  |  j | j d  |  j | j d  |  j | j d  |  j | j d  Wd  QXWd  QXd  S(   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
                t   recordt   alwaysi   i    s   psutil/_pslinux.pys#   memory stats couldn't be determinedt   cachedRG   Rv   Rx   Rt   R|   (   Rc   t   textwrapt   dedentt   encodet   warningst   catch_warningsR`   t   simplefilterRg   Rh   t   calledt   AssertionErrort   assertEqualt   lent   filenamet   endswitht   assertInt   strt   messageR   Rv   Rx   RG   Rt   R|   t   slab(   Rj   Rb   t   wst   rett   w(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_warnings_on_misses  s4    	
c   
   	   C   s   d d l  m } d d l  m } i  } | d  @ } x6 | D]. } | j   } t | d  d | | d <q< WWd  QX| |  } d | k r | d } t | |  | d	 }	 |  j |	 d
  n  d  S(   Ni(   t   calculate_avail_vmem(   t   open_binarys   /proc/meminfoi   i   i    s   MemAvailable:id   i
   (   t   psutil._pslinuxR   R   R8   R<   t   abst
   assertLess(
   Rj   R   R   t   memst   fR@   t   fieldst   at   bt   diff_percent(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_avail_old_percent:  s    &
c      	   C   s   t  d t j d  j    s } t j d t   } t j   } Wd  QX| j	 sW t
  |  j | j d  | d } |  j d t | j   Wd  QXd  S(	   Ns   /proc/meminfosL                  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
                R~   iSd i   i    s,   inactive memory stats couldn't be determinedI  N   (   Rc   R   R   R   R   R   R`   Rg   Rh   R   R   R   R|   R   R   R   (   Rj   Rb   R   R   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt    test_avail_old_comes_from_kernelL  s    
c      
   C   s   t  d t j d  j    w } t j d t   } t j   } Wd  QX| j	 sW t
  |  j | j d	 d
  | d } |  j d t | j   Wd  QXd  S(   Ns   /proc/meminfos                      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
                    R~   id i   iI i    s,   inactive memory stats couldn't be determinedi }I &   (   Rc   R   R   R   R   R   R`   Rg   Rh   R   R   R   R|   R   R   R   (   Rj   Rb   R   R   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_avail_old_missing_fieldsh  s    

c         C   s   t  d t j d  j     t d t t j d   f t j	 d t
  M } t j   } |  j | j d d  | d	 } |  j d
 t | j   Wd  QXWd  QXWd  QXd  S(   Ns   /proc/meminfosT                      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
                    s   /proc/zoneinfos   no such file or directoryR~   id i   iI i    s,   inactive memory stats couldn't be determinedi }I &   (   Rc   R   R   R   Re   t   IOErrort   errnot   ENOENTR   R   R`   Rg   Rh   R   R|   R   R   R   (   Rj   R   R   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_avail_old_missing_zoneinfo  s    
c            s    f d   } t    t r! d n d } t j | d t d |  } t j   } | j s` t  |  j	 | j
 d  |  j	 | j d  |  j	 | j d  |  j	 | j d  |  j	 | j d  |  j	 | j d  |  j	 | j d  |  j	 | j d  |  j	 | j d  Wd  QXd  S(   Nc            s<   |  d k r( t  j t j d  j    S  |  | |  Sd  S(   Ns   /proc/meminfos=	                      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
                    (   RR   RT   R   R   R   (   RU   RV   RW   (   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[     s    1s   builtins.opens   __builtin__.openR\   R]   id   i   i   i   i   i   i   i   i   i   i   i  i   i   i   i p  i T  i   i    i X  i   (   R^   R   R   R_   R`   Rg   Rh   R   R   R   RB   R7   Rt   R   RG   Rv   Rx   R   R|   (   Rj   R[   Ra   Rb   t   mem(    (   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_virtual_memory_mocked  s    7(   i   i   i   (   t   __name__t
   __module__Rm   R   t   skipIfR   RP   R   Rr   R   Rs   Ru   Rw   Ry   R{   R}   R   R   R   R   R   R   (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyRf      s&   			'				t   TestSystemSwapMemoryc           B   sh   e  Z e d     Z d   Z e   d    Z e   d    Z d   Z d   Z	 d   Z
 d   Z RS(   c          C   s7   t  d   }  |  j   } Wd QXd | k o6 d | k S(   s3   Return True if /proc/meminfo provides swap metrics.s   /proc/meminfoNs
   SwapTotal:s	   SwapFree:(   R^   t   read(   R   t   data(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   meminfo_has_swap_info  s    c         C   s1   t    j } t j   j } |  j | | d t S(   NRn   (   RE   RB   Rg   t   swap_memoryRi   R
   (   Rj   Rq   Rl   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyRm     s    c         C   s1   t    j } t j   j } |  j | | d t S(   NRn   (   RE   RC   Rg   R   Ri   R
   (   Rj   Rq   Rl   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyRr     s    c         C   s1   t    j } t j   j } |  j | | d t S(   NRn   (   RE   R7   Rg   R   Ri   R
   (   Rj   Rq   Rl   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyRs     s    c         C   s   t  j d d t  } t j d t   } t j d  t j   } | j sU t	  |  j
 t |  d  | d } | j j d  s t	  |  j d t | j   |  j
 | j d  |  j
 | j d  Wd  QXWd  QXd  S(	   Ns   psutil._common.openR\   R~   R   i   i    s   psutil/_pslinux.pys9   'sin' and 'sout' swap memory stats couldn't be determined(   R   R_   R`   R   R   R   Rg   R   R   R   R   R   R   R   R   R   R   t   sint   sout(   Rj   Rb   R   R   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_missing_sin_sout  s    
c         C   s   t  d t t j d    } t j d t   } t j d  t j	   } | j
 s[ t  |  j t |  d  | d } | j j d  s t  |  j d t | j   |  j | j d  |  j | j d  Wd  QXWd  QXd  S(	   Ns   /proc/vmstats   no such file or directoryR~   R   i   i    s   psutil/_pslinux.pysK   'sin' and 'sout' swap memory stats couldn't be determined and were set to 0(   Re   R   R   R   R   R   R`   R   Rg   R   R   R   R   R   R   R   R   R   R   R   R   (   Rj   Rb   R   R   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_no_vmstat_mocked  s    
c         C   s   |  j    s t j d  St j d   } t j   } Wd  QX| j sM t  d d  l	 j
 } | j   \ } } } } } } } | | 9} | | 9} |  j | j |  |  j | j | d t d  S(   Ns!   /proc/meminfo has no swap metricss"   psutil._pslinux.cext.linux_sysinfoiRn   (   R   R   t   skipR   R_   Rg   R   R   R   t   psutil._psutil_linuxt   _psutil_linuxt   linux_sysinfoR   RB   Ri   R7   R
   (   Rj   Rb   t   swapt   cextRA   RB   R7   t   unit_multiplier(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_meminfo_against_sysinfo/  s    !

c         C   s5   t  d d    } t j   | j s+ t  Wd  QXd  S(   Ns   /proc/meminfoR-   (   Rc   Rg   R   R   R   (   Rj   Rb   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt#   test_emulate_meminfo_has_no_metrics?  s    
(   R   R   t   staticmethodR   Rm   R   Rr   Rs   R   R   R   R   (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR     s   				t   TestSystemCPUTimesc           B   s#   e  Z e j e d   d    Z RS(   s   unknown failure on travisc         C   s   t  j   j } t j d t j   d  d } t t t	 | j
 d    } | d k rl |  j d |  n |  j d |  | d k r |  j d	 |  n |  j d	 |  | d k r |  j d |  n |  j d |  d  S(   Ns   \d+\.\d+\.\d+i   i    RM   i   i   t   steali   t   guesti   t
   guest_nice(   i   i   i   (   i   i   i   (   i   i   i    (   Rg   t	   cpu_timest   _fieldst   ret   findallt   ost   unameRN   RO   R<   R8   R   t   assertNotIn(   Rj   R   t
   kernel_vert   kernel_ver_info(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_fieldsP  s     (   R   R   R   R   R   R   (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR   M  s   t   TestSystemCPUCountLogicalc           B   s   e  Z e j e j j d   d  d    Z e j e j j d  d  d    Z e j e	 d  d  d    Z
 e j e	 d	  d
  d    Z d   Z RS(   s   /sys/devices/system/cpu/onlines-   /sys/devices/system/cpu/online does not existc         C   ss   t  d   } | j   j   } Wd  QXd t |  k ro t | j d  d  d } |  j t j   |  n  d  S(   Ns   /sys/devices/system/cpu/onlinet   -i   (	   R^   R   RJ   R   R<   R8   R   Rg   t	   cpu_count(   Rj   R   t   value(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_against_sysdev_cpu_onlinef  s
    s   /sys/devices/system/cpus&   /sys/devices/system/cpu does not existc         C   s`   t  j d  } t g  | D]$ } t j d |  d  k	 r | ^ q  } |  j t j   |  d  S(   Ns   /sys/devices/system/cpus   cpu\d+$(	   R   t   listdirR   R   t   searcht   NoneR   Rg   R   (   Rj   t   lsR+   t   count(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_against_sysdev_cpu_numo  s    7t   nprocs   nproc utility not availablec         C   s2   t  t d   } |  j t j d t  |  d  S(   Ns   nproc --allt   logical(   R<   R   R   Rg   R   R`   (   Rj   t   num(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_against_nprocv  s    t   lscpus   lscpu utility not availablec         C   sc   t  d  } t g  | j d  D] } | j d  s | ^ q  } |  j t j d t  |  d  S(   Ns   lscpu -ps   
t   #R   (   R   R   R8   R9   R   Rg   R   R`   (   Rj   R>   R+   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_against_lscpu{  s    7c         C   so  d d  l  } | j j   } t j d d t 9} |  j | j j   |  | j s[ t  t j d d t	 K } |  j
 | j j    |  j | j d  |  j | j d d d  Wd  QXt d	 d
   } | j   } Wd  QXt j |  } t j d d | d t	   } |  j | j j   |  Wd  QXt d	 d  ' } |  j | j j   |  | j Wd  QXWd  QXd  S(   Nis   psutil._pslinux.os.sysconfR]   s   psutil._common.openR\   i   i    s
   /proc/stats   /proc/cpuinfot   rbt   return_valueR-   (   R   t   _pslinuxt   cpu_count_logicalR   R_   R=   R   R   R   R`   t   assertIsNonet
   call_countt	   call_argsR^   R   RR   RT   Rc   (   Rj   Rg   t   originalRb   R   t   cpuinfo_datat	   fake_file(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_fallbacks  s&    !(   R   R   R   R   R   t   patht   existsR   R   R   R   R   R   (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR   c  s   ""t   TestSystemCPUCountPhysicalc           B   s3   e  Z e j e d   d  d    Z d   Z RS(   R   s   lscpu utility not availablec         C   s   t  d  } t   } xI | j d  D]8 } | j d  s% | j d  } | j | d  q% q% W|  j t j d t  t	 |   d  S(   Ns   lscpu -ps   
R   t   ,i   R   (
   R   t   setR8   R9   t   addR   Rg   R   t   FalseR   (   Rj   R>   t   core_idsR@   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR     s    	c      
   C   st   t  j d d g  ; } t  j d d t  } |  j t j j    Wd  QXWd  QX| j sa t  | j sp t  d  S(   Ns	   glob.globR   s   psutil._common.openR\   (	   R   R_   R`   R   Rg   R   t   cpu_count_physicalR   R   (   Rj   t   m1t   m2(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_none  s
    "(   R   R   R   R   R   R   R   (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR     s   "
t   TestSystemCPUFrequencyc           B   s   e  Z e j e d   e j e d  d     Z e j e d  d    Z e j e d  d    Z e j e d  d    Z	 e j e d   e j e d  d     Z
 RS(   s   fails on Traviss   not supportedc      	      s~      f d   } g    t  j j  t j d d | d t 9 t j   sR t  |  j	 t
    t j d t   Wd  QXd  S(   Nc            s.   |  j  d  r t S  j d    |   Sd  S(   Ns&   /sys/devices/system/cpu/cpufreq/policy(   R9   R   t   appendR   (   R   (   t   flagst   orig_exists(    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   path_exists_mock  s    s   os.path.existsR]   R\   R   (   R   R   R   R   R_   R`   Rg   t   cpu_freqR   R   R   R   (   Rj   R   (    (   R   R   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_use_second_file  s    
c            s      f d   } g    t  j j  z t j d d |  t t j  t j   } | sb t	    sn t	  |  j
 | j d  |  j
 | j d  x@ t j d t  D], } |  j
 | j d  |  j
 | j d  q WWd  QXWd  t t j  t t  Xd  S(   Nc            s=   |  j  d  r t S|  d k r/   j d   n   |   Sd  S(   Ns   /sys/devices/system/cpu/s   /proc/cpuinfo(   R9   R   R   R   (   R   (   R   t   os_path_exists(    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR     s
    s   os.path.existsR]   g        t   percpu(   R   R   R   R   R_   R   Rg   R   R   R   R   t   maxt   minR`   (   Rj   R   R   t   freq(    (   R   R   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_use_cpuinfo  s     !c            s     f d   } t    t r! d n d } t j | d |  t j d d t n t j   } |  j | j d  | j	 d k r |  j | j	 d	  n  | j
 d k r |  j | j
 d
  n  Wd  QXWd  QXd  S(   Nc            s   |  j  d  r+ |  j d  r+ t j d  S|  j  d  rV |  j d  rV t j d  S|  j  d  r |  j d  r t j d  S|  d k r t j d	  S  |  | |  Sd  S(
   Ns   /scaling_cur_freqs&   /sys/devices/system/cpu/cpufreq/policyt   500000s   /scaling_min_freqt   600000s   /scaling_max_freqt   700000s   /proc/cpuinfos   cpu MHz		: 500(   R   R9   RR   RT   (   RU   RV   RW   (   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[     s    s   builtins.opens   __builtin__.openR]   s   os.path.existsR   g     @@g        g     @g     @(   R^   R   R   R_   R`   Rg   R   R   t   currentR   R   (   Rj   R[   Ra   R  (    (   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_data  s    c            ss    f d   } t    t r! d n d } t j | d | 1t j d d t t j d d d  t j d	 t  } |  j | d
 j d  | d
 j	 d k r |  j | d
 j	 d  n  | d
 j
 d k r |  j | d
 j
 d  n  |  j | d j d  | d j	 d k r0|  j | d j	 d  n  | d j
 d k r]|  j | d j
 d  n  Wd  QXWd  QXWd  QXd  S(   Nc            s5  |  } | j  d  r1 | j d  r1 t j d  S| j  d  r\ | j d  r\ t j d  S| j  d  r | j d  r t j d  S| j  d  r | j d  r t j d	  S| j  d  r | j d  r t j d
  S| j  d  r| j d  rt j d  S|  d k r!t j d  S  |  | |  Sd  S(   Ns   /scaling_cur_freqs'   /sys/devices/system/cpu/cpufreq/policy0t   100000s   /scaling_min_freqt   200000s   /scaling_max_freqt   300000s'   /sys/devices/system/cpu/cpufreq/policy1t   400000R  R  s   /proc/cpuinfos   cpu MHz		: 100
cpu MHz		: 400(   R   R9   RR   RT   (   RU   RV   RW   t   n(   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[     s,    s   builtins.opens   __builtin__.openR]   s   os.path.existsR   s!   psutil._pslinux.cpu_count_logicali   R   i    g      Y@g        g      i@g     r@i   g      y@g     @@g     @(   R^   R   R   R_   R`   Rg   R   R   R  R   R   (   Rj   R[   Ra   R  (    (   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_multi_cpu	  s$    
c            s    f d   } t    t r! d n d } t j | d | \ t j d d t @ t j d d d $ t j   } |  j | j d	  Wd  QXWd  QXWd  QX  f d
   } t    t r d n d } t j | d | 4 t j d d t  |  j	 t
 t j  Wd  QXWd  QXd  S(   Nc            sm   |  j  d  r$ t t j d   nE |  j  d  r@ t j d  S|  d k rY t j d  S  |  | |  Sd  S(   Ns   /scaling_cur_freqR-   s   /cpuinfo_cur_freqR	  s   /proc/cpuinfos   cpu MHz		: 200(   R   R   R   R   RR   RT   (   RU   RV   RW   (   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[   ;  s    s   builtins.opens   __builtin__.openR]   s   os.path.existsR   s!   psutil._pslinux.cpu_count_logicali   i   c            s}   |  j  d  r$ t t j d   nU |  j  d  rH t t j d   n1 |  d k ri t t j d   n   |  | |  Sd  S(   Ns   /scaling_cur_freqR-   s   /cpuinfo_cur_freqs   /proc/cpuinfo(   R   R   R   R   (   RU   RV   RW   (   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[   Q  s    (   R^   R   R   R_   R`   Rg   R   R   R  t   assertRaisest   NotImplementedError(   Rj   R[   Ra   R  (    (   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt%   test_emulate_no_scaling_cur_freq_file7  s    

%
(   R   R   R   R   R   R   R   R  R  R  R  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR     s   .t   TestSystemCPUStatsc           B   s>   e  Z e j e d   d    Z e j e d   d    Z RS(   s   fails on Travisc         C   s5   t  d  } t j   j } |  j | | d d d  S(   Ns   context switchesRn   i  (   RL   Rg   t	   cpu_statst   ctx_switchesRi   (   Rj   Rk   Rl   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_ctx_switchese  s    c         C   s5   t  d  } t j   j } |  j | | d d d  S(   Nt
   interruptsRn   i  (   RL   Rg   R  R  Ri   (   Rj   Rk   Rl   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_interruptsk  s    (   R   R   R   R   R   R  R  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR  b  s   t   TestLoadAvgc           B   s$   e  Z e j e d   d    Z RS(   s   not supportedc         C   s   t  j   } t d d   } | j   j   } Wd  QX|  j t | d  | d d d |  j t | d  | d d d |  j t | d  | d d d d  S(   Ns   /proc/loadavgt   ri    Rn   i   i   (   Rg   t
   getloadavgR^   R   R8   Ri   t   float(   Rj   Rl   R   t
   proc_value(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_getloadavgu  s    $$(   R   R   R   R   R   R  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR  r  s   t   TestSystemNetIfAddrsc           B   s   e  Z d    Z RS(   c         C   s   x t  j   j   D]y \ } } xj | D]b } | j t  j k rZ |  j | j t |   q& | j t j	 k r& |  j | j t
 |   q& q& Wq Wd  S(   N(   Rg   t   net_if_addrst   itemst   familyt   AF_LINKR   t   addressR3   R   R   R*   (   Rj   RU   t   addrst   addr(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_ips  s    (   R   R   R%  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR    s   t   TestSystemNetIfStatsc           B   s   e  Z d    Z RS(   c         C   sx   xq t  j   j   D]] \ } } y t d |  } Wn t k
 rF q X|  j | j t t j	 d |  d   q Wd  S(   Ns   ifconfig %ss   (?i)MTU[: ](\d+)i    (
   Rg   t   net_if_statsR  R   t   RuntimeErrorR   t   mtuR<   R   R   (   Rj   RU   t   statsR>   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_against_ifconfig  s    (   R   R   R+  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR&    s   t   TestSystemNetIOCountersc           B   s   e  Z e   d     Z RS(   c            sW    f d   } t  j d t d t  } x)| j   D]\   } y |    } Wn t k
 rf q4 n X|  j | j | d d d |  j | j | d d d |  j | j	 | d	 d d |  j | j
 | d
 d d |  j | j | d d d |  j | j | d d d |  j | j | d d d |  j | j | d d d q4 Wd  S(   Nc            s  i  } t  d    } t t j d |  d  | d <t t j d |  d  | d <t t j d |  d  | d <t t j d |  d	  | d
 <t t j d |  d  | d <t t j d |  d	  | d <t t j d |  d  | d <t t j d |  d  | d <| S(   Ns   ifconfig %ss   RX packets[: ](\d+)i    t   packets_recvs   TX packets[: ](\d+)t   packets_sents   errors[: ](\d+)t   errini   t   errouts   dropped[: ](\d+)t   dropint   dropouts#   RX (?:packets \d+ +)?bytes[: ](\d+)t
   bytes_recvs#   TX (?:packets \d+ +)?bytes[: ](\d+)t
   bytes_sent(   R   R<   R   R   (   t   nicR   R>   (   RU   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   ifconfig  s        t   pernict   nowrapR3  Rn   i   i   R4  R-  R.  R/  i
   R0  R1  R2  i   i   (   Rg   t   net_io_countersR`   R   R  R(  Ri   R3  R4  R-  R.  R/  R0  R1  R2  (   Rj   R6  t   nioR*  t   ifconfig_ret(    (   RU   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR+    s.    (   R   R   R   R+  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR,    s   t   TestSystemNetConnectionsc           B   sD   e  Z e j d  d e e j d d e d     Z d   Z RS(   s    psutil._pslinux.socket.inet_ntopR]   s   psutil._pslinux.supports_ipv6R   c         C   sd   y9 t  j  t  j t  j  } |  j | j  | j d  Wn t  j k
 rO n Xt j d d  d  S(   Ns   ::1i    t   kindt   inet6(   s   ::1i    (	   R   t   AF_INET6t   SOCK_STREAMt
   addCleanupt   closet   bindt   errorRg   t   net_connections(   Rj   t   supports_ipv6t	   inet_ntopR)   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_ipv6_unsupported  s    c         C   sD   t  d t j d   & } t j d d  | j s: t  Wd  QXd  S(   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=  t   unix(   Rc   R   R   Rg   RE  R   R   (   Rj   Rb   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_unix  s    (   R   R   R   R_   R=   R   RH  RJ  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR<    s   !t   TestSystemDiskPartitionsc           B   sH   e  Z e j e e d   d  e   d     Z d   Z d   Z	 RS(   t   statvfss   os.statvfs() not availablec         C   s   d   } x t  j d t  D] } t  j | j  } | | j  \ } } } } |  j | j |  t | j |  d k r |  j	 d | j | f  n  t | j
 |  d	 k r |  j	 d | j
 | f  q q Wd  S(
   Nc         S   s   t  d |   j   } | j d  } | j d  | j d  } | j   d  \ } } } } | d k rr d } n  t |  t |  t |  } } } | | | | f S(   Ns   df -P -B 1 "%s"s   
i    i   t   noneR-   (   R   RJ   R8   t   popR<   (   R   R>   R?   R@   t   devRB   RC   R7   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   df	  s    	&t   alli
   i   s   psutil=%s, df=%si (  i   i (  i   (   Rg   t   disk_partitionsR   t
   disk_usaget
   mountpointR   RB   R   R7   t   failRC   (   Rj   RP  t   partt   usageRO  RB   RC   R7   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_against_df  s    	c         C   s  t  d d   } | j   } Wd  QXd | k rj x t j   D] } | j d k r= Pq= q= W|  j d  n t j t d   } t	 j
 d d | d t u } t	 j
 d	 d d g T } t j   } | j s t  | j s t  | s t  |  j | d j d  Wd  QXWd  QXd  S(   Ns   /proc/filesystemsR  t   zfss   couldn't find any ZFS partitions
   nodev	zfs
s   psutil._common.openR   R\   s$   psutil._pslinux.cext.disk_partitionss	   /dev/sdb3t   /t   rwi    (   s	   /dev/sdb3RZ  RY  R[  (   R^   R   Rg   RR  t   fstypeRU  RR   RS   R   R   R_   R`   R   R   R   (   Rj   R   R   RV  R   R   R   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_zfs_fs  s$    c      	   C   s}   zl t  j d d d Q } |  j t   } t j   Wd  QX| j sL t  |  j | j	 j
 t
 j  Wd  QXWd  d t _ Xd  S(   Ns   os.path.realpathR   s   /non/existents   /proc(   R   R_   R  t   OSErrorRg   RR  R   R   R   t	   exceptionR   R   t   PROCFS_PATH(   Rj   Rb   t   cm(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_realpath_fail6  s    #(
   R   R   R   R   t   hasattrR   R   RX  R]  Rb  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyRK    s   	t   TestSystemDiskIoCountersc           B   sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s   t  d d   t j d d t  t j d t  } |  j | j d  |  j | j	 d  |  j | j
 d t  |  j | j d	  |  j | j d
  |  j | j d  |  j | j d t  |  j | j d  |  j | j d  Wd  QXWd  QXd  S(   Ns   /proc/diskstatss+      3     0   1 hda 2 3 4 5 6 7 8 9 10 11 12s!   psutil._pslinux.is_storage_deviceR   R8  i   i   i   i   i   i   i   i   i
   (   Rc   R   R_   R`   Rg   t   disk_io_countersR   R   t
   read_countt   read_merged_countt
   read_bytest   SECTOR_SIZEt	   read_timet   write_countt   write_merged_countt   write_bytest
   write_timet	   busy_time(   Rj   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_kernel_2_4F  s    

c         C   s   t  d d   t j d d t  t j d t  } |  j | j d  |  j | j	 d  |  j | j
 d t  |  j | j d	  |  j | j d
  |  j | j d  |  j | j d t  |  j | j d  |  j | j d  Wd  QXWd  QXd  S(   Ns   /proc/diskstatss'      3    0   hda 1 2 3 4 5 6 7 8 9 10 11s!   psutil._pslinux.is_storage_deviceR   R8  i   i   i   i   i   i   i   i   i
   (   Rc   R   R_   R`   Rg   Re  R   R   Rf  Rg  Rh  Ri  Rj  Rk  Rl  Rm  Rn  Ro  (   Rj   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_kernel_2_6_fullY  s    

c         C   s   t  d d   t j d d t  t j d t  } |  j | j d  |  j | j	 d t
  |  j | j d  |  j | j d	 t
  |  j | j d
  |  j | j d
  |  j | j d
  |  j | j d
  |  j | j d
  Wd  QXWd  QXd  S(   Ns   /proc/diskstatss      3    1   hda 1 2 3 4s!   psutil._pslinux.is_storage_deviceR   R8  i   i   i   i   i    (   Rc   R   R_   R`   Rg   Re  R   R   Rf  Rh  Ri  Rk  Rm  Rg  Rj  Rl  Rn  Ro  (   Rj   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_kernel_2_6_limitedm  s    

c         C   s   t  d t j d    t j d d t  t j d t d t  } |  j	 t
 |  d  |  j	 | d j d	  |  j	 | d
 j d	  |  j	 | d j d  |  j	 | d
 j d  Wd  QXWd  QXd  S(   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_deviceR   t   perdiskR8  i   t   nvme0n1i   t	   nvme0n1p1i   (   Rc   R   R   R   R_   R   Rg   Re  R`   R   R   Rf  Rk  (   Rj   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_include_partitions  s    
c         C   s   t  d t j d   F t j d d t * t j d t d t  } |  j |  Wd  QXWd  QXd   } t  d t j d   e t j d d t	 d	 | C t j d t d t  } |  j
 | j d
  |  j
 | j d  Wd  QXWd  QXd  S(   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_deviceR   Rs  R8  c         S   s
   |  d k S(   NRt  (    (   RU   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   is_storage_device  s    R\   R]   i   i   (   Rc   R   R   R   R_   R   Rg   Re  R   R`   R   Rf  Rk  (   Rj   R   Rw  (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_exclude_partitions  s$    
	c         C   so   d   } t  j d t  } t j d d t d |  t  j d t  } Wd  QX|  j t |  t |   d  S(   Nc         S   s   |  d k r t  St S(   Ns   /proc/diskstats(   R   R`   (   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR     s    Rs  s   psutil._pslinux.os.path.existsR\   R]   (   Rg   Re  R`   R   R_   R   R   (   Rj   R   t   wprocfst   wsysfs(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_use_sysfs  s    	c         C   sB   d   } t  j d d t d |  |  j t t j  Wd  QXd  S(   Nc         S   s   t  S(   N(   R   (   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR     s    s   psutil._pslinux.os.path.existsR\   R]   (   R   R_   R`   R  R  Rg   Re  (   Rj   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_not_impl  s    	(	   R   R   Rp  Rq  Rr  Rv  Rx  R{  R|  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyRd  C  s   						t   TestMiscc           B   sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C   s8   t  d  } t j   } |  j t |  t |   d  S(   Ns	   boot time(   RL   Rg   t	   boot_timeR   R<   (   Rj   Rk   Rl   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_boot_time  s    c            s  t  j   } t t j j | d  d  . } | j d  | j d  | j d  Wd  QXz6t     f d   } t r~ d n d } t j	 | d	 | t
 t  |  j t t j  |  j t t j d
 t |  j t t j  |  j t t j d
 t |  j t t j  |  j t t j d
 t | t _ |  j t j   d  |  j t t j    d  t j d
 t  } |  j t |  d  t j d
 t  } |  j t t t |   d  t t j j | d  d  . } | j d  | j d  | j d  Wd  QX|  j t j   d  |  j t t j d
 t   d  |  j t t j    d  |  j t t t t j d
 t    d  Wd  QXWd  t j |  t
 t  X|  j t j d  d  S(   NRK   R   s   cpu   0 0 0 0 0 0 0 0 0 0
s   cpu0  0 0 0 0 0 0 0 0 0 0
s   cpu1  0 0 0 0 0 0 0 0 0 0
c            s4   |  j  d  r$ t t j d   n    |  | |  S(   Ns   /procs   rejecting access for test(   R9   R   R   R   (   RU   RV   RW   (   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[     s    s   builtins.opens   __builtin__.openR]   R   i    s   cpu   1 0 0 0 0 0 0 0 0 0
s   cpu0  1 0 0 0 0 0 0 0 0 0
s   cpu1  1 0 0 0 0 0 0 0 0 0
s   /proc(   t   tempfilet   mkdtempR^   R   R   R0   t   writeR   R   R_   R   Rg   R  R   R   R`   t   cpu_percentt   cpu_times_percentR`  R   t   sumRO   t   assertNotEqualt   shutilt   rmtree(   Rj   t	   my_procfsR   R[   Ra   t   per_cpu_percentt   per_cpu_times_percent(    (   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_no_procfs_on_import  sL    !
	!/c      
   C   s  t  d t j d  j    J } t j   | j s: t  t j d t  t j	   t j	 d t  Wd  QXt  d t j d  j    } t j   } | j s t  t j d t  } t j	   } t j	 d t  } |  j
 | d  |  j
 t |  d  |  j
 t |  d  |  j
 t |  d  |  j
 t t t |   d  |  j
 t t t |   d  |  j | j d  |  j
 | j d  Wd  QXd  S(   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
                R   s                   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
                i    g      Y@(   Rc   R   R   R   Rg   R  R   R   R`   R  R  R  RO   R   R   t   user(   Rj   Rb   R  t   cpu_percent_percpuR  t   cpu_times_percent_percpu(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_cpu_steal_decrease  s4    

c         C   sG   t  j d d t , } |  j t t j j  | j s= t	  Wd  QXd  S(   Ns   psutil._common.openR\   (
   R   R_   R`   R  R(  Rg   R   R~  R   R   (   Rj   Rb   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_boot_time_mocked=  s
    c         C   s!  t  j d d d d d d t d f g 3 } |  j t j   d j d	  | j sY t  Wd  QXt  j d d d d d
 d t d f g 3 } |  j t j   d j d	  | j s t  Wd  QXt  j d d d d d d t d f g 3 } |  j t j   d j d  | j st  Wd  QXd  S(   Ns   psutil._pslinux.cext.usersR   t	   giampaolos   pts/2s   :0g   hAi   i    t	   localhosts   :0.0t   foo(	   R   R_   R`   R   Rg   t   userst   hostR   R   (   Rj   Rb   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_users_mockedD  s    			c         C   s   t  j   } z | t _ |  j t t j  |  j t t j  |  j t t j d t |  j t t j	  |  j t t j
  |  j t t j  |  j t t j  |  j t t j  |  j t j t j  Wd  d t _ t j |  Xd  S(   NR   s   /proc(   R  R  Rg   R`  R  R   Rh   R   R`   R~  RE  R9  R'  RR  t   NoSuchProcesst   ProcessR   t   rmdir(   Rj   t   tdir(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_procfs_pathX  s    		c         C   s   t    } | j   zn t j   } | j   d j } t j |  sQ t |   t j |  } | j   |  j	 | t j
    Wd  | j   Xd  S(   Ni   (   R   t   startRg   R  t   threadst   idt
   pid_existsR   t   as_dictR   t   pidst   stop(   Rj   t   tt   pt   tidt   pt(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_issue_687k  s    	

c         C   sF   t  d d  1 } t j t j    s- t  | j s< t  Wd  QXd  S(   Ns   /proc/%s/statusR-   (   Rc   Rg   R  R   t   getpidR   R   (   Rj   Rb   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_pid_exists_no_proc_status}  s    (
   R   R   R  R  R  R  R  R  R  R  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR}    s   		<	)				s
   no batteryt   TestSensorsBatteryc           B   s   e  Z e j e d   d  d    Z e j e d   d  d    Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z d   Z d   Z RS(   t   acpis   acpi utility not availablec         C   s`   t  d  } t | j d  d j   j d d   } t j   j } |  j | | d d d  S(   Ns   acpi -bR   i   t   %R-   Rn   (	   R   R<   R8   RJ   t   replaceRg   t   sensors_batteryt   percentRi   (   Rj   R>   t
   acpi_valueRl   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_percent  s    +c         C   sv   t  d  } d | j   k r+ t j d  Sd | k r@ t } n d | j d  d k } |  j t j   j	 |  d  S(   Ns   acpi -bt   unknowns   acpi output not reliables   discharging at zero ratet   Chargings   
i    (
   R   t   lowerR   R   R`   R8   R   Rg   R  t   power_plugged(   Rj   R>   t   plugged(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_power_plugged  s    	c            s     f d   } t    t r! d n d } t j | d | K } |  j t j   j t  |  j t j   j	 t j
  | j s t  Wd  QXd  S(   Nc            s?   |  j  d  s |  j  d  r+ t j d  S  |  | |  Sd  S(   Ns
   AC0/onlines	   AC/onlinet   1(   R   RR   RT   (   RU   RV   RW   (   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[     s    s   builtins.opens   __builtin__.openR]   (   R^   R   R   R_   R   Rg   R  R  R`   t   secsleftt   POWER_TIME_UNLIMITEDR   R   (   Rj   R[   Ra   Rb   (    (   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_power_plugged  s    c            sq     f d   } t    t r! d n d } t j | d | / } |  j t j   j t  | j	 sg t
  Wd  QXd  S(   Nc            si   |  j  d  s |  j  d  r3 t t j d   n2 |  j  d  rU t j t d   S  |  | |  Sd  S(   Ns
   AC0/onlines	   AC/onlineR-   s   /statust   charging(   R   R   R   R   RR   RS   R   (   RU   RV   RW   (   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[     s
    s   builtins.opens   __builtin__.openR]   (   R^   R   R   R_   R   Rg   R  R  R`   R   R   (   Rj   R[   Ra   Rb   (    (   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_power_plugged_2  s    c            sq     f d   } t    t r! d n d } t j | d | / } |  j t j   j t  | j	 sg t
  Wd  QXd  S(   Nc            s?   |  j  d  s |  j  d  r+ t j d  S  |  | |  Sd  S(   Ns
   AC0/onlines	   AC/onlinet   0(   R   RR   RT   (   RU   RV   RW   (   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[     s    s   builtins.opens   __builtin__.openR]   (   R^   R   R   R_   R   Rg   R  R  R   R   R   (   Rj   R[   Ra   Rb   (    (   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_power_not_plugged  s    c            sq     f d   } t    t r! d n d } t j | d | / } |  j t j   j t  | j	 sg t
  Wd  QXd  S(   Nc            si   |  j  d  s |  j  d  r3 t t j d   n2 |  j  d  rU t j t d   S  |  | |  Sd  S(   Ns
   AC0/onlines	   AC/onlineR-   s   /statust   discharging(   R   R   R   R   RR   RS   R   (   RU   RV   RW   (   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[     s
    s   builtins.opens   __builtin__.openR]   (   R^   R   R   R_   R   Rg   R  R  R   R   R   (   Rj   R[   Ra   Rb   (    (   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt    test_emulate_power_not_plugged_2  s    c            sn     f d   } t    t r! d n d } t j | d | , } |  j t j   j  | j sd t	  Wd  QXd  S(   Nc            sc   |  j  d  s |  j  d  r3 t t j d   n, |  j  d  rO t j d  S  |  | |  Sd  S(   Ns"   /sys/class/power_supply/AC0/onlines!   /sys/class/power_supply/AC/onlineR-   s#   /sys/class/power_supply/BAT0/statuss   ???(   R9   R   R   R   RR   RT   (   RU   RV   RW   (   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[     s    s   builtins.opens   __builtin__.openR]   (
   R^   R   R   R_   R   Rg   R  R  R   R   (   Rj   R[   Ra   Rb   (    (   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_power_undetermined  s    	c      
   C   s[   t  d t t j d   : t  d t t j d    |  j t j    Wd  QXWd  QXd  S(   Ns'   /sys/class/power_supply/BAT0/energy_nowR-   s'   /sys/class/power_supply/BAT0/charge_now(   Re   R   R   R   R   Rg   R  (   Rj   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_no_base_files  s    c         C   sD   t  d d  / } |  j t j   j d  | j s: t  Wd  QXd  S(   Ns(   /sys/class/power_supply/BAT0/energy_fullR  i    (   Rc   R   Rg   R  R  R   R   (   Rj   Rb   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_energy_full_0  s    c         C   sw   t  d t t j d   V t  d t t j d   4 t d d   |  j t j   j d  Wd  QXWd  QXWd  QXd  S(   Ns(   /sys/class/power_supply/BAT0/energy_fullR-   s(   /sys/class/power_supply/BAT0/charge_fulls%   /sys/class/power_supply/BAT0/capacityt   88iX   (	   Re   R   R   R   Rc   R   Rg   R  R  (   Rj   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt"   test_emulate_energy_full_not_avail  s    c         C   s   t  d t t j d   _ t  d t t j d   = t  d t t j d    |  j t j   j  Wd  QXWd  QXWd  QXd  S(   Ns!   /sys/class/power_supply/AC/onlineR-   s"   /sys/class/power_supply/AC0/onlines#   /sys/class/power_supply/BAT0/status(   Re   R   R   R   R   Rg   R  R  (   Rj   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_no_power  s    (   R   R   R   R   R   R  R  R  R  R  R  R  R  R  R  R  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR    s   ""								t   TestSensorsTemperaturesc           B   s5   e  Z e j e d   d    Z d   Z d   Z RS(   s   unreliable on TRAVISc            s     f d   } t    t r! d n d } t j | d | d } t j d t  I } |  j t j	   i   | j
 sy t  |  j d t | d j   Wd  QXWd  QXd  S(   Nc            s\   |  j  d  r$ t t j d   n4 |  j  d  rH t t j d   n   |  | |  Sd  S(   Nt   _inputR-   t   temp(   R   R^  R   t   EIO(   RU   RV   RW   (   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[   %  s
    s   builtins.opens   __builtin__.openR]   R~   t   ignoringi    (   R^   R   R   R_   R   R   R`   R   Rg   t   sensors_temperaturesR   R   R   R   R   (   Rj   R[   Ra   Rb   R   (    (   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_eio_error#  s    c            s     f d   } t    t r! d n d } t j | d |  t j d d d g e t j   d d	 } |  j | j d
  |  j | j d  |  j | j	 d  |  j | j
 d  Wd  QXWd  QXd  S(   Nc            s   |  j  d  r" t j t d   S|  j  d  rD t j t d   S|  j  d  r` t j d  S|  j  d  r| t j d  S|  j  d	  r t j d
  S  |  | |  Sd  S(   Ns   /nameRU   s   /temp1_labelt   labels   /temp1_inputt   30000s
   /temp1_maxt   40000s   /temp1_critt   50000(   R   RR   RS   R   RT   (   RU   RV   RW   (   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[   6  s    s   builtins.opens   __builtin__.openR]   s	   glob.globR   s   /sys/class/hwmon/hwmon0/temp1RU   i    R  g      >@g      D@g      I@(   R^   R   R   R_   Rg   R  R   R  R  t   hight   critical(   Rj   R[   Ra   R  (    (   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_class_hwmon5  s    c            s     f d   } d   } t    t r* d n d } t j | d |  t j d d t d | e t j   d d	 } |  j | j d
  |  j | j	 d  |  j | j
 d  |  j | j d  Wd  QXWd  QXd  S(   Nc            s   |  j  d  r t j d  S|  j  d  r8 t j d  S|  j  d  rZ t j t d   S|  j  d  r| t j t d   S  |  | |  Sd  S(	   Nt   0_tempR  R  R  t   0_typeR  t   typeRU   (   R   RR   RT   RS   R   (   RU   RV   RW   (   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[   Q  s    c         S   sM   |  d k r g  S|  d k r  g  S|  d k r3 d g S|  d k rI d d g Sd  S(   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   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt	   glob_mock]  s    s   builtins.opens   __builtin__.openR]   s	   glob.globR\   RU   i    R-   g      >@g      I@(   R^   R   R   R_   R`   Rg   R  R   R  R  R  R  (   Rj   R[   R  Ra   R  (    (   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_class_thermalP  s    	(   R   R   R   R   R   R  R  R  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR     s   	t   TestSensorsFansc           B   s   e  Z d    Z RS(   c            s     f d   } t    t r! d n d } t j | d | ^ t j d d d g ? t j   d d	 } |  j | j d
  |  j | j d  Wd  QXWd  QXd  S(   Nc            sz   |  j  d  r" t j t d   S|  j  d  rD t j t d   S|  j  d  rf t j t d   S  |  | |  Sd  S(   Ns   /nameRU   s   /fan1_labelR  s   /fan1_inputt   2000(   R   RR   RS   R   (   RU   RV   RW   (   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[   w  s    s   builtins.opens   __builtin__.openR]   s	   glob.globR   s   /sys/class/hwmon/hwmon2/fan1RU   i    R  i  (	   R^   R   R   R_   Rg   t   sensors_fansR   R  R  (   Rj   R[   Ra   t   fan(    (   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR  v  s    
(   R   R   R  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR  s  s   t   TestProcessc           B   s   e  Z d    Z e Z d   Z d   Z e j e d  d    Z	 d   Z
 d   Z d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z e j e d  d    Z d   Z d   Z d   Z RS(   c         C   s   t  t  d  S(   N(   R   R   (   Rj   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   setUp  s    c         C   s'  t  j d t  } t |  } |  j t  t d   d t  t j | j	  } t
 j d  | j   } | j d t  } |  j | j t g  | D] } | j | j ^ q  d d |  j | j t g  | D] } | j ^ q  d d |  j | j t g  | D] } | j ^ q d d d  S(   Nsk   
            import time
            with open("%s", "w") as f:
                time.sleep(10)
            c           S   s   t  j d  S(   NRM   (   R   R   (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   <lambda>  R-   s   '%s' not in retg?t   groupedRn   i   (   R   R   R   R   RA  R   R   Rg   R  t   pidt   timet   sleept   memory_full_infot   memory_mapsR   Ri   t   ussR  t   private_dirtyt   private_cleant   pssR   (   Rj   t   srct   sprocR  R   t   mapsR+   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_memory_full_info  s     //c         C   s   t  d t j   t j d  j    g } t j   } | j   } | j	 sR t
  |  j | j d  |  j | j d  |  j | j d  Wd  QXd  S(   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
                i   i   i   i   i   i   i   i   i l  i   i <  (   Rc   R   R  R   R   R   Rg   R  R  R   R   R   R  R  R   (   Rj   Rb   R  R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_memory_full_info_mocked  s    s   unreliable on PYPYc         C   s  d   } t  t d   |  j |   j d  Wd  QXt  t d   |  j |   j d  Wd  QXt  t d   |  j |   j d  Wd  QXt  t d   |  j |   j d  Wd  QXt  t d   |  j |   j d  Wd  QXt  t d   |  j |   j d  Wd  QXt rt t  t  t d   |  j |   j d  Wd  QXt t  t  t d	   |  j |   j d  Wd  QXn  d  S(
   Nc          S   s   t  j   }  t j   d } xV t rt xI |  j   D]; } | j t j j t  k rW | St j   | k r2 Pq2 q2 Wq Wt	 d   d  S(   Ni   s   timeout looking for test file(
   Rg   R  R  R`   t
   open_filesR   R   t   abspathR   R(  (   R  t	   giveup_att   file(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   get_test_file  s    	R   R  R   s   r+s   w+s   a+R+   s   x+(   R^   R   R   t   modeR   R   (   Rj   R  (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_open_files_mode  s(    	

c         C   s   t  j   } | j   } t j    t | j d t |   t j d d t	 t
 j d  / } | j   } | s| t  | j s t  Wd  QXt j d d t	 t
 j d  , } |  j | j   g   | j s t  Wd  QXWd  QXd  S(   Ns   len(ret) != %is   psutil._pslinux.os.readlinkR]   R-   (   Rg   R  R  R  t   NamedTemporaryFileR   R   R   R_   R^  R   R   R   R   t   EINVALR   (   Rj   R  t   filesRb   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_open_files_file_gone  s    c      
   C   s   t  j   } | j   } t j    t | j d t |   t rK d n d } t j	 | d t
 t j d  / } | j   } | s t  | j s t  Wd  QXWd  QXd  S(   Ns   len(ret) != %is   builtins.opens   __builtin__.openR]   R-   (   Rg   R  R  R  R  R   R   R   R   R_   R   R   R   R   R   (   Rj   R  R  Ra   Rb   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_open_files_fd_gone  s    c         C   sV   t  j d d i  ; } |  j t j j t j    j    | j	 sL t
  Wd  QXd  S(   Ns)   psutil._pslinux._psposix.get_terminal_mapR   (   R   R_   R   Rg   R   R  R   R  t   terminalR   R   (   Rj   Rb   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_terminal_mocked  s    %c      
   C   s   t  j   } t j t d   } t j d d | d t 2 } |  j | j	   d d g  | j
 sj t  Wd  QXt j t d   } t j d d | d t 5 } |  j | j	   d d d g  | j
 s t  Wd  QXd  S(	   Ns   foo bar s   psutil._common.openR   R\   R  t   bars	   foo bar  R-   (   Rg   R  RR   RS   R   R   R_   R`   R   t   cmdlineR   R   (   Rj   R  R   Rb   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_cmdline_mocked(  s    c      
   C   s   t  j   } t j t d   } t j d d | d t 2 } |  j | j	   d d g  | j
 sj t  Wd  QXt j t d   } t j d d | d t 5 } |  j | j	   d d d g  | j
 s t  Wd  QXd  S(	   Ns   foo bar s   psutil._common.openR   R\   R  R   s	   foo bar  R-   (   Rg   R  RR   RS   R   R   R_   R`   R   R  R   R   (   Rj   R  R   Rb   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_cmdline_spaces_mocked6  s    c         C   sX   t  j d d d = |  j t j   j   d  |  j t j   j   d  Wd  QXd  S(   Ns   psutil._pslinux.os.readlinkR   s   /home/foo (deleted)s	   /home/foo(   R   R_   R   Rg   R  t   exet   cwd(   Rj   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt!   test_readlink_path_deleted_mockedD  s    
c            s     f d   } t    t r! d n d } t j | d | 8 } t j   j   } | j s` t  |  j	 | g   Wd  QX  f d   } t j | d | ! |  j
 t j t j   j  Wd  QXd  S(   Nc            sB   |  j  d t j    r. t t j d   n   |  | |  Sd  S(   Ns   /proc/%s/taskR-   (   R9   R   R  R   R   R   (   RU   RV   RW   (   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[   O  s    s   builtins.opens   __builtin__.openR]   c            sB   |  j  d t j    r. t t j d   n   |  | |  Sd  S(   Ns   /proc/%s/taskR-   (   R9   R   R  R   R   t   EPERM(   RU   RV   RW   (   RZ   (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR[   ^  s    (   R^   R   R   R_   Rg   R  R  R   R   R   R  t   AccessDenied(   Rj   R[   Ra   Rb   R   (    (   RZ   s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_threads_mockedJ  s    c         C   s   t  j d d t t j d   } t  j d d t j d d   } t j   j   } | j	 si t
  | j	 sx t
  |  j | d  t  j d d t ! |  j t j t j   j  Wd  QXWd  QXWd  QXd  S(   Ns   psutil._pslinux.readlinkR]   R-   s   psutil.Process.cmdlinei    s   psutil._pslinux.os.path.lexistsR   (   R   R_   R^  R   R   Rg   R  R  R  R   R   R   R   R  t   ZombieProcess(   Rj   R   R   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_exe_mockedg  s    
c      	   C   s   t  d t j   t t j d   ] } t j   } |  j t   } | j	   Wd  QX|  j
 | j j t j  | j s~ t  Wd  QXd  S(   Ns   /proc/%s/smapsR-   (   Re   R   R  R   R   R   Rg   R  R  R  R   R_  R   R   (   Rj   Rb   R  t   err(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_issue_1014|  s    s   not supportedc      
   C   s   t  j d d t t j d  W } t j   } | j   |  j t j	   } | j
 t j  Wd  QX| j st t  Wd  QX|  j | j j | j  |  j | j j | j    d  S(   Ns"   psutil._pslinux.cext.linux_prlimitR]   R-   (   R   R_   R^  R   t   ENOSYSRg   R  RU   R  R
  t   rlimitt   RLIMIT_NOFILER   R   R   R_  R  (   Rj   Rb   R  Rd   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_rlimit_zombie  s    
c      	   C   s   t  j d d t t j d  Q } t j   } | j   |  j t j	   } | j
   Wd  QX| j sn t  Wd  QX|  j | j j | j  |  j | j j | j    d  S(   Ns   psutil._pslinux.os.readlinkR]   R-   (   R   R_   R^  R   R   Rg   R  RU   R  R
  R  R   R   R   R_  R  (   Rj   Rb   R  Rd   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_cwd_zombie  s    
c      '   C   s  d d l  m } d d d d d d d d d d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d g' } d j |  j   } t d t j   |   t j   } |  j	 | j
   d  |  j	 | j   t j  |  j	 | j   d  |  j	 | j   d | t j    | j   } |  j	 | j d |  |  j	 | j d |  |  j	 | j d |  |  j	 | j d |  |  j	 | j   d  Wd  QXd  S(   Ni(   t   CLOCK_TICKSR  s   (cat)t   ZR  t   2t   3t   4t   5t   6RI   s   /proc/%s/statt   cati   i   i   i   i   i   (   R   R  R0   R   Rc   R   R  Rg   R  R   RU   t   statust   STATUS_ZOMBIEt   ppidt   create_timeR~  R   R  t   systemt   children_usert   children_systemt   cpu_num(   Rj   R  RV   RX   R  t   cpu(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_stat_file_parsing  sl    	c      
   C   s9  t  d t j   t j d  j    t j   } |  j | j	   j
 d  |  j | j	   j d  |  j | j   d  | j   } |  j | j d  |  j | j d  |  j | j d  | j   } |  j | j d	  |  j | j d
  |  j | j d  |  j | j j   t t d d    Wd  QXd  S(   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   iB   i  i  i  i  i  i  i    i   (   Rc   R   R  R   R   R   Rg   R  R   t   num_ctx_switchest	   voluntaryt   involuntaryt   num_threadst   uidst   realt	   effectivet   savedt   gidst   _proct   _get_eligible_cpust   listt   range(   Rj   R  R)  R-  (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_status_file_parsing  s"    (   R   R   R  t   tearDownR  R  R   R   R   R  R  R  R  R  R  R  R	  R  R  R	   R  R  R$  R2  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR    s$   			#$											;t   TestProcessAgainstStatusc           B   s   e  Z d  Z e d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z e   d	    Z d
   Z d   Z RS(   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.
    c         C   s   t  j   |  _ d  S(   N(   Rg   R  t   proc(   t   cls(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt
   setUpClass   s    c      
   C   s   t  j j d |  j j  | } xb | D]Z } | j   } | j |  r& | j d  d } y t |  SWq t	 k
 r| | SXq& q& Wt	 d |   Wd  QXd  S(   Ns   /proc/%s/statuss   	i   s   can't find %r(
   Rg   t   _psplatformt	   open_textR5  R  RJ   R9   t	   partitionR<   R=   (   Rj   t	   linestartR   R@   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   read_status_file  s    	c         C   s,   |  j  d  } |  j |  j j   |  d  S(   Ns   Name:(   R<  R   R5  RU   (   Rj   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt	   test_name  s    c         C   sa   |  j  d  } | | j d  d | j d  !} | j d d  } |  j |  j j   |  d  S(   Ns   State:t   (i   t   )RI   R   (   R<  t   findt   rfindR  R   R5  R  (   Rj   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_status  s    #c         C   s,   |  j  d  } |  j |  j j   |  d  S(   Ns   PPid:(   R<  R   R5  R  (   Rj   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt	   test_ppid  s    c         C   s,   |  j  d  } |  j |  j j   |  d  S(   Ns   Threads:(   R<  R   R5  R(  (   Rj   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_num_threads  s    c         C   sN   |  j  d  } t t t | j   d d !  } |  j |  j j   |  d  S(   Ns   Uid:i   i   (   R<  RN   RO   R<   R8   R   R5  R)  (   Rj   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt	   test_uids#  s    "c         C   sN   |  j  d  } t t t | j   d d !  } |  j |  j j   |  d  S(   Ns   Gid:i   i   (   R<  RN   RO   R<   R8   R   R5  R-  (   Rj   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt	   test_gids(  s    "c         C   sZ   |  j  d  } |  j |  j j   j |  |  j  d  } |  j |  j j   j |  d  S(   Ns   voluntary_ctxt_switches:s   nonvoluntary_ctxt_switches:(   R<  R   R5  R%  R&  R'  (   Rj   R   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_num_ctx_switches-  s    c         C   sr   |  j  d  } d t |  k rn t t | j d   \ } } |  j |  j j   t t	 | | d    n  d  S(   Ns   Cpus_allowed_list:R   i   (
   R<  R   RO   R<   R8   R   R5  t   cpu_affinityR0  R1  (   Rj   R   t   min_t   max_(    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_cpu_affinity4  s
    c         C   so   |  j  d  } t j d   } |  j j j   Wd  QXd t |  k r\ | j sk t  n | j sk t  d  S(   Ns   Cpus_allowed_list:s   psutil._pslinux.per_cpu_timesR   (	   R<  R   R_   R5  R.  R/  R   R   R   (   Rj   R   Rb   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_cpu_affinity_eligible_cpus;  s    (   R   R   t   __doc__t   classmethodR7  R<  R=  RB  RC  RD  RE  RF  R   RG  RK  RL  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyR4    s   								t	   TestUtilsc           B   s   e  Z d    Z d   Z RS(   c         C   sM   t  j d d d 2 } |  j t j j d  d  | j sC t  Wd  QXd  S(   Ns   os.readlinkR   s   foo (deleted)R   R  (   R   R_   R   Rg   R8  t   readlinkR   R   (   Rj   Rb   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_readlinkM  s    c         C   s   t  j j t  } t | d   } | j d  Wd  QX|  j t j j	 t d t
 d  |  j t j j	 t d t d  |  j t j j	 t d d d d  d  S(   Nt   wts   foo t   binaryR  s   ??t   fallbackR   (   R   R   R  R   R^   R  R   Rg   R8  R  R   R`   (   Rj   t   fnameR   (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   test_catR  s    ""(   R   R   RQ  RV  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyRO  J  s   	t   __main__(   t   run(W   RM  t
   __future__R    R:   R    R   RR   R   R   R  R   R&   R  R   R  R   Rg   R   t   psutil._compatR   R   R   t   psutil.testsR   R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R  t   dirnamet   __file__t   HERER%   t   SIOCGIFCONFR.   Ri  R*   R3   RE   RH   RL   RP   t   contextmanagerRc   Re   R   t   TestCaseRf   R   R   R   R   R   R  R  R  R&  R,  R<  RK  Rd  R}  R  R  R  R  R4  RO  R   t   psutil.tests.runnerRX  (    (    (    s6   lib/python2.7/site-packages/psutil/tests/test_linux.pyt   <module>   s   								 1]?- AR gR