
    9iN                     P   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  \(       aR  \R(                  R*                  R-                  5       r\R0                  " 5       S:H  =(       a    \R2                  " S5      rOSrSrS rS r\R:                  R=                  \(       + SS9 " S S\5      5       r\R:                  R=                  \(       + SS9 " S S\5      5       r \R:                  R=                  \(       + SS9 " S S\5      5       r!\R:                  R=                  \
(       + SS9 " S S\5      5       r"\R:                  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_subproc)	terminate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     U/var/www/html/land-doc-ocr/venv/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   8   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)BSDTestCaseH   z)Generic tests common to all BSD variants.c                 6    [        5       R                  U l        g Nr   pidclss    r   
setUpClassBSDTestCase.setUpClassL       /%%r"   c                 .    [        U R                  5        g r)   r   r+   r,   s    r   tearDownClassBSDTestCase.tearDownClassP       #''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_timeT   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(  [        R                  " SUR                   SU 35      s  $ [        UR                  U-
  5      S:  d  M  [        R                  " SUR                   SU 35      s  $    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      noner8      )r   r:   r   popr   )pathr    linesr!   devtotalusedfrees           r   df"BSDTestCase.test_disks.<locals>.dfa   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devicerQ   absrS   r
   failrR   )rA   rT   partusagerP   rQ   rR   rS   s           r   
test_disksBSDTestCase.test_disks^   s    	* **u5D%%doo6E%'%8"C;;#%%%;;%'''5::$%(88{{WUZZLdV#DEE5::$%(88{{WUZZLdV#DEE 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rA   systs     r   test_cpu_count_logical"BSDTestCase.test_cpu_count_logicaly   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_memoryrQ   rA   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   isuprq   r   refindallRuntimeError)rA   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.   r3   r
   markskipifr   rE   r_   shutilwhichrf   rl   rz   __static_attributes__r|   r"   r   r&   r&   H   s/   3& &   [['IJ( K(F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   r0   r"   c                 .    [        U R                  5        g r)   r2   r,   s    r   r3   #FreeBSDPsutilTestCase.tearDownClass   r5   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   rM   addrr   rssrN   r   )rA   r    mapsrO   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   rA   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)rA   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lenrw   rA   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   rw   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.   r3   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)rL   N)r   ).0r   s     r   	<genexpr>7FreeBSDSystemTestCase.parse_swapinfo.<locals>.<genexpr>  s     ?JqSVd]Js   r   rJ   )r   
splitlinesru   r   r   )rB   partsrQ   rR   rS   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      s $ f = f)Nzdev.cpu.0.freqz#frequencies not supported by kernelzdev.cpu.0.freq_levelsr   /r   )r   r   rw   r
   skipr;   cpu_freqcurrentr   maxmin)rA   sensorsysctl_resultmax_freqmin_freqs        r   !test_cpu_frequency_against_sysctl7FreeBSDSystemTestCase.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   C1 1 DDc                     [        S5      [        -  n[        [        R                  " 5       R
                  U-
  5      [        :  d   eg )Nzvm.stats.vm.v_active_count)r   PAGESIZEr[   r;   ri   activer   rd   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;   ri   inactiver   rd   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;   ri   wiredr   rd   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;   ri   cachedr   rd   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;   ri   rS   r   rd   s     r   test_vmem_free$FreeBSDSystemTestCase.test_vmem_free0  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;   ri   buffersr   rd   s     r   test_vmem_buffers'FreeBSDSystemTestCase.test_vmem_buffers5  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;   ri   rQ   rj   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;   ri   r   r   rj   s     r   test_muse_vmem_active+FreeBSDSystemTestCase.test_muse_vmem_activeA  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;   ri   r   r   rj   s     r   test_muse_vmem_inactive-FreeBSDSystemTestCase.test_muse_vmem_inactiveG  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;   ri   r   r   rj   s     r   test_muse_vmem_wired*FreeBSDSystemTestCase.test_muse_vmem_wiredM  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;   ri   r   r   rj   s     r   test_muse_vmem_cached+FreeBSDSystemTestCase.test_muse_vmem_cachedS  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;   ri   rS   r   rj   s     r   test_muse_vmem_free)FreeBSDSystemTestCase.test_muse_vmem_freeY  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;   ri   r  r   rj   s     r   test_muse_vmem_buffers,FreeBSDSystemTestCase.test_muse_vmem_buffers_  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   rA   s    r   test_cpu_stats_ctx_switches1FreeBSDSystemTestCase.test_cpu_stats_ctx_switchese  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_interruptsn  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_interruptst  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_memoryrS   r   )rA   _total_usedrS   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;   r5  rR   r   )rA   r6  rR   _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;   r5  rQ   r   )rA   rQ   r7  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)rA   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:%r8   zRemaining time:unknown)	r   r   r;   sensors_batteryr   r9   percentsecsleftPOWER_TIME_UNLIMITED)rA   rS  r    xr   metricsrY  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   rK  )r;   rX  rY  r   power_pluggedrZ  )rA   rZ  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)Nrb  rd  rc  )r
   raisesrw   r   r;   rX  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      s s  $ f = f)	NTzdev.cpu.z.temperaturer   z$temperatures not supported by kernelcoretempr   z.coretemp.tjmax)r;   rc   ranger   r   r   rw   r
   r   r[   sensors_temperaturesr   high)rA   num_cpuscpur   r   s        r   (test_sensors_temperatures_against_sysctl>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 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.  r2  r8  r<  r?  rG  r   r_  rf  rj  rs  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;   rD  )rA   rE  sys_bt	psutil_bts       r   rG  OpenBSDTestCase.test_boot_time  sP    ?#""++A/EF%%33F4D4D4FG	"""r"   r|   N)r}   r~   r   r   rG  r   r|   r"   r   rx  rx    s    #r"   rx  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   rL   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;   ri   rQ   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;   ri   rS   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;   ri   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;   ri   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;   ri   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;   r5  rQ   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;   r5  rS   r  r   r%  s    r   r8   NetBSDTestCase.test_swapmem_free,  s;    ""$))D,>,>{,KKL 	
 r"   c                     [         R                  " 5       nUR                  UR                  UR                  -
  :X  d   eg r)   )r;   r5  rR   rQ   rS   )rA   smems     r   r<   NetBSDTestCase.test_swapmem_used2  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)  )rA   r  r!   r)  s       r   r*  (NetBSDTestCase.test_cpu_stats_interrupts8  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$  )rA   r  r!   r$  s       r   r&  *NetBSDTestCase.test_cpu_stats_ctx_switchesB  s    ,%??7++#&tzz|A#7L 
 !!566 	 & 6##%22\ABTIII &%r  r|   N)r}   r~   r   r   ru  r  r  r   r  r  r   r?  r8  r<  r*  r&  r   r|   r"   r   r  r    sI    3 3P





3FJr"   r  )$r   rz  osru   r   r>   r;   r   r   r   r   psutil.testsr   r   r	   r
   r   r   r   r   _psplatformcextgetpagesizer   getuidr   rv  r   r   r   r   r&   r   r   rx  r  r|   r"   r   <module>r     s   +  	 	        $ * '  )  & "!!&&224H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iN i 8ib K7#n # 8# J}5RJ^ RJ 6RJr"   