
    ;^hN                     "   S r SSKrSSKrSSKrSSKrSSKrSSKrSSKJr  SSKJr  SSKJ	r	  SSKJ
r
  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  \(       a;  SSKJr  \" 5       r\R.                  " 5       S:H  =(       a    \R0                  " S5      rOSrSrS rS r\R8                  R;                  \(       + SS9 " S S\5      5       r\R8                  R;                  \(       + SS9 " S S\5      5       r\R8                  R;                  \(       + SS9 " S S\5      5       r \R8                  R;                  \
(       + SS9 " S S\5      5       r!\R8                  R;                  \	(       + S S9 " S! S"\5      5       r"g)#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                     [        SU -   5      n[        (       a  XR                  S5      S-   S nO,[        (       d  [        (       a  XR                  S5      S-   S n [        U5      $ ! [         a    Us $ f = f)zeExpects 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     G/var/www/html/env/lib/python3.13/site-packages/psutil/tests/test_bsd.pysysctlr   ,   sv     	G#$FwD)A-/0	FFC(1,./6{ s   
A) )A87A8c                     [        S5      nUR                  S5       H  nUR                  U 5      (       d  M    O   [        S5      e[	        UR                  5       S   5      $ )z+Thin wrapper around 'muse' cmdline utility.r   
zline not foundr   )r   split
startswithr   r   )fieldoutlines      r   r   r   ;   sR    
V*C		$??5!!   )**tzz|A    zBSD onlyreasonc                      \ rS rSrSr\S 5       r\S 5       r\R                  R                  \SS9S 5       rS r\R                  R                  \R                  " S	5      (       + S
S9S 5       r\R                  R                  \R                  " S	5      (       + S
S9\R                  R                  \SS9S 5       5       r\R                  R                  \R                  " S5      (       + SS9S 5       rSrg)BSDTestCaseK   z)Generic tests common to all BSD variants.c                 6    [        5       R                  U l        g Nr   pidclss    r   
setUpClassBSDTestCase.setUpClassO        "&&r#   c                 .    [        U R                  5        g r*   r   r,   r-   s    r   tearDownClassBSDTestCase.tearDownClassS       #''r#   z -o lstart doesn't work on NETBSDr$   c                 4   [        SU R                   35      nUR                  SS5      R                  5       n[        R
                  " U R                  5      R                  5       n[        R                  " S[        R                  " U5      5      nX#:X  d   eg )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_time$BSDTestCase.test_process_create_timeW   sv    &txxj12>>)R0668~~dhh/;;=}}"DNN<$@
 '''r#   c                    S n[         R                  " SS9 H  n[         R                  " UR                  5      nU" UR                  5      u  pEpgUR                  U:X  d   eUR
                  U:X  d   e[        UR                  U-
  5      S:  a!  U R                  SUR                   SU 35      e[        UR                  U-
  5      S:  d  M  U R                  SUR                   SU 35      e   g )Nc                 :   [        SU  S35      R                  5       nUR                  S5      nUR                  S5        UR                  S5      nUR                  5       S S u  pEpgUS:X  a  Sn[	        U5      S-  n[	        U5      S-  n[	        U5      S-  nXEXg4$ )	Nzdf -k ""r   r      noner9      )r   r;   r   popr   )pathr!   linesr"   devtotalusedfrees           r   df"BSDTestCase.test_disks.<locals>.dfd   s    wtfA&'--/CIIdOEIIaL99Q<D%)ZZ\"1%5"Cf}J%Et9t#Dt9t#Dt))r#   F)alli   zpsutil=z, df=)
r<   disk_partitions
disk_usage
mountpointdevicerR   absrT   failrS   )rB   rU   partusagerQ   rR   rS   rT   s           r   
test_disksBSDTestCase.test_disksa   s    	* **u5D%%doo6E%'%8"C;;#%%%;;%'''5::$%(88ii'%**U4& ABB5::$%(88ii'%**U4& ABB 6r#   r   zsysctl cmd not availablec                 N    [        S5      n[        R                  " SS9U:X  d   eg )Nzhw.ncpuT)logical)r   r<   	cpu_countrB   systs     r   test_cpu_count_logical"BSDTestCase.test_cpu_count_logical|   s'     i -555r#   zskipped on NETBSDc                 d    [        S5      nU[        R                  " 5       R                  :X  d   eg )Nz
hw.physmem)r   r<   virtual_memoryrR   rB   nums     r   test_virtual_memory_total%BSDTestCase.test_virtual_memory_total   s+     \"f++-33333r#   ifconfigzifconfig cmd not availablec                 <   [         R                  " 5       R                  5        Hd  u  p [        SU 35      nUR                  SU;   :X  d   eSU;   a5  UR
                  [        [        R                  " SU5      S   5      :X  d   eMd  Mf     g ! [         a     Mv  f = f)Nz	ifconfig RUNNINGmtuz	mtu (\d+)r   )
r<   net_if_statsitemsr   isuprr   r   refindallRuntimeError)rB   namestatsr!   s       r   test_net_if_statsBSDTestCase.test_net_if_stats   s     "..0668KDN9TF+, zzi3&6777C< 99BJJ|S,I!,L(MMMM   9   s   B
BB N)__name__
__module____qualname____firstlineno____doc__classmethodr/   r4   r
   markskipifr   rF   r`   shutilwhichrg   rm   r{   __static_attributes__r}   r#   r   r'   r'   K   s/   3' '   [['IJ( K(C6 [[LL""+E  66 [[LL""+E   [[*  44 [[LL$$-I  	N	Nr#   r'   zFREEBSD onlyc                       \ rS rSr\S 5       r\S 5       r\" 5       S 5       rS r	S r
S r\" 5       S 5       r\" 5       S	 5       rS
rg)FreeBSDPsutilTestCase   c                 6    [        5       R                  U l        g r*   r+   r-   s    r   r/    FreeBSDPsutilTestCase.setUpClass   r1   r#   c                 .    [        U R                  5        g r*   r3   r-   s    r   r4   #FreeBSDPsutilTestCase.tearDownClass   r6   r#   c                    [        SU R                   35      n[        R                  " U R                  5      R	                  SS9nUR                  S5      SS  nU(       a  UR                  5       nUR                  5       nUS S u  pgpn
UR                  5       nU SU 3UR                  :X  d   e[        U
5      UR                  :X  d   eUR                  R                  S5      (       d  US	   UR                  :X  d   eU(       a  M  g g )
Nzprocstat -v F)groupedr   r      -[
   )r   r,   r<   r=   memory_mapsr   rN   addrr   rssrO   r   )rB   r!   mapsrP   r"   fields_startstop_permsresmaps               r   test_memory_maps&FreeBSDPsutilTestCase.test_memory_maps   s    <z*+~~dhh'33E3B		$#99;DZZ\F*0!*'AdC((*CWAdV$000s8sww&&&88&&s++bzSXX--- er#   c                     [        SU R                   35      n[        R                  " U R                  5      R	                  5       UR                  S5      S   R                  5       S   :X  d   eg )Nzprocstat -b r   r   )r   r,   r<   r=   exer   rB   r!   s     r   test_exeFreeBSDPsutilTestCase.test_exe   sV    <z*+~~dhh'++-41C1I1I1KB1OOOOr#   c                    [        SU R                   35      nSR                  [        R                  " U R                  5      R                  5       5      SR                  UR                  S5      S   R                  5       SS  5      :X  d   eg )Nzprocstat -c  r   r   r   )r   r,   joinr<   r=   r   r   r   s     r   test_cmdline"FreeBSDPsutilTestCase.test_cmdline   st    <z*+xxtxx088:;sxxIIdOA$$&qr*@
 
 	
 
r#   c                 J   [        SU R                   35      nUR                  S5      S   R                  5       SS u  p#pEpg[        R                  " U R                  5      nUR                  5       n	UR                  5       n
U	R                  [        U5      :X  d   eU	R                  [        U5      :X  d   eU	R                  [        U5      :X  d   eU
R                  [        U5      :X  d   eU
R                  [        U5      :X  d   eU
R                  [        U5      :X  d   eg )Nzprocstat -s r   r   r      )r   r,   r   r<   r=   uidsgidsrealr   	effectivesaved)rB   r!   euidruidsuidegidrgidsgidpr   r   s              r   test_uids_gids$FreeBSDPsutilTestCase.test_uids_gids   s    <z*+-0YYt_Q-?-E-E-G!-L*DNN488$vvxvvxyyCI%%%~~T***zzSY&&&yyCI%%%~~T***zzSY&&&r#   c                 p   / n[        SU R                   35      n[        R                  " U R                  5      nUR	                  S5       H  nUR                  5       R                  5       nSU;   aP  [        UR	                  5       S   5      nUR                  5       R                  nXV:X  d   eUR                  S 5        Mw  SU;   d  M  [        UR	                  5       S   5      nUR                  5       R                  nXV:X  d   eUR                  S 5        M     [        U5      S:w  a  [        S5      eg )Nprocstat -r r   z voluntary contextr   z involuntary contextr   )couldn't find lines match in procstat out)r   r,   r<   r=   r   lowerr;   r   num_ctx_switches	voluntaryappendinvoluntarylenrx   rB   testedr!   r   r"   pstat_valuepsutil_values          r   test_ctx_switches'FreeBSDPsutilTestCase.test_ctx_switches   s   <z*+NN488$IIdOD::<%%'D#t+!$**,r"23 113=="222d#'4/!$**,r"23 113??"222d# $ v;!JKK r#   c                    / n[        SU R                   35      n[        R                  " U R                  5      nUR	                  S5       H  nUR                  5       R                  5       nSU;   ae  [        SUR	                  5       S   R	                  S5      S   -   5      nUR                  5       R                  nXV:X  d   eUR                  S 5        M  SU;   d  M  [        SUR	                  5       S   R	                  S5      S   -   5      nUR                  5       R                  nXV:X  d   eUR                  S 5        M     [        U5      S:w  a  [        S	5      eg )
Nr   r   z	user timez0.r   .zsystem timer   r   )r   r,   r<   r=   r   r   r;   float	cpu_timesuserr   systemr   rx   r   s          r   test_cpu_times$FreeBSDPsutilTestCase.test_cpu_times   s)   <z*+NN488$IIdOD::<%%'Dd"#D4::<+;+A+A#+Fr+J$JK {{}11"222d#$&#D4::<+;+A+A#+Fr+J$JK {{}33"222d# $ v;!JKK r#   r}   N)r~   r   r   r   r   r/   r4   r   r   r   r   r   r   r   r   r}   r#   r   r   r      s    ' '   . .P
' L L& L Lr#   r   c                   b   \ rS rSr\S 5       rS r\" 5       S 5       r\" 5       S 5       r	\" 5       S 5       r
\" 5       S 5       r\" 5       S 5       r\" 5       S	 5       r\R                  R!                  \(       + S
S9S 5       r\R                  R!                  \(       + S
S9\" 5       S 5       5       r\R                  R!                  \(       + S
S9\" 5       S 5       5       r\R                  R!                  \(       + S
S9\" 5       S 5       5       r\R                  R!                  \(       + S
S9\" 5       S 5       5       r\R                  R!                  \(       + S
S9\" 5       S 5       5       r\R                  R!                  \(       + S
S9\" 5       S 5       5       rS rS rS r\" 5       S 5       rS rS rS rS r \R                  R!                  \!(       + SS9S 5       r"\R                  R!                  \!(       + SS9S 5       r#\R                  R!                  \!SS9S 5       r$S  r%S!r&g")#FreeBSDSystemTestCase   c                      [        S5      R                  5       S   n [        R                  " SU 5      nU(       d  [	        SU  35      eS USS  5       u  p#nX#U4$ )Nzswapinfo -kr   z\s+zCan't parse swapinfo: c              3   >   #    U  H  n[        U5      S -  v   M     g7f)rM   N)r   ).0r   s     r   	<genexpr>7FreeBSDSystemTestCase.parse_swapinfo.<locals>.<genexpr>  s     ?JqSVd]Js   r   rK   )r   
splitlinesrv   r   r   )rC   partsrR   rS   rT   s        r   parse_swapinfo$FreeBSDSystemTestCase.parse_swapinfo   se     M"--/3(5fX>?? @E!AJ?TD  r#   c                 *   Sn [        [        U5      5      n[
        R                  " 5       R                  U:X  d   eSn[        U5      n[        UR                  5       S   R                  S5      S   5      n[        UR                  5       S   R                  S5      S   5      n[
        R                  " 5       R                  U:X  d   e[
        R                  " 5       R                  U:X  d   eg ! [         a    [        R                  " S5      ef = f)Nzdev.cpu.0.freqz#frequencies not supported by kernelzdev.cpu.0.freq_levelsr   /r   )r   r   rx   r
   skipr<   cpu_freqcurrentr   maxmin)rB   sensorsysctl_resultmax_freqmin_freqs        r   !test_cpu_frequency_against_sysctl7FreeBSDSystemTestCase.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   C1 1!Dc                     [        S5      [        -  n[        [        R                  " 5       R
                  U-
  5      [        :  d   eg )Nzvm.stats.vm.v_active_count)r   PAGESIZEr\   r<   rj   activer   re   s     r   test_vmem_active&FreeBSDSystemTestCase.test_vmem_active  s:    23h>6((*11D89<MMMMr#   c                     [        S5      [        -  n[        [        R                  " 5       R
                  U-
  5      [        :  d   eg )Nzvm.stats.vm.v_inactive_count)r   r   r\   r<   rj   inactiver   re   s     r   test_vmem_inactive(FreeBSDSystemTestCase.test_vmem_inactive$  s:    45@6((*33d:;>OOOOr#   c                     [        S5      [        -  n[        [        R                  " 5       R
                  U-
  5      [        :  d   eg )Nzvm.stats.vm.v_wire_count)r   r   r\   r<   rj   wiredr   re   s     r   test_vmem_wired%FreeBSDSystemTestCase.test_vmem_wired)  s:    01H<6((*00478;LLLLr#   c                     [        S5      [        -  n[        [        R                  " 5       R
                  U-
  5      [        :  d   eg )Nzvm.stats.vm.v_cache_count)r   r   r\   r<   rj   cachedr   re   s     r   test_vmem_cached&FreeBSDSystemTestCase.test_vmem_cached.  s:    12X=6((*11D89<MMMMr#   c                     [        S5      [        -  n[        [        R                  " 5       R
                  U-
  5      [        :  d   eg )Nzvm.stats.vm.v_free_count)r   r   r\   r<   rj   rT   r   re   s     r   test_vmem_free$FreeBSDSystemTestCase.test_vmem_free3  s:    01H<6((*//$67:KKKKr#   c                     [        S5      n[        [        R                  " 5       R                  U-
  5      [
        :  d   eg )Nzvfs.bufspace)r   r\   r<   rj   buffersr   re   s     r   test_vmem_buffers'FreeBSDSystemTestCase.test_vmem_buffers8  s4    n%6((*22T9:=NNNNr#   zmuse not installedr$   c                 d    [        S5      n[        R                  " 5       R                  U:X  d   eg )NTotal)r   r<   rj   rR   rk   s     r   test_muse_vmem_total*FreeBSDSystemTestCase.test_muse_vmem_total?  s(    7m$$&,,333r#   c                     [        S5      n[        [        R                  " 5       R                  U-
  5      [
        :  d   eg )NActive)r   r\   r<   rj   r   r   rk   s     r   test_muse_vmem_active+FreeBSDSystemTestCase.test_muse_vmem_activeD  s5     8n6((*11C78;LLLLr#   c                     [        S5      n[        [        R                  " 5       R                  U-
  5      [
        :  d   eg )NInactive)r   r\   r<   rj   r   r   rk   s     r   test_muse_vmem_inactive-FreeBSDSystemTestCase.test_muse_vmem_inactiveJ  s6     :6((*33c9:=NNNNr#   c                     [        S5      n[        [        R                  " 5       R                  U-
  5      [
        :  d   eg )NWired)r   r\   r<   rj   r   r   rk   s     r   test_muse_vmem_wired*FreeBSDSystemTestCase.test_muse_vmem_wiredP  s5     7m6((*00367:KKKKr#   c                     [        S5      n[        [        R                  " 5       R                  U-
  5      [
        :  d   eg )NCache)r   r\   r<   rj   r   r   rk   s     r   test_muse_vmem_cached+FreeBSDSystemTestCase.test_muse_vmem_cachedV  s5     7m6((*11C78;LLLLr#   c                     [        S5      n[        [        R                  " 5       R                  U-
  5      [
        :  d   eg )NFree)r   r\   r<   rj   rT   r   rk   s     r   test_muse_vmem_free)FreeBSDSystemTestCase.test_muse_vmem_free\  s5     6l6((*//#569JJJJr#   c                     [        S5      n[        [        R                  " 5       R                  U-
  5      [
        :  d   eg )NBuffer)r   r\   r<   rj   r  r   rk   s     r   test_muse_vmem_buffers,FreeBSDSystemTestCase.test_muse_vmem_buffersb  s5     8n6((*22S89<MMMMr#   c                 x    [        [        R                  " 5       R                  [	        S5      -
  5      S:  d   eg )Nzvm.stats.sys.v_swtch  )r\   r<   	cpu_statsctx_switchesr   rB   s    r   test_cpu_stats_ctx_switches1FreeBSDSystemTestCase.test_cpu_stats_ctx_switchesh  s>      "///01 		
r#   c                 x    [        [        R                  " 5       R                  [	        S5      -
  5      S:  d   eg )Nzvm.stats.sys.v_intrr#  )r\   r<   r$  
interruptsr   r&  s    r   test_cpu_stats_interrupts/FreeBSDSystemTestCase.test_cpu_stats_interruptsq  s6      "--7L0MMN	
r#   c                 x    [        [        R                  " 5       R                  [	        S5      -
  5      S:  d   eg )Nzvm.stats.sys.v_softr#  )r\   r<   r$  soft_interruptsr   r&  s    r   test_cpu_stats_soft_interrupts4FreeBSDSystemTestCase.test_cpu_stats_soft_interruptsw  s>      "22./0 		
r#   c                 x    [        [        R                  " 5       R                  [	        S5      -
  5      S:  d   eg )Nzvm.stats.sys.v_syscalli@ )r\   r<   r$  syscallsr   r&  s    r   test_cpu_stats_syscalls-FreeBSDSystemTestCase.test_cpu_stats_syscalls  s8       "++f5M.NNO	
r#   c                     U R                  5       u  pn[        [        R                  " 5       R                  U-
  5      [
        :  d   eg r*   )r   r\   r<   swap_memoryrT   r   )rB   _total_usedrT   s       r   test_swapmem_free'FreeBSDSystemTestCase.test_swapmem_free  s=    "113t6%%',,t347HHHHr#   c                     U R                  5       u  pn[        [        R                  " 5       R                  U-
  5      [
        :  d   eg r*   )r   r\   r<   r6  rS   r   )rB   r7  rS   _frees       r   test_swapmem_used'FreeBSDSystemTestCase.test_swapmem_used  s=    "113e6%%',,t347HHHHr#   c                     U R                  5       u  pn[        [        R                  " 5       R                  U-
  5      [
        :  d   eg r*   )r   r\   r<   r6  rR   r   )rB   rR   r8  r<  s       r   test_swapmem_total(FreeBSDSystemTestCase.test_swapmem_total  s=    "113e6%%'--569JJJJr#   c                     [        S5      nXR                  S5      S-   S  nUS UR                  S5       n[        U5      nU[        R                  " 5       :X  d   eg )Nzsysctl kern.boottimez sec =    ,)r   r   r   r<   	boot_time)rB   sbtimes      r   test_boot_time$FreeBSDSystemTestCase.test_boot_time  sZ    )*ffY!#%&msA((****r#   z
no batteryc                    S n[        S5      nUR                  S5       Vs0 s H)  o3R                  S5      S   UR                  S5      S   _M+     nn[        R                  " 5       n[	        US   R                  SS	5      5      nUS
   nUR                  U:X  d   eUS:X  a!  UR                  [        R                  :X  d   eg U" UR                  5      U:X  d   eg s  snf )Nc                 n    [        U S5      u  p[        US5      u  p1[        U5       S[        U5      S 3$ )N<   :02)divmodr   )secsm_shs       r   
secs2hours>FreeBSDSystemTestCase.test_sensors_battery.<locals>.secs2hours  s8    4$EA!R=DA!fXQs1vbk**r#   zacpiconf -i 0r   	r   r   zRemaining capacity:%r9   zRemaining time:unknown)	r   r   r<   sensors_batteryr   r:   percentsecsleftPOWER_TIME_UNLIMITED)rB   rT  r!   xr   metricsrZ  remaining_times           r   test_sensors_battery*FreeBSDSystemTestCase.test_sensors_battery  s    	+
 !?ByyO!''$-"AGGDM"$55O((*f23;;CDE 12')))Y&##v'B'BBBBg../>AAA Ps   0Cc                 X   [         R                  " 5       R                  [        S5      :X  d   e[         R                  " 5       R                  [        S5      S:H  :X  d   e[         R                  " 5       R
                  nUS:  a  [        S5      S:X  d   eg U[        S5      S-  :X  d   eg )Nhw.acpi.battery.lifehw.acpi.acliner   r   hw.acpi.battery.timer   rL  )r<   rY  rZ  r   power_pluggedr[  )rB   r[  s     r   #test_sensors_battery_against_sysctl9FreeBSDSystemTestCase.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                     [         R                  " [        5         [        S5        [        S5        [        S5        S S S 5        [        R
                  " 5       b   eg ! , (       d  f       N'= f)Nrc  re  rd  )r
   raisesrx   r   r<   rY  r&  s    r   test_sensors_battery_no_battery5FreeBSDSystemTestCase.test_sensors_battery_no_battery  sP    
 ]]<()*)*#$ ) %%'///	 )(s   "A
A,c                    [         R                  " S5      n[        U5       H  nSU S3n [        [	        [        U5      S S 5      5      n[        [         R                  " 5       S   U   R                  U-
  5      S:  d   eSU S3n[        [	        [        U5      S S 5      5      n[         R                  " 5       S   U   R                  U:X  a  M   e   g ! [         a    [        R                  " S5      ef = f)	NTzdev.cpu.z.temperaturer   z$temperatures not supported by kernelcoretempr   z.coretemp.tjmax)r<   rd   ranger   r   r   rx   r
   r   r\   sensors_temperaturesr   high)rB   num_cpuscpur   r   s        r   (test_sensors_temperatures_against_sysctl>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!C:r}   N)'r~   r   r   r   staticmethodr   r   r   r   r   r   r   r   r  r
   r   r   MUSE_AVAILABLEr  r  r  r  r  r  r   r'  r+  r/  r3  r9  r=  r@  rH  r   r`  rg  rk  rt  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                       \ rS rSrS rSrg)OpenBSDTestCasei  c                     [        S5      n[        R                  R                  US5      n[        R                  R                  [        R
                  " 5       5      nX#:X  d   eg )Nzkern.boottimez%a %b %d %H:%M:%S %Y)r   datetimestrptimefromtimestampr<   rE  )rB   rF  sys_bt	psutil_bts       r   rH  OpenBSDTestCase.test_boot_time  sP    ?#""++A/EF%%33F4D4D4FG	"""r#   r}   N)r~   r   r   r   rH  r   r}   r#   r   ry  ry    s    #r#   ry  zNETBSD onlyc                   `    \ rS rSr\S 5       rS rS rS rS r	S r
S rS	 rS
 rS rS rSrg)NetBSDTestCasei  c                     [        S5       nU HC  nUR                  U 5      (       d  M  [        UR                  5       S   5      S-  s  sS S S 5        $    S S S 5        [	        SU  35      e! , (       d  f       N= f)Nz/proc/meminfor   rM   zcan't find )openr   r   r   r   )look_forfr"   s      r   parse_meminfoNetBSDTestCase.parse_meminfo   sg    /"a??8,,tzz|A/$66 #" # ;xj122	 #"s   A, A,A,,
A:c                 l    [         R                  " 5       R                  U R                  S5      :X  d   eg )Nz	MemTotal:)r<   rj   rR   r  r&  s    r   test_vmem_totalNetBSDTestCase.test_vmem_total
  s*    $$&,,0B0B;0OOOOr#   c                     [        [        R                  " 5       R                  U R	                  S5      -
  5      [
        :  d   eg )NzMemFree:)r\   r<   rj   rT   r  r   r&  s    r   r   NetBSDTestCase.test_vmem_free  s;    %%',,t/A/A*/MMN 	
 r#   c                     [        [        R                  " 5       R                  U R	                  S5      -
  5      [
        :  d   eg )NzBuffers:)r\   r<   rj   r  r  r   r&  s    r   r   NetBSDTestCase.test_vmem_buffers  sC    %%'//$$Z01  	 	
 r#   c                     [        [        R                  " 5       R                  U R	                  S5      -
  5      [
        :  d   eg )Nz
MemShared:)r\   r<   rj   sharedr  r   r&  s    r   test_vmem_sharedNetBSDTestCase.test_vmem_shared  sC    %%'..$$\23  	 	
 r#   c                     [        [        R                  " 5       R                  U R	                  S5      -
  5      [
        :  d   eg )NzCached:)r\   r<   rj   r   r  r   r&  s    r   r   NetBSDTestCase.test_vmem_cached%  s;    %%'..1C1CI1NNO 	
 r#   c                     [        [        R                  " 5       R                  U R	                  S5      -
  5      [
        :  d   eg )Nz
SwapTotal:)r\   r<   r6  rR   r  r   r&  s    r   r@  !NetBSDTestCase.test_swapmem_total-  s;    ""$**T-?-?-MMN 	
 r#   c                     [        [        R                  " 5       R                  U R	                  S5      -
  5      [
        :  d   eg )Nz	SwapFree:)r\   r<   r6  rT   r  r   r&  s    r   r9   NetBSDTestCase.test_swapmem_free3  s;    ""$))D,>,>{,KKL 	
 r#   c                     [         R                  " 5       nUR                  UR                  UR                  -
  :X  d   eg r*   )r<   r6  rS   rR   rT   )rB   smems     r   r=   NetBSDTestCase.test_swapmem_used9  s/    !!#yyDJJ2222r#   c                 D   [        SS5       nU H7  nUR                  S5      (       d  M  [        UR                  5       S   5      n  O   [	        S5      e S S S 5        [        [        R                  " 5       R                  W-
  5      S:  d   eg ! , (       d  f       N@= f)N
/proc/statrbs   intrr   couldn't find liner#  )	r  r   r   r   r   r\   r<   r$  r*  )rB   r  r"   r*  s       r   r+  (NetBSDTestCase.test_cpu_stats_interrupts?  s    ,%??7++!$TZZ\!_!5J 
 !!566 	 & 6##%00:=>EEE &%   B+B
Bc                 D   [        SS5       nU H7  nUR                  S5      (       d  M  [        UR                  5       S   5      n  O   [	        S5      e S S S 5        [        [        R                  " 5       R                  W-
  5      S:  d   eg ! , (       d  f       N@= f)Nr  r  s   ctxtr   r  r#  )	r  r   r   r   r   r\   r<   r$  r%  )rB   r  r"   r%  s       r   r'  *NetBSDTestCase.test_cpu_stats_ctx_switchesI  s    ,%??7++#&tzz|A#7L 
 !!566 	 & 6##%22\ABTIII &%r  r}   N)r~   r   r   r   rv  r  r  r   r  r  r   r@  r9  r=  r+  r'  r   r}   r#   r   r  r    sI    3 3P





3FJr#   r  )#r   r{  osrv   r   r?   r<   r   r   r   r   psutil.testsr   r   r	   r
   r   r   r   r   psutil._psutil_posixr   r   getuidr   rw  r   r   r   r   r'   r   r   ry  r  r}   r#   r   <module>r     s   +  	 	        $ * '  )  ' " 0}HYY[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#   