
    XiN                     P   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rBej        j                                        Z ej                    dk    o ej        d          ZndZdZd Zd Zej                            e d           G d de                      Zej                            e d           G d de                      Z ej                            e d           G d de                      Z!ej                            e
 d           G d de                      Z"ej                            e	 d           G d  d!e                      Z#dS )"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!||                    d          dz   d         }n.t          st          r ||                    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     m/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/psutil/tests/test_bsd.pysysctlr   )   s     	G#$$F 0D))A-//0	 0F 0C((1,../6{{   s   *A9 9BBc                     t          d          }|                    d          D ]}|                    |           r nt          d          t	          |                                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   so    
V**C		$ + +??5!! 	E	 )***tzz||A    zBSD onlyreasonc                   
   e Zd ZdZed             Zed             Zej        	                    e
d          d             Zd Zej        	                     ej        d           d	          d
             Zej        	                     ej        d           d	          ej        	                    e
d          d                         Zej        	                     ej        d           d          d             ZdS )BSDTestCasez)Generic tests common to all BSD variants.c                 6    t                      j        | _        d S Nr   pidclss    r   
setUpClasszBSDTestCase.setUpClassL       //%r"   c                 .    t          | j                   d S r(   r   r*   r+   s    r   tearDownClasszBSDTestCase.tearDownClassP       #'r"   z -o lstart doesn't work on NETBSDr#   c                 8   t          d| j                   }|                    dd                                          }t	          j        | j                                                  }t          j        dt          j	        |                    }||k    sJ d S )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   s    1tx1122>>)R006688~dh//;;==}"DN<$@$@
 
 <''''''r"   c                    d }t          j        d          D ]}t          j        |j                  } ||j                  \  }}}}|j        |k    sJ |j        |k    sJ t          |j        |z
            dk    r!t          j	        d|j         d|           c S t          |j
        |z
            dk    r!t          j	        d|j
         d|           c S d S )Nc                    t          d|  d                                          }|                    d          }|                    d           |                    d          }|                                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    &t&&&''--//CIIdOOEIIaLLL99Q<<D%)ZZ\\"1"%5"Cdf}}JJ%Et99t#Dt99t#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55 		F 		FD%do66E%'R%8%8"Cd;#%%%%;%''''5:$%%(888{#DUZ#D#Dd#D#DEEEEE5:$%%(888{#DUZ#D#Dd#D#DEEEEE 9		F 		Fr"   r   zsysctl cmd not availablec                 Z    t          d          }t          j        d          |k    sJ d S )Nzhw.ncpuT)logical)r   r8   	cpu_countr>   systs     r   test_cpu_count_logicalz"BSDTestCase.test_cpu_count_logicaly   s6     i  ---555555r"   zskipped on NETBSDc                 `    t          d          }|t          j                    j        k    sJ d S )Nz
hw.physmem)r   r8   virtual_memoryrM   r>   nums     r   test_virtual_memory_totalz%BSDTestCase.test_virtual_memory_total   s4     \""f+--3333333r"   ifconfigzifconfig cmd not availablec                 .   t          j                                                    D ]n\  }}	 t          d|           }|j        d|v k    sJ d|v r3|j        t          t          j        d|          d                   k    sJ _# t          $ r Y kw xY wd S )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06688 	N 	NKD%N+T++,, zi3&67777C<< 9BJ|S,I,I!,L(M(MMMMM     	N 	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   s       33& & [&   [ ['IJJ( ( KJ(F F F6 [FL"""+E   6 6 6 [FL"""+E    [*   4 4  4 [FL$$$-I   	N 	N 	N 	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d	S )
FreeBSDPsutilTestCasec                 6    t                      j        | _        d S r(   r)   r+   s    r   r-   z FreeBSDPsutilTestCase.setUpClass   r.   r"   c                 .    t          | j                   d S r(   r0   r+   s    r   r1   z#FreeBSDPsutilTestCase.tearDownClass   r2   r"   c                    t          d| j                   }t          j        | j                                      d          }|                    d          dd          }|r|                                }|                                }|d d         \  }}}}	}
|                                }| d| |j        k    sJ t          |
          |j	        k    sJ |j
                            d          s|d	         |j
        k    sJ |d S d S )
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"   ***++~dh''33E3BB		$# 	.99;;DZZ\\F*0!*'AudFC((**C$$d$$0000s88sw&&&&8&&s++ .bzSX----  	. 	. 	. 	. 	.r"   c                     t          d| j                   }t          j        | j                                                  |                    d          d                                         d         k    sJ d S )Nzprocstat -b r   r   )r   r*   r8   r9   exer   r>   r    s     r   test_exezFreeBSDPsutilTestCase.test_exe   si    ***++~dh''++--41C1I1I1K1KB1OOOOOOOr"   c                 H   t          d| j                   }d                    t          j        | j                                                            d                    |                    d          d                                         dd                    k    sJ d S )Nzprocstat -c  r   r   r   )r   r*   joinr8   r9   r   r   r   s     r   test_cmdlinez"FreeBSDPsutilTestCase.test_cmdline   s    ***++xxtx0088::;;sxxIIdOOA$$&&qrr*@
 @
 
 
 
 
 
 
r"   c                 f   t          d| j                   }|                    d          d                                         dd         \  }}}}}}t          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 d S )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   ***++-0YYt__Q-?-E-E-G-G!-L*dD$dN48$$vvxxvvxxyCII%%%%~T****zSYY&&&&yCII%%%%~T****zSYY&&&&&&r"   c                    g }t          d| j                   }t          j        | j                  }|                    d          D ]}|                                                                }d|v r^t          |                                d                   }|                                j	        }||k    sJ |
                    d            d|v r]t          |                                d                   }|                                j        }||k    sJ |
                    d            t          |          dk    rt          d          d S )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   sF   ***++N48$$IIdOO 	$ 	$D::<<%%''D#t++!$**,,r"233 1133="l2222d####'4//!$**,,r"233 1133?"l2222d###v;;!JKKK r"   c                 $   g }t          d| j                   }t          j        | j                  }|                    d          D ]$}|                                                                }d|v rzt          d|                                d                             d          d         z             }|                                j	        }||k    sJ |
                    d            d|v ryt          d|                                d                             d          d         z             }|                                j        }||k    sJ |
                    d            &t          |          dk    rt          d	          d S )
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   sn   ***++N48$$IIdOO 	$ 	$D::<<%%''Dd""#D4::<<+;+A+A#+F+Fr+J$JKK {{}}1"l2222d####$&&#D4::<<+;+A+A#+F+Fr+J$JKK {{}}3"l2222d###v;;!JKKK r"   N)rs   rt   ru   rw   r-   r1   r   r   r   r   r   r   r   r|   r"   r   r~   r~      s        & & [&   [ . . .P P P
 
 
' ' ' L L L& L L L L Lr"   r~   c                      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                            e d	
          d             Zej                            e d	
           e            d                         Zej                            e d	
           e            d                         Zej                            e d	
           e            d                         Zej                            e d	
           e            d                         Zej                            e d	
           e            d                         Ze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                            e  d
          d             Z!ej                            e  d
          d             Z"ej                            e d
          d             Z#d Z$d S )!FreeBSDSystemTestCasec                      t          d                                          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   :   K   | ]}t          |          d z  V  dS )rH   N)r   ).0r   s     r   	<genexpr>z7FreeBSDSystemTestCase.parse_swapinfo.<locals>.<genexpr>  s,      ??qSVVd]??????r"   r   rF   )r   
splitlinesrm   r   r   )r?   partsrM   rN   rO   s        r   parse_swapinfoz$FreeBSDSystemTestCase.parse_swapinfo   s     M""--//3(( 	@>f>>??? @?E!A#J???tTdD  r"   c                 d   d}	 t          t          |                    }n$# t          $ r t          j        d          cY S w xY wt          j                    j        |k    sJ d}t          |          }t          |                                d                             d          d                   }t          |                                d                             d          d                   }t          j                    j	        |k    sJ t          j                    j
        |k    sJ d S )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//MM 	F 	F 	F;DEEEEE	F  (M9999(v }**,,Q/55c::1=>>}**,,R066s;;A>??  $0000  $000000s   ! AAc                     t          d          t          z  }t          t          j                    j        |z
            t          k     sJ d S )Nzvm.stats.vm.v_active_count)r   PAGESIZErV   r8   rb   activer   r^   s     r   test_vmem_activez&FreeBSDSystemTestCase.test_vmem_active  sF    233h>6(**1D899<MMMMMMMr"   c                     t          d          t          z  }t          t          j                    j        |z
            t          k     sJ d S )Nzvm.stats.vm.v_inactive_count)r   r   rV   r8   rb   inactiver   r^   s     r   test_vmem_inactivez(FreeBSDSystemTestCase.test_vmem_inactive!  sF    455@6(**3d:;;>OOOOOOOr"   c                     t          d          t          z  }t          t          j                    j        |z
            t          k     sJ d S )Nzvm.stats.vm.v_wire_count)r   r   rV   r8   rb   wiredr   r^   s     r   test_vmem_wiredz%FreeBSDSystemTestCase.test_vmem_wired&  sF    011H<6(**04788;LLLLLLLr"   c                     t          d          t          z  }t          t          j                    j        |z
            t          k     sJ d S )Nzvm.stats.vm.v_cache_count)r   r   rV   r8   rb   cachedr   r^   s     r   test_vmem_cachedz&FreeBSDSystemTestCase.test_vmem_cached+  sF    122X=6(**1D899<MMMMMMMr"   c                     t          d          t          z  }t          t          j                    j        |z
            t          k     sJ d S )Nzvm.stats.vm.v_free_count)r   r   rV   r8   rb   rO   r   r^   s     r   test_vmem_freez$FreeBSDSystemTestCase.test_vmem_free0  sF    011H<6(**/$677:KKKKKKKr"   c                     t          d          }t          t          j                    j        |z
            t
          k     sJ d S )Nzvfs.bufspace)r   rV   r8   rb   buffersr   r^   s     r   test_vmem_buffersz'FreeBSDSystemTestCase.test_vmem_buffers5  s@    n%%6(**2T9::=NNNNNNNr"   zmuse not installedr#   c                 `    t          d          }t          j                    j        |k    sJ d S )NTotal)r   r8   rb   rM   rc   s     r   test_muse_vmem_totalz*FreeBSDSystemTestCase.test_muse_vmem_total<  s0    7mm$&&,333333r"   c                     t          d          }t          t          j                    j        |z
            t
          k     sJ d S )NActive)r   rV   r8   rb   r   r   rc   s     r   test_muse_vmem_activez+FreeBSDSystemTestCase.test_muse_vmem_activeA  s@     8nn6(**1C788;LLLLLLLr"   c                     t          d          }t          t          j                    j        |z
            t
          k     sJ d S )NInactive)r   rV   r8   rb   r   r   rc   s     r   test_muse_vmem_inactivez-FreeBSDSystemTestCase.test_muse_vmem_inactiveG  sB     :6(**3c9::=NNNNNNNr"   c                     t          d          }t          t          j                    j        |z
            t
          k     sJ d S )NWired)r   rV   r8   rb   r   r   rc   s     r   test_muse_vmem_wiredz*FreeBSDSystemTestCase.test_muse_vmem_wiredM  s@     7mm6(**03677:KKKKKKKr"   c                     t          d          }t          t          j                    j        |z
            t
          k     sJ d S )NCache)r   rV   r8   rb   r   r   rc   s     r   test_muse_vmem_cachedz+FreeBSDSystemTestCase.test_muse_vmem_cachedS  s@     7mm6(**1C788;LLLLLLLr"   c                     t          d          }t          t          j                    j        |z
            t
          k     sJ d S )NFree)r   rV   r8   rb   rO   r   rc   s     r   test_muse_vmem_freez)FreeBSDSystemTestCase.test_muse_vmem_freeY  s@     6ll6(**/#5669JJJJJJJr"   c                     t          d          }t          t          j                    j        |z
            t
          k     sJ d S )NBuffer)r   rV   r8   rb   r   r   rc   s     r   test_muse_vmem_buffersz,FreeBSDSystemTestCase.test_muse_vmem_buffers_  s@     8nn6(**2S899<MMMMMMMr"   c                 |    t          t          j                    j        t	          d          z
            dk     sJ d S )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  sR     ""//001  	     r"   c                 |    t          t          j                    j        t	          d          z
            dk     sJ d S )Nzvm.stats.sys.v_intrr   )rV   r8   r   
interruptsr   r   s    r   test_cpu_stats_interruptsz/FreeBSDSystemTestCase.test_cpu_stats_interruptsn  sH     ""-7L0M0MMNN     r"   c                 |    t          t          j                    j        t	          d          z
            dk     sJ d S )Nzvm.stats.sys.v_softr   )rV   r8   r   soft_interruptsr   r   s    r   test_cpu_stats_soft_interruptsz4FreeBSDSystemTestCase.test_cpu_stats_soft_interruptst  sR     ""2.//0  	     r"   c                 |    t          t          j                    j        t	          d          z
            dk     sJ d S )Nzvm.stats.sys.v_syscalli@ )rV   r8   r   syscallsr   r   s    r   test_cpu_stats_syscallsz-FreeBSDSystemTestCase.test_cpu_stats_syscalls}  sJ      ""+f5M.N.NNOO     r"   c                     |                                  \  }}}t          t          j                    j        |z
            t
          k     sJ d S r(   )r   rV   r8   swap_memoryrO   r   )r>   _total_usedrO   s       r   test_swapmem_freez'FreeBSDSystemTestCase.test_swapmem_free  sK    "1133t6%'',t3447HHHHHHHr"   c                     |                                  \  }}}t          t          j                    j        |z
            t
          k     sJ d S r(   )r   rV   r8   r  rN   r   )r>   r  rN   _frees       r   test_swapmem_usedz'FreeBSDSystemTestCase.test_swapmem_used  sK    "1133e6%'',t3447HHHHHHHr"   c                     |                                  \  }}}t          t          j                    j        |z
            t
          k     sJ d S r(   )r   rV   r8   r  rM   r   )r>   rM   r  r  s       r   test_swapmem_totalz(FreeBSDSystemTestCase.test_swapmem_total  sK    "1133ue6%''-5669JJJJJJJr"   c                     t          d          }||                    d          dz   d          }|d |                    d                   }t          |          }|t          j                    k    sJ d S )Nzsysctl kern.boottimez sec =    ,)r   r   r   r8   	boot_time)r>   sbtimes      r   test_boot_timez$FreeBSDSystemTestCase.test_boot_time  st    )**affY!#%%&msmA(********r"   z
no batteryc                 t   d }t          d          }d |                    d          D             }t          j                    }t	          |d                             dd                    }|d         }|j        |k    sJ |d	k    r|j        t          j        k    sJ d S  ||j                  |k    sJ d S )
Nc                     t          | d          \  }}t          |d          \  }}t          |           dt          |          dS )N<   :02)divmodr   )secsm_shs       r   
secs2hoursz>FreeBSDSystemTestCase.test_sensors_battery.<locals>.secs2hours  sI    4$$EAr!R==DAq!ff**s1vv****r"   zacpiconf -i 0c                 x    i | ]7}|                     d           d         |                     d           d         8S )	r   r   )r   )r   xs     r   
<dictcomp>z>FreeBSDSystemTestCase.test_sensors_battery.<locals>.<dictcomp>  s8    OOO!!''$--"AGGDMM"$5OOOr"   r   zRemaining capacity:%r5   zRemaining time:unknown)	r   r   r8   sensors_batteryr   r6   percentsecsleftPOWER_TIME_UNLIMITED)r>   r&  r    r   metricsr.  remaining_times          r   test_sensors_batteryz*FreeBSDSystemTestCase.test_sensors_battery  s    	+ 	+ 	+
 !!OOsyyOOO(**f23;;CDDEE 12'))))Y&&#v'BBBBBBB:g.//>AAAAAAr"   c                 T   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 d S |t          d          dz  k    sJ d S )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
 4
 
 
 
 
 %''5#$$)
 
 
 
 )++4a<<011R777777v&<==BBBBBBBr"   zhas batteryc                     t          j        t                    5  t          d           t          d           t          d           d d d            n# 1 swxY w Y   t	          j                    J d S )Nr5  r7  r6  )r
   raisesro   r   r8   r-  r   s    r   test_sensors_battery_no_batteryz5FreeBSDSystemTestCase.test_sensors_battery_no_battery  s    
 ]<(( 	% 	%)***)***#$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% %''/////s   .AAAc                 F   t          j        d          }t          |          D ]}d| d}	 t          t	          t          |          d d                             }n&# t          $ r t          j        d          cY c S w xY wt          t          j
                    d         |         j        |z
            dk     sJ d| d}t          t	          t          |          d d                             }t          j
                    d         |         j        |k    sJ d S )	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1111FK #E&.."*=$>$> ? ? K K K{#IJJJJJJJK /11*=cBJ#$  	    5444FfVnnSbS&9 : :;;M+--j9#>C ! ! ! ! !%	 	s   1ABB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   r3  r9  r<  rD  r|   r"   r   r   r      ss       
! 
! \
!1 1 1, N N N P P P M M M N N N L L L O O O [N*3GHH4 4 IH4 [N*3GHHM M  IHM [N*3GHHO O  IHO [N*3GHHL L  IHL [N*3GHHM M  IHM [N*3GHHK K  IHK [N*3GHHN N  IHN
 
 

 
 

 
 
 
 
 
I I II I IK K K+ + + [K==B B >=B" [K==C C >=C [M::0 0 ;:0    r"   r   zOPENBSD onlyc                       e Zd Zd ZdS )OpenBSDTestCasec                     t          d          }t          j                            |d          }t          j                            t	          j                              }||k    sJ d S )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  s^    ?##"++A/EFF%33F4D4F4FGG	""""""r"   N)rs   rt   ru   r  r|   r"   r   rH  rH    s#        # # # # #r"   rH  zNETBSD onlyc                   `    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dS )NetBSDTestCasec                    t          d          5 }|D ]O}|                    |           r8t          |                                d                   dz  c cd d d            S P	 d d d            n# 1 swxY w Y   t	          d|            )Nz/proc/meminfor   rH   zcan't find )openr   r   r   r   )look_forfr!   s      r   parse_meminfozNetBSDTestCase.parse_meminfo  s    /"" 	7a 7 7??8,, 7tzz||A//$666	7 	7 	7 	7 	7 	7 	7 	777	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 1x11222s   AA0"A00A47A4c                 h    t          j                    j        |                     d          k    sJ d S )Nz	MemTotal:)r8   rb   rM   rU  r   s    r   test_vmem_totalzNetBSDTestCase.test_vmem_total  s3    $&&,0B0B;0O0OOOOOOOr"   c                     t          t          j                    j        |                     d          z
            t
          k     sJ d S )NzMemFree:)rV   r8   rb   rO   rU  r   r   s    r   r   zNetBSDTestCase.test_vmem_free  sM    %'',t/A/A*/M/MMNN           r"   c                     t          t          j                    j        |                     d          z
            t
          k     sJ d S )NzBuffers:)rV   r8   rb   r   rU  r   r   s    r   r   z NetBSDTestCase.test_vmem_buffers  sW    %''/$$Z001   	           r"   c                     t          t          j                    j        |                     d          z
            t
          k     sJ d S )Nz
MemShared:)rV   r8   rb   sharedrU  r   r   s    r   test_vmem_sharedzNetBSDTestCase.test_vmem_shared  sW    %''.$$\223   	           r"   c                     t          t          j                    j        |                     d          z
            t
          k     sJ d S )NzCached:)rV   r8   rb   r   rU  r   r   s    r   r   zNetBSDTestCase.test_vmem_cached  sM    %''.1C1CI1N1NNOO           r"   c                     t          t          j                    j        |                     d          z
            t
          k     sJ d S )Nz
SwapTotal:)rV   r8   r  rM   rU  r   r   s    r   r  z!NetBSDTestCase.test_swapmem_total&  sM    "$$*T-?-?-M-MMNN           r"   c                     t          t          j                    j        |                     d          z
            t
          k     sJ d S )Nz	SwapFree:)rV   r8   r  rO   rU  r   r   s    r   r  z NetBSDTestCase.test_swapmem_free,  sM    "$$)D,>,>{,K,KKLL           r"   c                 `    t          j                    }|j        |j        |j        z
  k    sJ d S r(   )r8   r  rN   rM   rO   )r>   smems     r   r  z NetBSDTestCase.test_swapmem_used2  s2    !##yDJ2222222r"   c                 X   t          dd          5 }|D ]@}|                    d          r)t          |                                d                   } nAt	          d          	 d d d            n# 1 swxY w Y   t          t          j                    j        |z
            dk     sJ d S )N
/proc/statrbs   intrr   couldn't find liner   )	rR  r   r   r   r   rV   r8   r   r  )r>   rT  r!   r  s       r   r  z(NetBSDTestCase.test_cpu_stats_interrupts8  s    ,%% 	7 7 7??7++ !$TZZ\\!_!5!5JE !!5666 		7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 6#%%0:=>>EEEEEE   AA11A58A5c                 X   t          dd          5 }|D ]@}|                    d          r)t          |                                d                   } nAt	          d          	 d d d            n# 1 swxY w Y   t          t          j                    j        |z
            dk     sJ d S )Nrc  rd  s   ctxtr   re  r   )	rR  r   r   r   r   rV   r8   r   r   )r>   rT  r!   r   s       r   r  z*NetBSDTestCase.test_cpu_stats_ctx_switchesB  s    ,%% 	7 7 7??7++ #&tzz||A#7#7LE !!5666 		7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 6#%%2\ABBTIIIIIIrf  N)rs   rt   ru   rE  rU  rW  r   r   r\  r   r  r  r  r  r  r|   r"   r   rP  rP    s        3 3 \3P P P
 
 

 
 

 
 

 
 

 
 

 
 
3 3 3F F FJ J J J Jr"   rP  )$rv   rJ  osrm   rz   r;   r8   r   r   r   r   psutil.testsr   r   r	   r
   r   r   r   r   _psplatformcextgetpagesizer   getuidr{   rF  r   r   rx   ry   r&   r~   r   rH  rP  r|   r"   r   <module>rn     sV   + *  				 				                            $ $ $ $ $ $ * * * * * * ' ' ' ' ' '       ) ) ) ) ) )       & & & & & & " " " " " " !&2244HRY[[A%>,&,v*>*>NNHN         GJ//MN MN MN MN MN. MN MN 0/MNj K77UL UL UL UL ULN UL UL 87ULp K77i i i i iN i i 87ib K77# # # # #n # # 87# J}55RJ RJ RJ RJ RJ^ RJ RJ 65RJ RJ RJr"   