
    fR                        d 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 er,ddlmZ  e       Z ej.                         dk(  xr  ed      ZndZdZd Zd Z ej6                  e d       G d de             Z ej6                  e d       G d de             Z ej6                  e d       G d de             Z ej6                  e
 d       G d de             Z ej6                  e	 d       G d  d!e             Z e!d"k(  rdd#l"m#Z#  e#e$       yy)$z$Tests specific to all BSD platforms.    N)BSD)FREEBSD)NETBSD)OPENBSD)HAS_BATTERY)TOLERANCE_SYS_MEM)PsutilTestCase)retry_on_failure)sh)spawn_testproc)	terminate)which)getpagesizemuseFc                     t        d| z         }t        r||j                  d      dz   d }n#t        st        r||j                  d      dz   d }	 t        |      S # t        $ r |cY S w xY w)zmExpects a sysctl command with an argument and parse the result
    returning only the value of interest.
    zsysctl z:    N=   )r   r   findr   r   int
ValueError)cmdlineresults     7/usr/lib/python3/dist-packages/psutil/tests/test_bsd.pysysctlr   -   st     	G#$FD)A-/0	FC(1,./6{ s   
A A*)A*c                     t        d      }|j                  d      D ]  }|j                  |       s n t        d      t	        |j                         d         S )z+Thin wrapper around 'muse' cmdline utility.r   
zline not foundr   )r   split
startswithr   r   )fieldoutlines      r   r   r   <   sT    
V*C		$ +??5!+ )**tzz|A    zBSD onlyc                   T   e Zd ZdZed        Zed        Z ej                  e	d      d        Z
d Z ej                   ed       d      d	        Z ej                   ed       d       ej                  e	d
      d               Z ej                   ed       d      d        Zy)BSDTestCasez)Generic tests common to all BSD variants.c                 6    t               j                  | _        y Nr   pidclss    r   
setUpClasszBSDTestCase.setUpClassP        "&&r#   c                 .    t        | j                         y r'   r   r)   r*   s    r   tearDownClasszBSDTestCase.tearDownClassT       #''r#   z -o lstart doesn't work on NETBSDc                 D   t        d| j                  z        }|j                  dd      j                         }t	        j
                  | j                        j                         }t        j                  dt        j                  |            }| j                  ||       y )Nzps -o lstart -p %sSTARTED z%a %b %e %H:%M:%S %Y)r   r)   replacestrippsutilProcesscreate_timetimestrftime	localtimeassertEqual)selfoutputstart_psstart_psutils       r   test_process_create_timez$BSDTestCase.test_process_create_timeX   sx    (48834>>)R0668~~dhh/;;=}}"DNN<$@
 	<0r#   c                    d }t        j                  d      D ]  }t        j                  |j                        } ||j                        \  }}}}| j	                  |j
                  |       | j	                  |j                  |       t        |j                  |z
        dkD  r!| j                  d|j                  d|      t        |j                  |z
        dkD  s| j                  d|j                  d|       y )Nc                 >   t        d| z        j                         }|j                  d      }|j                  d       |j                  d      }|j                         d d \  }}}}|dk(  rd}t	        |      dz  }t	        |      dz  }t	        |      dz  }||||fS )Nz
df -k "%s"r   r      noner4      )r   r6   r   popr   )pathr!   linesr"   devtotalusedfrees           r   dfz"BSDTestCase.test_disks.<locals>.dfe   s    \D()//1CIIdOEIIaL99Q<D%)ZZ\"1%5"Cdf}J%Et9t#Dt9t#DtT))r#   F)alli   zpsutil=z, df=)r7   disk_partitions
disk_usage
mountpointr=   devicerL   absrN   failrM   )r>   rO   partusagerK   rL   rM   rN   s           r   
test_diskszBSDTestCase.test_disksb   s    	* **u5 		ID%%doo6E%'%8"CdT[[#.U[[%05::$%(88iiejj$ GHH5::$%(88iiejj$ GHH		Ir#   r   zsysctl cmd not availablec                 f    t        d      }| j                  t        j                  d      |       y )Nzhw.ncpuT)logical)r   r=   r7   	cpu_countr>   systs     r   test_cpu_count_logicalz"BSDTestCase.test_cpu_count_logical}   s'    i ))$7>r#   zskipped on NETBSDc                 v    t        d      }| j                  |t        j                         j                         y )Nz
hw.physmem)r   r=   r7   virtual_memoryrL   r>   nums     r   test_virtual_memory_totalz%BSDTestCase.test_virtual_memory_total   s-     \"f335;;<r#   ifconfigzifconfig cmd not availablec           
      V   t        j                         j                         D ]u  \  }}	 t        d|z        }| j	                  |j
                  d|v |       d|v s:| j	                  |j                  t        t        j                  d|      d                w y # t        $ r Y w xY w)Nzifconfig %sRUNNING)msgmtuz	mtu (\d+)r   )r7   net_if_statsitemsr   r=   isupri   r   refindallRuntimeError)r>   namestatsr!   s       r   test_net_if_statszBSDTestCase.test_net_if_stats   s    !..0668 
	KD%	-.   Y#-=3 GC<$$		3rzz,'DQ'G#H
	   s   B	B('B(N)__name__
__module____qualname____doc__classmethodr,   r0   unittestskipIfr   rB   rY   r   r_   rd   rr    r#   r   r%   r%   L   s    3' '   X__V?@1 A1I6 X__x(*DE? F? X__x(*DEX__V01= 2 F= X__z**,HI Jr#   r%   zFREEBSD onlyc                       e Zd Zed        Zed        Z e       d        Zd Zd Z	d Z
 e       d        Z e       d        Zy	)
FreeBSDPsutilTestCasec                 6    t               j                  | _        y r'   r(   r*   s    r   r,   z FreeBSDPsutilTestCase.setUpClass   r-   r#   c                 .    t        | j                         y r'   r/   r*   s    r   r0   z#FreeBSDPsutilTestCase.tearDownClass   r1   r#   c                 <   t        d| j                  z        }t        j                  | j                        j	                  d      }|j                  d      dd  }|r|j                         }|j                         }|d d \  }}}}	}
|j                         }| j                  |d||j                         | j                  t        |
      |j                         |j                  j                  d      s| j                  |d	   |j                         |ry y )
Nzprocstat -v %sF)groupedr   r      -[
   )r   r)   r7   r8   memory_mapsr   rH   r=   addrr   rssrI   r   )r>   r!   mapsrJ   r"   fields_startstoppermsresmaps               r   test_memory_mapsz&FreeBSDPsutilTestCase.test_memory_maps   s    !DHH,-~~dhh'33E3B		$#99;DZZ\F)/&AudE3((*Ct4chh?SXsww/88&&s+  SXX6 r#   c                     t        d| j                  z        }| j                  t        j                  | j                        j                         |j                  d      d   j                         d          y )Nzprocstat -b %sr   r   )r   r)   r=   r7   r8   exer   r>   r!   s     r   test_exezFreeBSDPsutilTestCase.test_exe   sZ    !DHH,-NN488$((*CIIdOA,>,D,D,Fr,J	
r#   c                 0   t        d| j                  z        }| j                  dj                  t	        j
                  | j                        j                               dj                  |j                  d      d   j                         dd               y )Nzprocstat -c %s r   r   r   )r   r)   r=   joinr7   r8   r   r   r   s     r   test_cmdlinez"FreeBSDPsutilTestCase.test_cmdline   so    !DHH,-HHV^^DHH-5578HHSYYt_Q'--/34	
r#   c                    t        d| j                  z        }|j                  d      d   j                         dd \  }}}}}}t        j                  | j                        }|j                         }	|j                         }
| j                  |	j                  t        |             | j                  |	j                  t        |             | j                  |	j                  t        |             | j                  |
j                  t        |             | j                  |
j                  t        |             | j                  |
j                  t        |             y )Nzprocstat -s %sr   r   r      )r   r)   r   r7   r8   uidsgidsr=   realr   	effectivesaved)r>   r!   euidruidsuidegidrgidsgidpr   r   s              r   test_uids_gidsz$FreeBSDPsutilTestCase.test_uids_gids   s    !DHH,--0YYt_Q-?-E-E-G!-L*dD$dNN488$vvxvvxCI.T3SY/CI.T3SY/r#   c                    g }t        d| j                  z        }t        j                  | j                        }|j	                  d      D ]  }|j                         j                         }d|v rZt        |j	                         d         }|j                         j                  }| j                  ||       |j                  d        d|v st        |j	                         d         }|j                         j                  }| j                  ||       |j                  d         t        |      dk7  rt        d      y )Nprocstat -r %sr   z voluntary contextr   z involuntary contextr   )couldn't find lines match in procstat out)r   r)   r7   r8   r   lowerr6   r   num_ctx_switches	voluntaryr=   appendinvoluntarylenro   r>   testedr!   r   r"   pstat_valuepsutil_values          r   test_ctx_switchesz'FreeBSDPsutilTestCase.test_ctx_switches   s   !DHH,-NN488$IIdO 	$D::<%%'D#t+!$**,r"23 113==  l;d#'4/!$**,r"23 113??  l;d#	$ v;!JKK r#   c                    g }t        d| j                  z        }t        j                  | j                        }|j	                  d      D ]  }|j                         j                         }d|v rot        d|j	                         d   j	                  d      d   z         }|j                         j                  }| j                  ||       |j                  d        d|v st        d|j	                         d   j	                  d      d   z         }|j                         j                  }| j                  ||       |j                  d        
 t        |      dk7  rt        d	      y )
Nr   r   z	user timez0.r   .zsystem timer   r   )r   r)   r7   r8   r   r   r6   float	cpu_timesuserr=   r   systemr   ro   r   s          r   test_cpu_timesz$FreeBSDPsutilTestCase.test_cpu_times   s5   !DHH,-NN488$IIdO 	$D::<%%'Dd"#D4::<+;+A+A#+Fr+J$JK {{}11  l;d#$&#D4::<+;+A+A#+Fr+J$JK {{}33  l;d#	$ v;!JKK r#   N)rs   rt   ru   rw   r,   r0   r
   r   r   r   r   r   r   rz   r#   r   r|   r|      s    ' '   7 7

0 L L& L Lr#   r|   c                      e Zd Zed        Zd Z e       d        Z e       d        Z e       d        Z	 e       d        Z
 e       d        Z e       d        Z ej                  e d	      d
        Z ej                  e d	       e       d               Z ej                  e d	       e       d               Z ej                  e d	       e       d               Z ej                  e d	       e       d               Z ej                  e d	       e       d               Z ej                  e d	       e       d               Zd Zd Zd Z e       d        Zd Zd Zd Zd Z ej                  e d      d        Z  ej                  e d      d        Z! ej                  ed      d        Z"d Z#y) FreeBSDSystemTestCasec                      t        d      j                         d   } t        j                  d|       }|st	        d| z        d |dd D        \  }}}|||fS )Nzswapinfo -kr   z\s+zCan't parse swapinfo: %sc              3   8   K   | ]  }t        |      d z    yw)rG   N)r   ).0r   s     r   	<genexpr>z7FreeBSDSystemTestCase.parse_swapinfo.<locals>.<genexpr>  s     ?qSVd]?s   r   rE   )r   
splitlinesrm   r   r   )r?   partsrL   rM   rN   s        r   parse_swapinfoz$FreeBSDSystemTestCase.parse_swapinfo   sg     M"--/3(7&@AA @E!AJ?tTdD  r#   c                 Z   d}	 t        t        |            }| j	                  t        j                         j                         d}t        |      }t        |j                         d   j                  d      d         }t        |j                         d   j                  d      d         }| j	                  t        j                         j                  |       | j	                  t        j                         j                  |       y # t        $ r | j                  d       Y w xY w)Nzdev.cpu.0.freqz#frequencies not supported by kernelzdev.cpu.0.freq_levelsr   /r   )r   r   ro   skipTestr=   r7   cpu_freqcurrentr   maxmin)r>   sensorsysctl_resultmax_freqmin_freqs        r   !test_cpu_frequency_against_sysctlz7FreeBSDSystemTestCase.test_cpu_frequency_against_sysctl  s     "	Av/M 	*22MB(v }**,Q/55c:1=>}**,R066s;A>?*..9*..9  	AMM?@	As   D D*)D*c                     t        d      t        z  }| j                  t        j                         j
                  |t               y )Nzvm.stats.vm.v_active_countdelta)r   PAGESIZEassertAlmostEqualr7   ra   activer   r]   s     r   test_vmem_activez&FreeBSDSystemTestCase.test_vmem_active  s<    23h>!!#**D8I 	 	
r#   c                     t        d      t        z  }| j                  t        j                         j
                  |t               y )Nzvm.stats.vm.v_inactive_countr   )r   r   r   r7   ra   inactiver   r]   s     r   test_vmem_inactivez(FreeBSDSystemTestCase.test_vmem_inactive$  s<    45@!!#,,d:K 	 	
r#   c                     t        d      t        z  }| j                  t        j                         j
                  |t               y )Nzvm.stats.vm.v_wire_countr   )r   r   r   r7   ra   wiredr   r]   s     r   test_vmem_wiredz%FreeBSDSystemTestCase.test_vmem_wired+  s<    01H<!!#))47H 	 	
r#   c                     t        d      t        z  }| j                  t        j                         j
                  |t               y )Nzvm.stats.vm.v_cache_countr   )r   r   r   r7   ra   cachedr   r]   s     r   test_vmem_cachedz&FreeBSDSystemTestCase.test_vmem_cached2  s<    12X=!!#**D8I 	 	
r#   c                     t        d      t        z  }| j                  t        j                         j
                  |t               y )Nzvm.stats.vm.v_free_countr   )r   r   r   r7   ra   rN   r   r]   s     r   test_vmem_freez$FreeBSDSystemTestCase.test_vmem_free9  s<    01H<!!#(($6G 	 	
r#   c                     t        d      }| j                  t        j                         j                  |t
               y )Nzvfs.bufspacer   )r   r   r7   ra   buffersr   r]   s     r   test_vmem_buffersz'FreeBSDSystemTestCase.test_vmem_buffers@  s6    n%!!#++T9J 	 	
r#   zmuse not installedc                 v    t        d      }| j                  t        j                         j                  |       y )NTotal)r   r=   r7   ra   rL   rb   s     r   test_muse_vmem_totalz*FreeBSDSystemTestCase.test_muse_vmem_totalI  s*    7m..066<r#   c                     t        d      }| j                  t        j                         j                  |t
               y )NActiver   )r   r   r7   ra   r   r   rb   s     r   test_muse_vmem_activez+FreeBSDSystemTestCase.test_muse_vmem_activeN  s7     8n!!#**C7H 	 	
r#   c                     t        d      }| j                  t        j                         j                  |t
               y )NInactiver   )r   r   r7   ra   r   r   rb   s     r   test_muse_vmem_inactivez-FreeBSDSystemTestCase.test_muse_vmem_inactiveV  s8     :!!#,,c9J 	 	
r#   c                     t        d      }| j                  t        j                         j                  |t
               y )NWiredr   )r   r   r7   ra   r   r   rb   s     r   test_muse_vmem_wiredz*FreeBSDSystemTestCase.test_muse_vmem_wired^  s7     7m!!#))36G 	 	
r#   c                     t        d      }| j                  t        j                         j                  |t
               y )NCacher   )r   r   r7   ra   r   r   rb   s     r   test_muse_vmem_cachedz+FreeBSDSystemTestCase.test_muse_vmem_cachedf  s7     7m!!#**C7H 	 	
r#   c                     t        d      }| j                  t        j                         j                  |t
               y )NFreer   )r   r   r7   ra   rN   r   rb   s     r   test_muse_vmem_freez)FreeBSDSystemTestCase.test_muse_vmem_freen  s7     6l!!#((#5F 	 	
r#   c                     t        d      }| j                  t        j                         j                  |t
               y )NBufferr   )r   r   r7   ra   r   r   rb   s     r   test_muse_vmem_buffersz,FreeBSDSystemTestCase.test_muse_vmem_buffersv  s7     8n!!#++S8I 	 	
r#   c                 v    | j                  t        j                         j                  t	        d      d       y )Nzvm.stats.sys.v_swtch  r   )r   r7   	cpu_statsctx_switchesr   r>   s    r   test_cpu_stats_ctx_switchesz1FreeBSDSystemTestCase.test_cpu_stats_ctx_switches~  s3    ++)* 	 	
r#   c                 v    | j                  t        j                         j                  t	        d      d       y )Nzvm.stats.sys.v_intrr   r   )r   r7   r   
interruptsr   r  s    r   test_cpu_stats_interruptsz/FreeBSDSystemTestCase.test_cpu_stats_interrupts  s3    ))() 	 	
r#   c                 v    | j                  t        j                         j                  t	        d      d       y )Nzvm.stats.sys.v_softr   r   )r   r7   r   soft_interruptsr   r  s    r   test_cpu_stats_soft_interruptsz4FreeBSDSystemTestCase.test_cpu_stats_soft_interrupts  s3    ..() 	 	
r#   c                 v    | j                  t        j                         j                  t	        d      d       y )Nzvm.stats.sys.v_syscalli@ r   )r   r7   r   syscallsr   r  s    r   test_cpu_stats_syscallsz-FreeBSDSystemTestCase.test_cpu_stats_syscalls  s5     	''+, 	 	
r#   c                     | j                         \  }}}| j                  t        j                         j                  |t
               y Nr   )r   r   r7   swap_memoryrN   r   r>   rL   rM   rN   s       r   test_swapmem_freez'FreeBSDSystemTestCase.test_swapmem_free  A     //1tT %%t3D 	 	
r#   c                     | j                         \  }}}| j                  t        j                         j                  |t
               y r  )r   r   r7   r  rM   r   r  s       r   test_swapmem_usedz'FreeBSDSystemTestCase.test_swapmem_used  r  r#   c                     | j                         \  }}}| j                  t        j                         j                  |t
               y r  )r   r   r7   r  rL   r   r  s       r   test_swapmem_totalz(FreeBSDSystemTestCase.test_swapmem_total  sA     //1tT &&5F 	 	
r#   c                     t        d      }||j                  d      dz   d  }|d |j                  d       }t        |      }| j                  |t	        j
                                y )Nzsysctl kern.boottimez sec =    ,)r   r   r   r=   r7   	boot_time)r>   sbtimes      r   test_boot_timez$FreeBSDSystemTestCase.test_boot_time  s^    )*affY!#%&msA 0 0 23r#   z
no batteryc           	         d }t        d      }t        |j                  d      D cg c]*  }|j                  d      d   |j                  d      d   f, c}      }t        j                         }t        |d   j                  dd	            }|d
   }| j                  |j                  |       |dk(  r+| j                  |j                  t        j                         y | j                   ||j                        |       y c c}w )Nc                 L    t        | d      \  }}t        |d      \  }}d||fz  S )N<   z%d:%02d)divmod)secsmr  hs       r   
secs2hoursz>FreeBSDSystemTestCase.test_sensors_battery.<locals>.secs2hours  s0    $#DAq!R=DAq1v%%r#   zacpiconf -i 0r   	r   r   zRemaining capacity:%r4   zRemaining time:unknown)r   dictr   r7   sensors_batteryr   r5   r=   percentsecsleftPOWER_TIME_UNLIMITED)r>   r$  r!   xr   metricsr*  remaining_times           r   test_sensors_batteryz*FreeBSDSystemTestCase.test_sensors_battery  s    	&
 !<?IIdOLqaggdmAb 12L
 ((*f23;;CDE 12'2Y&W--v/J/JKZ(8(89>J Ms   /Dc                    | j                  t        j                         j                  t	        d             | j                  t        j                         j
                  t	        d      dk(         t        j                         j                  }|dk  r| j                  t	        d      d       y | j                  |t	        d      dz         y )Nhw.acpi.battery.lifehw.acpi.acliner   r   hw.acpi.battery.timer   r  )r=   r7   r)  r*  r   power_pluggedr+  )r>   r+  s     r   #test_sensors_battery_against_sysctlz9FreeBSDSystemTestCase.test_sensors_battery_against_sysctl  s    ""$,,f5K.L	
 	""$22#$)	
 ))+44a<V$:;R@Xv.D'E'JKr#   zhas batteryc                     | j                  t              5  t        d       t        d       t        d       d d d        | j                  t	        j
                                y # 1 sw Y   -xY w)Nr2  r4  r3  )assertRaisesro   r   assertIsNoner7   r)  r  s    r   test_sensors_battery_no_batteryz5FreeBSDSystemTestCase.test_sensors_battery_no_battery  s[    
 |, 	%)*)*#$	% 	&0023		% 	%s   "A$$A-c                    t        j                  d      }t        |      D ]  }d|z  }	 t        t	        t        |      d d             }| j                  t        j                         d   |   j                  d       d|z  }t        t	        t        |      d d             }| j                  t        j                         d   |   j                  |        y # t        $ r | j                  d       Y w xY w)	NTzdev.cpu.%s.temperaturer   z$temperatures not supported by kernelcoretempr   r   zdev.cpu.%s.coretemp.tjmax)r7   r\   ranger   r   r   ro   r   r   sensors_temperaturesr   r=   high)r>   num_cpuscpur   r   s        r   (test_sensors_temperatures_against_sysctlz>FreeBSDSystemTestCase.test_sensors_temperatures_against_sysctl  s    ##D)? 	C-3FF #E&."*=$> ? ""++-j9#>FF #  136FfVnSb&9 :;M++-j9#>CC	
   FDEFs    CC98C9N)$rs   rt   ru   staticmethodr   r   r
   r   r   r   r   r   r   rx   ry   MUSE_AVAILABLEr   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r   r0  r6  r:  rB  rz   r#   r   r   r      s   
! 
!:, 
 
 
 
 
 
 
 
 
 
 
 
 X__')=>= ?= X__')=>
  ?
 X__')=>
  ?
 X__')=>
  ?
 X__')=>
  ?
 X__')=>
  ?
 X__')=>
  ?



 
 



4 X___l3K 4K& X___l3L 4L X__[-04 14r#   r   zOPENBSD onlyc                       e Zd Zd Zy)OpenBSDTestCasec                     t        d      }t        j                  j                  |d      }t        j                  j                  t	        j
                               }| j                  ||       y )Nzkern.boottimez%a %b %d %H:%M:%S %Y)r   datetimestrptimefromtimestampr7   r  r=   )r>   r  sys_bt	psutil_bts       r   r  zOpenBSDTestCase.test_boot_time  sT    ?#""++A/EF%%33F4D4D4FG	+r#   N)rs   rt   ru   r  rz   r#   r   rF  rF    s    ,r#   rF  zNETBSD onlyc                   X    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zy)NetBSDTestCasec                     t        d      5 }|D ]=  }|j                  |       st        |j                         d         dz  c cd d d        S  	 d d d        t	        d| z        # 1 sw Y   xY w)Nz/proc/meminfor   rG   zcan't find %s)openr   r   r   r   )look_forfr"   s      r   parse_meminfozNetBSDTestCase.parse_meminfo  sr    /" 	7a 7??8,tzz|A/$66	7 	77	7 8344		7 	7s   A& A&A&&A/c                 ~    | j                  t        j                         j                  | j	                  d             y )Nz	MemTotal:)r=   r7   ra   rL   rS  r  s    r   test_vmem_totalzNetBSDTestCase.test_vmem_total%  s/    !!#))4+=+=k+J	
r#   c                     | j                  t        j                         j                  | j	                  d      t
               y )NzMemFree:r   )r   r7   ra   rN   rS  r   r  s    r   r   zNetBSDTestCase.test_vmem_free*  s8    !!#((z*# 	 	
r#   c                     | j                  t        j                         j                  | j	                  d      t
               y )NzBuffers:r   )r   r7   ra   r   rS  r   r  s    r   r   z NetBSDTestCase.test_vmem_buffers1  s8    !!#++z*# 	 	
r#   c                     | j                  t        j                         j                  | j	                  d      t
               y )Nz
MemShared:r   )r   r7   ra   sharedrS  r   r  s    r   test_vmem_sharedzNetBSDTestCase.test_vmem_shared8  s8    !!#**|,# 	 	
r#   c                     | j                  t        j                         j                  | j	                  d      t
               y )NzCached:r   )r   r7   ra   r   rS  r   r  s    r   r   zNetBSDTestCase.test_vmem_cached?  s8    !!#**y)# 	 	
r#   c                     | j                  t        j                         j                  | j	                  d      t
               y )Nz
SwapTotal:r   )r   r7   r  rL   rS  r   r  s    r   r  z!NetBSDTestCase.test_swapmem_totalH  s8     &&|,# 	 	
r#   c                     | j                  t        j                         j                  | j	                  d      t
               y )Nz	SwapFree:r   )r   r7   r  rN   rS  r   r  s    r   r  z NetBSDTestCase.test_swapmem_freeO  s8     %%{+# 	 	
r#   c                     t        j                         }| j                  |j                  |j                  |j
                  z
         y r'   )r7   r  r=   rM   rL   rN   )r>   smems     r   r  z NetBSDTestCase.test_swapmem_usedV  s1    !!#DJJ$:;r#   c                 *   t        dd      5 }|D ]1  }|j                  d      st        |j                         d         } n t	        d      	 d d d        | j                  t        j                         j                  d       y # 1 sw Y   :xY w)N
/proc/statrbs   intrr   couldn't find liner   r   )	rP  r   r   r   r   r   r7   r   r  )r>   rR  r"   r  s       r   r  z(NetBSDTestCase.test_cpu_stats_interrupts\  s    ,% 	7 7??7+!$TZZ\!_!5J7
 !!566 		7 	)):T 	 	
	7 	7   B	*B		Bc                 *   t        dd      5 }|D ]1  }|j                  d      st        |j                         d         } n t	        d      	 d d d        | j                  t        j                         j                  d       y # 1 sw Y   :xY w)Nra  rb  s   ctxtr   rc  r   r   )	rP  r   r   r   r   r   r7   r   r   )r>   rR  r"   r   s       r   r  z*NetBSDTestCase.test_cpu_stats_ctx_switchesh  s    ,% 	7 7??7+#&tzz|A#7L7
 !!566 		7 	++\ 	 	
	7 	7rd  N)rs   rt   ru   rC  rS  rU  r   r   rZ  r   r  r  r  r  r  rz   r#   r   rN  rN    sF    5 5







<



r#   rN  __main__)run_from_name)%rv   rH  osrm   r:   rx   r7   r   r   r   r   psutil.testsr   r   r	   r
   r   r   r   r   psutil._psutil_posixr   r   getuidrD  r   r   ry   r%   r|   r   rF  rN  rs   psutil.tests.runnerrg  __file__rz   r#   r   <module>rn     s   +  	 	        $ * ' )  ' "  0}HRYY[A%7%-NHN   S*%G. G &G^ Wn-XLN XL .XLv Wn-JN J .Jd Wn-,n , ., V]+X
^ X
 ,X
v z1( r#   