
    XhN                        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r6ddlmZ  e       Z ej.                         dk(  xr  ej0                  d      ZndZdZd Zd Zej8                  j;                  e d       G d de             Zej8                  j;                  e d       G d de             Zej8                  j;                  e d       G d de             Z ej8                  j;                  e
 d       G d de             Z!ej8                  j;                  e	 d        G d! d"e             Z"y)#z$Tests specific to all BSD platforms.    N)BSD)FREEBSD)NETBSD)OPENBSD)HAS_BATTERY)TOLERANCE_SYS_MEM)PsutilTestCase)pytest)retry_on_failure)sh)spawn_testproc)	terminate)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     a/var/www/html/cjf29f/d23bf782/d32178f2/venv/lib/python3.12/site-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 onlyreasonc                      e Zd ZdZed        Zed        Zej                  j                  e
d      d        Zd Zej                  j                   ej                  d       d	      d
        Zej                  j                   ej                  d       d	      ej                  j                  e
d      d               Zej                  j                   ej                  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.setUpClassO        "&&r#   c                 .    t        | j                         y r)   r   r+   r,   s    r   tearDownClasszBSDTestCase.tearDownClassS       #''r#   z -o lstart doesn't work on NETBSDr$   c                 .   t        d| j                         }|j                  dd      j                         }t	        j
                  | j                        j                         }t        j                  dt        j                  |            }||k(  sJ y )Nzps -o lstart -p STARTED z%a %b %e %H:%M:%S %Y)
r   r+   replacestrippsutilProcesscreate_timetimestrftime	localtime)selfoutputstart_psstart_psutils       r   test_process_create_timez$BSDTestCase.test_process_create_timeW   sx    &txxj12>>)R0668~~dhh/;;=}}"DNN<$@
 <'''r#   c                    d }t        j                  d      D ]  }t        j                  |j                        } ||j                        \  }}}}|j                  |k(  sJ |j
                  |k(  s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|  d      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 ""r   r      noner6      )r   r8   r   popr   )pathr!   linesr"   devtotalusedfrees           r   dfz"BSDTestCase.test_disks.<locals>.dfd   s    wtfA&'--/CIIdOEIIaL99Q<D%)ZZ\"1%5"Cdf}J%Et9t#Dt9t#DtT))r#   F)alli   zpsutil=z, df=)
r9   disk_partitions
disk_usage
mountpointdevicerN   absrP   failrO   )r?   rQ   partusagerM   rN   rO   rP   s           r   
test_diskszBSDTestCase.test_disksa   s    	* **u5 		CD%%doo6E%'%8"Cd;;#%%%;;%'''5::$%(88ii'%**U4& ABB5::$%(88ii'%**U4& ABB		Cr#   r   zsysctl cmd not availablec                 P    t        d      }t        j                  d      |k(  sJ y )Nzhw.ncpuT)logical)r   r9   	cpu_countr?   systs     r   test_cpu_count_logicalz"BSDTestCase.test_cpu_count_logical|   s'     i -555r#   zskipped on NETBSDc                 `    t        d      }|t        j                         j                  k(  sJ y )Nz
hw.physmem)r   r9   virtual_memoryrN   r?   nums     r   test_virtual_memory_totalz%BSDTestCase.test_virtual_memory_total   s+     \"f++-33333r#   ifconfigzifconfig cmd not availablec                 &   t        j                         j                         D ]]  \  }}	 t        d|       }|j                  d|v k(  sJ d|v s-|j
                  t        t        j                  d|      d         k(  r]J  y # t        $ r Y lw xY w)Nz	ifconfig RUNNINGmtuz	mtu (\d+)r   )
r9   net_if_statsitemsr   isuprj   r   refindallRuntimeError)r?   namestatsr!   s       r   test_net_if_statszBSDTestCase.test_net_if_stats   s     "..0668 	NKD%N9TF+, zzi3&6777C< 99BJJ|S,I!,L(MMMM	N   s   B	BBN)__name__
__module____qualname____doc__classmethodr.   r2   r
   markskipifr   rC   r[   shutilwhichra   rf   rs    r#   r   r'   r'   K   s5   3' '   [['IJ( K(C6 [[FLL""+E  66 [[FLL""+E   [[*  44 [[FLL$$-I  	N	N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)   r1   r,   s    r   r2   z#FreeBSDPsutilTestCase.tearDownClass   r3   r#   c                    t        d| j                         }t        j                  | j                        j	                  d      }|j                  d      dd  }|r|j                         }|j                         }|d d \  }}}}	}
|j                         }| d| |j                  k(  sJ t        |
      |j                  k(  sJ |j                  j                  d      s|d	   |j                  k(  sJ |ry y )
Nzprocstat -v F)groupedr   r      -[
   )r   r+   r9   r:   memory_mapsr   rJ   addrr   rssrK   r   )r?   r!   mapsrL   r"   fields_startstop_permsresmaps               r   test_memory_mapsz&FreeBSDPsutilTestCase.test_memory_maps   s    <z*+~~dhh'33E3B		$#99;DZZ\F*0!*'AudFC((*CWAdV$000s8sww&&&88&&s+bzSXX--- r#   c                     t        d| j                         }t        j                  | j                        j	                         |j                  d      d   j                         d   k(  sJ y )Nzprocstat -b r   r   )r   r+   r9   r:   exer   r?   r!   s     r   test_exezFreeBSDPsutilTestCase.test_exe   sV    <z*+~~dhh'++-41C1I1I1KB1OOOOr#   c                    t        d| j                         }dj                  t        j                  | j                        j                               dj                  |j                  d      d   j                         dd        k(  sJ y )Nzprocstat -c  r   r   r   )r   r+   joinr9   r:   r   r   r   s     r   test_cmdlinez"FreeBSDPsutilTestCase.test_cmdline   st    <z*+xxtxx088:;sxxIIdOA$$&qr*@
 
 	
 
r#   c                 B   t        d| j                         }|j                  d      d   j                         dd \  }}}}}}t        j                  | j                        }|j                         }	|j                         }
|	j                  t        |      k(  sJ |	j                  t        |      k(  sJ |	j                  t        |      k(  sJ |
j                  t        |      k(  sJ |
j                  t        |      k(  sJ |
j                  t        |      k(  sJ y )Nzprocstat -s r   r   r      )r   r+   r   r9   r:   uidsgidsrealr   	effectivesaved)r?   r!   euidruidsuidegidrgidsgidpr   r   s              r   test_uids_gidsz$FreeBSDPsutilTestCase.test_uids_gids   s    <z*+-0YYt_Q-?-E-E-G!-L*dD$dNN488$vvxvvxyyCI%%%~~T***zzSY&&&yyCI%%%~~T***zzSY&&&r#   c                 \   g }t        d| j                         }t        j                  | j                        }|j	                  d      D ]  }|j                         j                         }d|v rOt        |j	                         d         }|j                         j                  }||k(  sJ |j                  d        td|v syt        |j	                         d         }|j                         j                  }||k(  sJ |j                  d         t        |      dk7  rt        d      y )Nprocstat -r r   z voluntary contextr   z involuntary contextr   )couldn't find lines match in procstat out)r   r+   r9   r:   r   lowerr8   r   num_ctx_switches	voluntaryappendinvoluntarylenrp   r?   testedr!   r   r"   pstat_valuepsutil_values          r   test_ctx_switchesz'FreeBSDPsutilTestCase.test_ctx_switches   s   <z*+NN488$IIdO 	$D::<%%'D#t+!$**,r"23 113=="l222d#'4/!$**,r"23 113??"l222d#	$ v;!JKK r#   c                    g }t        d| j                         }t        j                  | j                        }|j	                  d      D ]  }|j                         j                         }d|v rdt        d|j	                         d   j	                  d      d   z         }|j                         j                  }||k(  sJ |j                  d        d|v st        d|j	                         d   j	                  d      d   z         }|j                         j                  }||k(  sJ |j                  d         t        |      dk7  rt        d	      y )
Nr   r   z	user timez0.r   .zsystem timer   r   )r   r+   r9   r:   r   r   r8   float	cpu_timesuserr   systemr   rp   r   s          r   test_cpu_timesz$FreeBSDPsutilTestCase.test_cpu_times   s2   <z*+NN488$IIdO 	$D::<%%'Dd"#D4::<+;+A+A#+Fr+J$JK {{}11"l222d#$&#D4::<+;+A+A#+Fr+J$JK {{}33"l222d#	$ v;!JKK r#   N)rt   ru   rv   rx   r.   r2   r   r   r   r   r   r   r   r}   r#   r   r   r      s    ' '   . .P
' L L& L Lr#   r   c                   N   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                  j                  e d	
      d        Zej                  j                  e d	
       e       d               Zej                  j                  e d	
       e       d               Zej                  j                  e d	
       e       d               Zej                  j                  e d	
       e       d               Zej                  j                  e d	
       e       d               Zej                  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                  j                  e  d
      d        Z!ej                  j                  e  d
      d        Z"ej                  j                  e d
      d        Z#d Z$y )!FreeBSDSystemTestCasec                      t        d      j                         d   } t        j                  d|       }|st	        d|        d |dd D        \  }}}|||fS )Nzswapinfo -kr   z\s+zCan't parse swapinfo: c              3   8   K   | ]  }t        |      d z    yw)rI   N)r   ).0r   s     r   	<genexpr>z7FreeBSDSystemTestCase.parse_swapinfo.<locals>.<genexpr>  s     ?qSVd]?s   r   rG   )r   
splitlinesrn   r   r   )r@   partsrN   rO   rP   s        r   parse_swapinfoz$FreeBSDSystemTestCase.parse_swapinfo   si     M"--/3(5fX>?? @E!AJ?tTdD  r#   c                    d}	 t        t        |            }t        j                         j                  |k(  sJ d}t        |      }t        |j                         d   j                  d      d         }t        |j                         d   j                  d      d         }t        j                         j                  |k(  sJ t        j                         j                  |k(  sJ y # t        $ r t        j                  d      w xY w)Nzdev.cpu.0.freqz#frequencies not supported by kernelzdev.cpu.0.freq_levelsr   /r   )r   r   rp   r
   skipr9   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     "	Ev/M  ((M999(v }**,Q/55c:1=>}**,R066s;A>? $$000 $$000  	E++CDD	Es   C+ +D
c                     t        d      t        z  }t        t        j                         j
                  |z
        t        k  sJ y )Nzvm.stats.vm.v_active_count)r   PAGESIZErW   r9   rc   activer   r_   s     r   test_vmem_activez&FreeBSDSystemTestCase.test_vmem_active  s:    23h>6((*11D89<MMMMr#   c                     t        d      t        z  }t        t        j                         j
                  |z
        t        k  sJ y )Nzvm.stats.vm.v_inactive_count)r   r   rW   r9   rc   inactiver   r_   s     r   test_vmem_inactivez(FreeBSDSystemTestCase.test_vmem_inactive$  s:    45@6((*33d:;>OOOOr#   c                     t        d      t        z  }t        t        j                         j
                  |z
        t        k  sJ y )Nzvm.stats.vm.v_wire_count)r   r   rW   r9   rc   wiredr   r_   s     r   test_vmem_wiredz%FreeBSDSystemTestCase.test_vmem_wired)  s:    01H<6((*00478;LLLLr#   c                     t        d      t        z  }t        t        j                         j
                  |z
        t        k  sJ y )Nzvm.stats.vm.v_cache_count)r   r   rW   r9   rc   cachedr   r_   s     r   test_vmem_cachedz&FreeBSDSystemTestCase.test_vmem_cached.  s:    12X=6((*11D89<MMMMr#   c                     t        d      t        z  }t        t        j                         j
                  |z
        t        k  sJ y )Nzvm.stats.vm.v_free_count)r   r   rW   r9   rc   rP   r   r_   s     r   test_vmem_freez$FreeBSDSystemTestCase.test_vmem_free3  s:    01H<6((*//$67:KKKKr#   c                     t        d      }t        t        j                         j                  |z
        t
        k  sJ y )Nzvfs.bufspace)r   rW   r9   rc   buffersr   r_   s     r   test_vmem_buffersz'FreeBSDSystemTestCase.test_vmem_buffers8  s4    n%6((*22T9:=NNNNr#   zmuse not installedr$   c                 `    t        d      }t        j                         j                  |k(  sJ y )NTotal)r   r9   rc   rN   rd   s     r   test_muse_vmem_totalz*FreeBSDSystemTestCase.test_muse_vmem_total?  s(    7m$$&,,333r#   c                     t        d      }t        t        j                         j                  |z
        t
        k  sJ y )NActive)r   rW   r9   rc   r   r   rd   s     r   test_muse_vmem_activez+FreeBSDSystemTestCase.test_muse_vmem_activeD  s5     8n6((*11C78;LLLLr#   c                     t        d      }t        t        j                         j                  |z
        t
        k  sJ y )NInactive)r   rW   r9   rc   r   r   rd   s     r   test_muse_vmem_inactivez-FreeBSDSystemTestCase.test_muse_vmem_inactiveJ  s6     :6((*33c9:=NNNNr#   c                     t        d      }t        t        j                         j                  |z
        t
        k  sJ y )NWired)r   rW   r9   rc   r   r   rd   s     r   test_muse_vmem_wiredz*FreeBSDSystemTestCase.test_muse_vmem_wiredP  s5     7m6((*00367:KKKKr#   c                     t        d      }t        t        j                         j                  |z
        t
        k  sJ y )NCache)r   rW   r9   rc   r   r   rd   s     r   test_muse_vmem_cachedz+FreeBSDSystemTestCase.test_muse_vmem_cachedV  s5     7m6((*11C78;LLLLr#   c                     t        d      }t        t        j                         j                  |z
        t
        k  sJ y )NFree)r   rW   r9   rc   rP   r   rd   s     r   test_muse_vmem_freez)FreeBSDSystemTestCase.test_muse_vmem_free\  s5     6l6((*//#569JJJJr#   c                     t        d      }t        t        j                         j                  |z
        t
        k  sJ y )NBuffer)r   rW   r9   rc   r   r   rd   s     r   test_muse_vmem_buffersz,FreeBSDSystemTestCase.test_muse_vmem_buffersb  s5     8n6((*22S89<MMMMr#   c                 t    t        t        j                         j                  t	        d      z
        dk  sJ y )Nzvm.stats.sys.v_swtch  )rW   r9   	cpu_statsctx_switchesr   r?   s    r   test_cpu_stats_ctx_switchesz1FreeBSDSystemTestCase.test_cpu_stats_ctx_switchesh  s>      "///01 		
r#   c                 t    t        t        j                         j                  t	        d      z
        dk  sJ y )Nzvm.stats.sys.v_intrr   )rW   r9   r   
interruptsr   r  s    r   test_cpu_stats_interruptsz/FreeBSDSystemTestCase.test_cpu_stats_interruptsq  s6      "--7L0MMN	
r#   c                 t    t        t        j                         j                  t	        d      z
        dk  sJ y )Nzvm.stats.sys.v_softr   )rW   r9   r   soft_interruptsr   r  s    r   test_cpu_stats_soft_interruptsz4FreeBSDSystemTestCase.test_cpu_stats_soft_interruptsw  s>      "22./0 		
r#   c                 t    t        t        j                         j                  t	        d      z
        dk  sJ y )Nzvm.stats.sys.v_syscalli@ )rW   r9   r   syscallsr   r  s    r   test_cpu_stats_syscallsz-FreeBSDSystemTestCase.test_cpu_stats_syscalls  s8       "++f5M.NNO	
r#   c                     | j                         \  }}}t        t        j                         j                  |z
        t
        k  sJ y r)   )r   rW   r9   swap_memoryrP   r   )r?   _total_usedrP   s       r   test_swapmem_freez'FreeBSDSystemTestCase.test_swapmem_free  s?    "113t6%%',,t347HHHHr#   c                     | j                         \  }}}t        t        j                         j                  |z
        t
        k  sJ y r)   )r   rW   r9   r  rO   r   )r?   r  rO   _frees       r   test_swapmem_usedz'FreeBSDSystemTestCase.test_swapmem_used  s?    "113e6%%',,t347HHHHr#   c                     | j                         \  }}}t        t        j                         j                  |z
        t
        k  sJ y r)   )r   rW   r9   r  rN   r   )r?   rN   r  r  s       r   test_swapmem_totalz(FreeBSDSystemTestCase.test_swapmem_total  s?    "113ue6%%'--569JJJJr#   c                     t        d      }||j                  d      dz   d  }|d |j                  d       }t        |      }|t        j                         k(  sJ y )Nzsysctl kern.boottimez sec =    ,)r   r   r   r9   	boot_time)r?   sbtimes      r   test_boot_timez$FreeBSDSystemTestCase.test_boot_time  s\    )*affY!#%&msA((****r#   z
no batteryc                    d }t        d      }|j                  d      D ci c])  }|j                  d      d   |j                  d      d   + }}t        j                         }t	        |d   j                  dd	            }|d
   }|j                  |k(  sJ |dk(  r |j                  t        j                  k(  sJ y  ||j                        |k(  sJ y c c}w )Nc                 r    t        | d      \  }}t        |d      \  }}t        |       dt        |      dS )N<   :02)divmodr   )secsm_shs       r   
secs2hoursz>FreeBSDSystemTestCase.test_sensors_battery.<locals>.secs2hours  s<    4$EAr!R=DAq!fXQs1vbk**r#   zacpiconf -i 0r   	r   r   zRemaining capacity:%r6   zRemaining time:unknown)	r   r   r9   sensors_batteryr   r7   percentsecsleftPOWER_TIME_UNLIMITED)r?   r'  r!   xr   metricsr,  remaining_times           r   test_sensors_batteryz*FreeBSDSystemTestCase.test_sensors_battery  s    	+
 !?ByyO!!''$-"AGGDM"$55OO((*f23;;CDE 12')))Y&##v'B'BBBBg../>AAA Ps   .Cc                 H   t        j                         j                  t        d      k(  sJ t        j                         j                  t        d      dk(  k(  sJ t        j                         j
                  }|dk  rt        d      dk(  sJ y |t        d      dz  k(  sJ y )Nhw.acpi.battery.lifehw.acpi.acliner   r   hw.acpi.battery.timer   r  )r9   r+  r,  r   power_pluggedr-  )r?   r-  s     r   #test_sensors_battery_against_sysctlz9FreeBSDSystemTestCase.test_sensors_battery_against_sysctl  s    %%'//6"4
 
 	
 
 %%'55#$)
 	
 
 ))+44a<01R777v&<=BBBBr#   zhas batteryc                     t        j                  t              5  t        d       t        d       t        d       d d d        t	        j
                         J y # 1 sw Y    xY w)Nr4  r6  r5  )r
   raisesrp   r   r9   r+  r  s    r   test_sensors_battery_no_batteryz5FreeBSDSystemTestCase.test_sensors_battery_no_battery  sW    
 ]]<( 	%)*)*#$	% %%'///		% 	%s   "AA$c                    t        j                  d      }t        |      D ]  }d| d}	 t        t	        t        |      d d             }t        t        j                         d   |   j                  |z
        dk  sJ d| d}t        t	        t        |      d d             }t        j                         d   |   j                  |k(  rJ  y # t        $ r t        j                  d      w xY w)	NTzdev.cpu.z.temperaturer   z$temperatures not supported by kernelcoretempr   z.coretemp.tjmax)r9   r^   ranger   r   r   rp   r
   r   rW   sensors_temperaturesr   high)r?   num_cpuscpur   r   s        r   (test_sensors_temperatures_against_sysctlz>FreeBSDSystemTestCase.test_sensors_temperatures_against_sysctl  s   ##D)? 	CuL1FJ #E&."*=$> ? //1*=cBJJ#$ 	  uO4FfVnSb&9 :;M++-j9#>CC !!%	
   Jkk"HIIJs    CC1N)%rt   ru   rv   staticmethodr   r   r   r   r   r   r   r   r   r
   ry   rz   MUSE_AVAILABLEr   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r   r2  r8  r;  rC  r}   r#   r   r   r      s   
! 
!1, N N P P M M N N L L O O [[N*3GH4 I4 [[N*3GHM  IM [[N*3GHO  IO [[N*3GHL  IL [[N*3GHM  IM [[N*3GHK  IK [[N*3GHN  IN


 
 
IIK+ [[K=B >B" [[K=C >C [[M:0 ;0r#   r   zOPENBSD onlyc                       e Zd Zd Zy)OpenBSDTestCasec                     t        d      }t        j                  j                  |d      }t        j                  j                  t	        j
                               }||k(  sJ y )Nzkern.boottimez%a %b %d %H:%M:%S %Y)r   datetimestrptimefromtimestampr9   r  )r?   r  sys_bt	psutil_bts       r   r  zOpenBSDTestCase.test_boot_time  sR    ?#""++A/EF%%33F4D4D4FG	"""r#   N)rt   ru   rv   r  r}   r#   r   rG  rG    s    #r#   rG  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|        # 1 sw Y   xY w)Nz/proc/meminfor   rI   zcan't find )openr   r   r   r   )look_forfr"   s      r   parse_meminfozNetBSDTestCase.parse_meminfo   st    /" 	7a 7??8,tzz|A/$66	7 	77	7 ;xj122		7 	7s   A& A&A&&A/c                 h    t        j                         j                  | j                  d      k(  sJ y )Nz	MemTotal:)r9   rc   rN   rT  r  s    r   test_vmem_totalzNetBSDTestCase.test_vmem_total
  s*    $$&,,0B0B;0OOOOr#   c                     t        t        j                         j                  | j	                  d      z
        t
        k  sJ y )NzMemFree:)rW   r9   rc   rP   rT  r   r  s    r   r   zNetBSDTestCase.test_vmem_free  s;    %%',,t/A/A*/MMN 	
 r#   c                     t        t        j                         j                  | j	                  d      z
        t
        k  sJ y )NzBuffers:)rW   r9   rc   r   rT  r   r  s    r   r   z NetBSDTestCase.test_vmem_buffers  sC    %%'//$$Z01  	 	
 r#   c                     t        t        j                         j                  | j	                  d      z
        t
        k  sJ y )Nz
MemShared:)rW   r9   rc   sharedrT  r   r  s    r   test_vmem_sharedzNetBSDTestCase.test_vmem_shared  sC    %%'..$$\23  	 	
 r#   c                     t        t        j                         j                  | j	                  d      z
        t
        k  sJ y )NzCached:)rW   r9   rc   r   rT  r   r  s    r   r   zNetBSDTestCase.test_vmem_cached%  s;    %%'..1C1CI1NNO 	
 r#   c                     t        t        j                         j                  | j	                  d      z
        t
        k  sJ y )Nz
SwapTotal:)rW   r9   r  rN   rT  r   r  s    r   r  z!NetBSDTestCase.test_swapmem_total-  s;    ""$**T-?-?-MMN 	
 r#   c                     t        t        j                         j                  | j	                  d      z
        t
        k  sJ y )Nz	SwapFree:)rW   r9   r  rP   rT  r   r  s    r   r  z NetBSDTestCase.test_swapmem_free3  s;    ""$))D,>,>{,KKL 	
 r#   c                 |    t        j                         }|j                  |j                  |j                  z
  k(  sJ y r)   )r9   r  rO   rN   rP   )r?   smems     r   r  z NetBSDTestCase.test_swapmem_used9  s/    !!#yyDJJ2222r#   c                 (   t        dd      5 }|D ]1  }|j                  d      st        |j                         d         } n t	        d      	 d d d        t        t        j                         j                  z
        dk  sJ y # 1 sw Y   9xY w)N
/proc/statrbs   intrr   couldn't find liner   )	rQ  r   r   r   r   rW   r9   r   r  )r?   rS  r"   r  s       r   r  z(NetBSDTestCase.test_cpu_stats_interrupts?  s    ,% 	7 7??7+!$TZZ\!_!5J7
 !!566 		7 6##%00:=>EEE	7 	7   B*BBc                 (   t        dd      5 }|D ]1  }|j                  d      st        |j                         d         } n t	        d      	 d d d        t        t        j                         j                  z
        dk  sJ y # 1 sw Y   9xY w)Nrb  rc  s   ctxtr   rd  r   )	rQ  r   r   r   r   rW   r9   r   r   )r?   rS  r"   r   s       r   r  z*NetBSDTestCase.test_cpu_stats_ctx_switchesI  s    ,% 	7 7??7+#&tzz|A#7L7
 !!566 		7 6##%22\ABTIII	7 	7re  N)rt   ru   rv   rD  rT  rV  r   r   r[  r   r  r  r  r  r  r}   r#   r   rO  rO    sI    3 3P





3FJr#   rO  )#rw   rI  osrn   r{   r<   r9   r   r   r   r   psutil.testsr   r   r	   r
   r   r   r   r   psutil._psutil_posixr   r   getuidr|   rE  r   r   ry   rz   r'   r   r   rG  rO  r}   r#   r   <module>rk     s   +  	 	        $ * '  )  ' " 0}HRYY[A%>,&,,v*>NHN   GJ/MN. MN 0MNj K7ULN UL 8ULp K7mN m 8mj K7#n # 8# J}5RJ^ RJ 6RJr#   