
    gN                        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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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                  j9                  e d       G d de             Zej6                  j9                  e d       G d de             Zej6                  j9                  e d       G d de             Zej6                  j9                  e	 d       G d d e             Z ej6                  j9                  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)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     J/var/www/openai/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   <   sO    
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d       d	      d
        Zej                  j                   ed       d	      ej                  j                  e
d      d               Zej                  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 NETBSDr%   c                 .   t        d| j                  z        }|j                  dd      j                         }t	        j
                  | j                        j                         }t        j                  dt        j                  |            }||k(  s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)selfoutputstart_psstart_psutils       r   test_process_create_timez$BSDTestCase.test_process_create_timeX   sv    (48834>>)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| 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      noner7      )r   r9   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=)
r:   disk_partitions
disk_usage
mountpointdevicerN   absrP   failrO   )r@   rQ   partusagerM   rN   rO   rP   s           r   
test_diskszBSDTestCase.test_disksb   s    	* **u5D%%doo6E%'%8"Cd;;#%%%;;%'''5::$%(88iiejj$ GHH5::$%(88iiejj$ GHH 6r$   r   zsysctl cmd not availablec                 P    t        d      }t        j                  d      |k(  sJ y )Nzhw.ncpuT)logical)r   r:   	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   r:   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|z        }|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 %sRUNNINGmtuz	mtu (\d+)r   )
r:   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8KD%N-. zzi3&6777C< 99BJJ|S,I!,L(MMMM 9   s   B	BBN)__name__
__module____qualname____doc__classmethodr/   r3   r
   markskipifr   rD   r[   r   ra   rf   rs    r$   r   r(   r(   L   s   3' '   [['IJ( K(I6 [[E(O+4NO6 P6 [[E(O+4NO[[*  4 P4 [[*&B  	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   r0   r$   c                 .    t        | j                         y r*   r2   r-   s    r   r3   z#FreeBSDPsutilTestCase.tearDownClass   r4   r$   c                    t        d| j                  z        }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 %sF)groupedr   r      -[
   )r   r,   r:   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    !DHH,-~~dhh'33E3B		$#99;DZZ\F*0!*'AudFC((*C#T*chh666s8sww&&&88&&s+bzSXX--- r$   c                     t        d| j                  z        }t        j                  | j                        j	                         |j                  d      d   j                         d   k(  sJ y )Nzprocstat -b %sr   r   )r   r,   r:   r;   exer   r@   r"   s     r   test_exezFreeBSDPsutilTestCase.test_exe   sU    !DHH,-~~dhh'++-41C1I1I1KB1OOOOr$   c                    t        d| j                  z        }dj                  t        j                  | j                        j                               dj                  |j                  d      d   j                         dd        k(  sJ y )Nzprocstat -c %s r   r   r   )r   r,   joinr:   r;   r   r   r   s     r   test_cmdlinez"FreeBSDPsutilTestCase.test_cmdline   ss    !DHH,-xxtxx088:;sxxIIdOA$$&qr*@
 
 	
 
r$   c                 B   t        d| j                  z        }|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 %sr   r   r      )r   r,   r   r:   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    !DHH,--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                  z        }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 %sr   z voluntary contextr   z involuntary contextr   )couldn't find lines match in procstat out)r   r,   r:   r;   r   lowerr9   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   !DHH,-NN488$IIdOD::<%%'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                  z        }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,   r:   r;   r   r   r9   float	cpu_timesuserr   systemr   rp   r   s          r   test_cpu_timesz$FreeBSDPsutilTestCase.test_cpu_times   s,   !DHH,-NN488$IIdOD::<%%'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/   r3   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| 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)rI   N)r   ).0r   s     r   	<genexpr>z7FreeBSDSystemTestCase.parse_swapinfo.<locals>.<genexpr>  s     ?JqSVd]Js   r   rG   )r   
splitlinesrn   r   r   )rA   partsrN   rO   rP   s        r   parse_swapinfoz$FreeBSDSystemTestCase.parse_swapinfo   sg     M"--/3(7&@AA @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
   skipr:   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   r:   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   r:   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   r:   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   r:   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   r:   rc   rP   r   r_   s     r   test_vmem_freez$FreeBSDSystemTestCase.test_vmem_free0  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   r:   rc   buffersr   r_   s     r   test_vmem_buffersz'FreeBSDSystemTestCase.test_vmem_buffers5  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   r:   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   r:   rc   r   r   rd   s     r   test_muse_vmem_activez+FreeBSDSystemTestCase.test_muse_vmem_activeA  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   r:   rc   r   r   rd   s     r   test_muse_vmem_inactivez-FreeBSDSystemTestCase.test_muse_vmem_inactiveG  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   r:   rc   r   r   rd   s     r   test_muse_vmem_wiredz*FreeBSDSystemTestCase.test_muse_vmem_wiredM  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   r:   rc   r   r   rd   s     r   test_muse_vmem_cachedz+FreeBSDSystemTestCase.test_muse_vmem_cachedS  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   r:   rc   rP   r   rd   s     r   test_muse_vmem_freez)FreeBSDSystemTestCase.test_muse_vmem_freeY  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   r:   rc   r   r   rd   s     r   test_muse_vmem_buffersz,FreeBSDSystemTestCase.test_muse_vmem_buffers_  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   r:   	cpu_statsctx_switchesr   r@   s    r   test_cpu_stats_ctx_switchesz1FreeBSDSystemTestCase.test_cpu_stats_ctx_switchese  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   r:   r   
interruptsr   r   s    r   test_cpu_stats_interruptsz/FreeBSDSystemTestCase.test_cpu_stats_interruptsn  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   r:   r   soft_interruptsr   r   s    r   test_cpu_stats_soft_interruptsz4FreeBSDSystemTestCase.test_cpu_stats_soft_interruptst  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   r:   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   r:   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   r:   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   r:   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   r:   	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      }t        |j                  d      D cg c]*  }|j                  d      d   |j                  d      d   f, c}      }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                 L    t        | d      \  }}t        |d      \  }}d||fz  S )N<   z%d:%02d)divmod)secsm_shs       r   
secs2hoursz>FreeBSDSystemTestCase.test_sensors_battery.<locals>.secs2hours  s0    4$EAr!R=DAq1v%%r$   zacpiconf -i 0r   	r   r   zRemaining capacity:%r7   zRemaining time:unknown)
r   dictr   r:   sensors_batteryr   r8   percentsecsleftPOWER_TIME_UNLIMITED)r@   r#  r"   xr   metricsr)  remaining_times           r   test_sensors_batteryz*FreeBSDSystemTestCase.test_sensors_battery  s    	&
 !<?IIdOLOqaggdmAb 12OL
 ((*f23;;CDE 12')))Y&##v'B'BBBBg../>AAA M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  )r:   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)Nr1  r3  r2  )r
   raisesrp   r   r:   r(  r   s    r   test_sensors_battery_no_batteryz5FreeBSDSystemTestCase.test_sensors_battery_no_battery  sP    
 ]]<()*)*#$ ) %%'///	 )(s   "AA$c                    t        j                  d      }t        |      D ]  }d|z  }	 t        t	        t        |      d d             }t        t        j                         d   |   j                  |z
        dk  sJ d|z  }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.%s.temperaturer   z$temperatures not supported by kernelcoretempr   zdev.cpu.%s.coretemp.tjmax)r:   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-3FJ #E&."*=$> ? //1*=cBJJ#$ 	 136FfVnSb&9 :;M++-j9#>CC !!% #
   Jkk"HIIJs    CC/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   r/  r5  r8  r@  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fromtimestampr:   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   rD  rD    s    #r$   rD  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   rI   zcan't find %s)openr    r   r   r   )look_forfr#   s      r   parse_meminfozNetBSDTestCase.parse_meminfo  sb    /"a??8,tzz|A/$66 #" # 8344	 #"s   A& A&A&&A/c                 h    t        j                         j                  | j                  d      k(  sJ y )Nz	MemTotal:)r:   rc   rN   rQ  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   r:   rc   rP   rQ  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   r:   rc   r   rQ  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   r:   rc   sharedrQ  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   r:   rc   r   rQ  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   r:   r  rN   rQ  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   r:   r  rP   rQ  r   r   s    r   r  z NetBSDTestCase.test_swapmem_free2  s;    ""$))D,>,>{,KKL 	
 r$   c                 |    t        j                         }|j                  |j                  |j                  z
  k(  sJ y r*   )r:   r  rO   rN   rP   )r@   smems     r   r  z NetBSDTestCase.test_swapmem_used8  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   )	rN  r    r   r   r   rW   r:   r   r  )r@   rP  r#   r  s       r   r  z(NetBSDTestCase.test_cpu_stats_interrupts>  s    ,%??7+!$TZZ\!_!5J 
 !!566 	 & 6##%00:=>EEE &%   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)Nr_  r`  s   ctxtr   ra  r   )	rN  r    r   r   r   rW   r:   r   r   )r@   rP  r#   r   s       r   r   z*NetBSDTestCase.test_cpu_stats_ctx_switchesH  s    ,%??7+#&tzz|A#7L 
 !!566 	 & 6##%22\ABTIII &%rb  N)rt   ru   rv   rA  rQ  rS  r   r   rX  r   r  r  r  r  r   r{   r$   r   rL  rL    sI    5 5P





3FJr$   rL  )"rw   rF  osrn   r=   r:   r   r   r   r   psutil.testsr   r   r	   r
   r   r   r   r   r   psutil._psutil_posixr   r   getuidrB  r   r   ry   rz   r(   r}   r   rD  rL  r{   r$   r   <module>rh     s   +  	 	       $ * '  )  ' "  0}HRYY[A%7%-NHN   GJ/IN. IN 0INb K7ULN UL 8ULp K7oN o 8on K7#n # 8# J}5RJ^ RJ 6RJr$   