
    = /iN                     2   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rMej(                  j*                  j-                         Z ej0                         dk(  xr  ej2                  d      ZndZdZd Zd Zej:                  j=                  e d       G d de             Zej:                  j=                  e d       G d de             Z ej:                  j=                  e d       G d de             Z!ej:                  j=                  e
 d       G d de             Z"ej:                  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_subproc)	terminate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     K/srv/sistema/bot/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   8   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.setUpClassL       /%%r"   c                 .    t        | j                         y r(   r   r*   r+   s    r   tearDownClasszBSDTestCase.tearDownClassP       #''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_timeT   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't        j                  d|j                   d|       c S t        |j                  |z
        dkD  st        j                  d|j                   d|       c S  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      noner5      )r   r7   r   popr   )pathr    linesr!   devtotalusedfrees           r   dfz"BSDTestCase.test_disks.<locals>.dfa   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=)r8   disk_partitions
disk_usage
mountpointdevicerM   absrO   r
   failrN   )r>   rP   partusagerL   rM   rN   rO   s           r   
test_diskszBSDTestCase.test_disks^   s    	* **u5 		FD%%doo6E%'%8"Cd;;#%%%;;%'''5::$%(88{{WUZZLdV#DEE5::$%(88{{WUZZLdV#DEE		Fr"   r   zsysctl cmd not availablec                 P    t        d      }t        j                  d      |k(  sJ y )Nzhw.ncpuT)logical)r   r8   	cpu_countr>   systs     r   test_cpu_count_logicalz"BSDTestCase.test_cpu_count_logicaly   s'     i -555r"   zskipped on NETBSDc                 `    t        d      }|t        j                         j                  k(  sJ y )Nz
hw.physmem)r   r8   virtual_memoryrM   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   )
r8   net_if_statsitemsr   isupri   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-   r1   r
   markskipifr   rB   rZ   shutilwhichr`   re   rr    r"   r   r&   r&   H   s5   3& &   [['IJ( K(F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(   r0   r+   s    r   r1   z#FreeBSDPsutilTestCase.tearDownClass   r2   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*   r8   r9   memory_mapsr   rI   addrr   rssrJ   r   )r>   r    mapsrK   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*   r8   r9   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*   joinr8   r9   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   r8   r9   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*   r8   r9   r   lowerr7   r   num_ctx_switches	voluntaryappendinvoluntarylenro   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*   r8   r9   r   r   r7   float	cpu_timesuserr   systemr   ro   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)rs   rt   ru   rw   r-   r1   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)rH   N)r   ).0r   s     r   	<genexpr>z7FreeBSDSystemTestCase.parse_swapinfo.<locals>.<genexpr>  s     ?qSVd]?s   r   rF   )r   
splitlinesrm   r   r   )r?   partsrM   rN   rO   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      cY S w xY w)Nzdev.cpu.0.freqz#frequencies not supported by kernelzdev.cpu.0.freq_levelsr   /r   )r   r   ro   r
   skipr8   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     "	Fv/M  ((M999(v }**,Q/55c:1=>}**,R066s;A>? $$000 $$000  	F;;DEE	Fs   C+ +DDc                     t        d      t        z  }t        t        j                         j
                  |z
        t        k  sJ y )Nzvm.stats.vm.v_active_count)r   PAGESIZErV   r8   rb   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   rV   r8   rb   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   rV   r8   rb   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   rV   r8   rb   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   rV   r8   rb   rO   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   rV   r8   rb   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   r8   rb   rM   rc   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   rV   r8   rb   r   r   rc   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   rV   r8   rb   r   r   rc   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   rV   r8   rb   r   r   rc   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   rV   r8   rb   r   r   rc   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   rV   r8   rb   rO   r   rc   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   rV   r8   rb   r   r   rc   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  )rV   r8   	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   )rV   r8   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   )rV   r8   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@ )rV   r8   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   rV   r8   swap_memoryrO   r   )r>   _total_usedrO   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   rV   r8   r  rN   r   )r>   r  rN   _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   rV   r8   r  rM   r   )r>   rM   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   r8   	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:%r5   zRemaining time:unknown)	r   r   r8   sensors_batteryr   r6   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  )r8   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)Nr3  r5  r4  )r
   raisesro   r   r8   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      cY c S w xY w)	NTzdev.cpu.z.temperaturer   z$temperatures not supported by kernelcoretempr   z.coretemp.tjmax)r8   r]   ranger   r   r   ro   r
   r   rV   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K #E&."*=$> ? //1*=cBJJ#$ 	  uO4FfVnSb&9 :;M++-j9#>CC !!%	
   K{{#IJJKs    CC54C5N)%rs   rt   ru   staticmethodr   r   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   r1  r7  r:  rB  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fromtimestampr8   r  )r>   r  sys_bt	psutil_bts       r   r  zOpenBSDTestCase.test_boot_time  sR    ?#""++A/EF%%33F4D4D4FG	"""r"   N)rs   rt   ru   r  r|   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|        # 1 sw Y   xY w)Nz/proc/meminfor   rH   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:)r8   rb   rM   rS  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:)rV   r8   rb   rO   rS  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:)rV   r8   rb   r   rS  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:)rV   r8   rb   sharedrS  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:)rV   r8   rb   r   rS  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:)rV   r8   r  rM   rS  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:)rV   r8   r  rO   rS  r   r   s    r   r  z NetBSDTestCase.test_swapmem_free,  s;    ""$))D,>,>{,KKL 	
 r"   c                 |    t        j                         }|j                  |j                  |j                  z
  k(  sJ y r(   )r8   r  rN   rM   rO   )r>   smems     r   r  z NetBSDTestCase.test_swapmem_used2  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   )	rP  r   r   r   r   rV   r8   r   r  )r>   rR  r!   r  s       r   r  z(NetBSDTestCase.test_cpu_stats_interrupts8  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)Nra  rb  s   ctxtr   rc  r   )	rP  r   r   r   r   rV   r8   r   r   )r>   rR  r!   r   s       r   r  z*NetBSDTestCase.test_cpu_stats_ctx_switchesB  s    ,% 	7 7??7+#&tzz|A#7L7
 !!566 		7 6##%22\ABTIII	7 	7rd  N)rs   rt   ru   rC  rS  rU  r   r   rZ  r   r  r  r  r  r  r|   r"   r   rN  rN    sI    3 3P





3FJr"   rN  )$rv   rH  osrm   rz   r;   r8   r   r   r   r   psutil.testsr   r   r	   r
   r   r   r   r   _psplatformcextgetpagesizer   getuidr{   rD  r   r   rx   ry   r&   r~   r   rF  rN  r|   r"   r   <module>rl     s   +  	 	        $ * '  )  & "!!&&224H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iN i 8ib K7#n # 8# J}5RJ^ RJ 6RJr"   