
    /hN                     4   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r4ddlmZ  e            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_testproc)	terminate)getpagesize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     H/var/www/html/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   ;   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.setUpClassO        ""&r#   c                 .    t          | j                   d S r)   r   r+   r,   s    r   tearDownClasszBSDTestCase.tearDownClassS       #'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_timeW   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 |                     d|j         d|           t          |j	        |z
            dk    r |                     d|j	         d|           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      noner6      )r   r8   r   popr   )pathr!   linesr"   devtotalusedfrees           r   dfz"BSDTestCase.test_disks.<locals>.dfd   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=)
r9   disk_partitions
disk_usage
mountpointdevicerN   absrP   failrO   )r?   rQ   partusagerM   rN   rO   rP   s           r   
test_diskszBSDTestCase.test_disksa   s   	* 	* 	* *u555 		C 		CD%do66E%'R%8%8"Cd;#%%%%;%''''5:$%%(888ii A%* A A4 A ABBB5:$%%(888ii A%* A A4 A ABBB 9		C 		Cr#   r   zsysctl cmd not availablec                 Z    t          d          }t          j        d          |k    sJ d S )Nzhw.ncpuT)logical)r   r9   	cpu_countr?   systs     r   test_cpu_count_logicalz"BSDTestCase.test_cpu_count_logical|   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   r9   virtual_memoryrN   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   )
r9   net_if_statsitemsr   isuprj   r   refindallRuntimeError)r?   namestatsr!   s       r   test_net_if_statszBSDTestCase.test_net_if_stats   s     ".0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.   r2   r
   markskipifr   rC   r[   shutilwhichra   rf   rs    r#   r   r'   r'   K   s       33' ' ['   [ ['IJJ( ( KJ(C C C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)   r1   r,   s    r   r2   z#FreeBSDPsutilTestCase.tearDownClass   r3   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+   r9   r:   memory_mapsr   rJ   addrr   rssrK   r   )r?   r!   mapsrL   r"   fields_startstop_permsresmaps               r   test_memory_mapsz&FreeBSDPsutilTestCase.test_memory_maps   s"   ***++~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+   r9   r:   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+   joinr9   r:   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   r9   r:   uidsgidsrealr   	effectivesaved)r?   r!   euidruidsuidegidrgidsgidpr   r   s              r   test_uids_gidsz$FreeBSDPsutilTestCase.test_uids_gids   s   ***++-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+   r9   r:   r   lowerr8   r   num_ctx_switches	voluntaryappendinvoluntarylenrp   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+   r9   r:   r   r   r8   float	cpu_timesuserr   systemr   rp   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)rt   ru   rv   rx   r.   r2   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 )rI   N)r   ).0r   s     r   	<genexpr>z7FreeBSDSystemTestCase.parse_swapinfo.<locals>.<genexpr>  s,      ??qSVVd]??????r#   r   rG   )r   
splitlinesrn   r   r   )r@   partsrN   rO   rP   s        r   parse_swapinfoz$FreeBSDSystemTestCase.parse_swapinfo   s     M""--//3(( 	@>f>>??? @?E!A#J???tTdD  r#   c                 `   d}	 t          t          |                    }n"# t          $ r t          j        d          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   rp   r
   skipr9   cpu_freqcurrentr   maxmin)r?   sensorsysctl_resultmax_freqmin_freqs        r   !test_cpu_frequency_against_sysctlz7FreeBSDSystemTestCase.test_cpu_frequency_against_sysctl	  s"    "	Ev//MM 	E 	E 	E+CDDD	E  (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 c                     t          d          t          z  }t          t          j                    j        |z
            t          k     sJ d S )Nzvm.stats.vm.v_active_count)r   PAGESIZErW   r9   rc   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   rW   r9   rc   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   rW   r9   rc   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   rW   r9   rc   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   rW   r9   rc   rP   r   r_   s     r   test_vmem_freez$FreeBSDSystemTestCase.test_vmem_free3  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   rW   r9   rc   buffersr   r_   s     r   test_vmem_buffersz'FreeBSDSystemTestCase.test_vmem_buffers8  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   r9   rc   rN   rd   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   rW   r9   rc   r   r   rd   s     r   test_muse_vmem_activez+FreeBSDSystemTestCase.test_muse_vmem_activeD  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   rW   r9   rc   r   r   rd   s     r   test_muse_vmem_inactivez-FreeBSDSystemTestCase.test_muse_vmem_inactiveJ  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   rW   r9   rc   r   r   rd   s     r   test_muse_vmem_wiredz*FreeBSDSystemTestCase.test_muse_vmem_wiredP  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   rW   r9   rc   r   r   rd   s     r   test_muse_vmem_cachedz+FreeBSDSystemTestCase.test_muse_vmem_cachedV  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   rW   r9   rc   rP   r   rd   s     r   test_muse_vmem_freez)FreeBSDSystemTestCase.test_muse_vmem_free\  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   rW   r9   rc   r   r   rd   s     r   test_muse_vmem_buffersz,FreeBSDSystemTestCase.test_muse_vmem_buffersb  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  )rW   r9   	cpu_statsctx_switchesr   r?   s    r   test_cpu_stats_ctx_switchesz1FreeBSDSystemTestCase.test_cpu_stats_ctx_switchesh  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   )rW   r9   r   
interruptsr   r  s    r   test_cpu_stats_interruptsz/FreeBSDSystemTestCase.test_cpu_stats_interruptsq  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   )rW   r9   r   soft_interruptsr   r  s    r   test_cpu_stats_soft_interruptsz4FreeBSDSystemTestCase.test_cpu_stats_soft_interruptsw  sR     ""2.//0  	     r#   c                 |    t          t          j                    j        t	          d          z
            dk     sJ d S )Nzvm.stats.sys.v_syscalli@ )rW   r9   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   rW   r9   swap_memoryrP   r   )r?   _total_usedrP   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   rW   r9   r  rO   r   )r?   r  rO   _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   rW   r9   r  rN   r   )r?   rN   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   r9   	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:%r6   zRemaining time:unknown)	r   r   r9   sensors_batteryr   r7   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  )r9   r.  r/  r   power_pluggedr0  )r?   r0  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 )Nr6  r8  r7  )r
   raisesrp   r   r9   r.  r  s    r   test_sensors_battery_no_batteryz5FreeBSDSystemTestCase.test_sensors_battery_no_battery  s    
 ]<(( 	% 	%)***)***#$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% %''/////s   .AAAc                 >   t          j        d          }t          |          D ]}d| d}	 t          t	          t          |          d d                             }n"# t          $ r t          j        d          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)r9   r^   ranger   r   r   rp   r
   r   rW   sensors_temperaturesr   high)r?   num_cpuscpur   r   s        r   (test_sensors_temperatures_against_sysctlz>FreeBSDSystemTestCase.test_sensors_temperatures_against_sysctl  sQ   #D))?? 	 	C1111FJ #E&.."*=$>$> ? ? J J Jk"HIIIJ /11*=cBJ#$  	    5444FfVnnSbS&9 : :;;M+--j9#>C ! ! ! ! !%	 	s   1AA>N)%rt   ru   rv   staticmethodr   r   r   r   r   r   r   r   r   r
   ry   rz   MUSE_AVAILABLEr   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r   r4  r:  r=  rE  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fromtimestampr9   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)rt   ru   rv   r  r}   r#   r   rI  rI    s#        # # # # #r#   rI  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   rI   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:)r9   rc   rN   rV  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:)rW   r9   rc   rP   rV  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:)rW   r9   rc   r   rV  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:)rW   r9   rc   sharedrV  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:)rW   r9   rc   r   rV  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:)rW   r9   r  rN   rV  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:)rW   r9   r  rP   rV  r   r  s    r   r  z NetBSDTestCase.test_swapmem_free3  sM    "$$)D,>,>{,K,KKLL           r#   c                 `    t          j                    }|j        |j        |j        z
  k    sJ d S r)   )r9   r  rO   rN   rP   )r?   smems     r   r  z NetBSDTestCase.test_swapmem_used9  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   )	rS  r   r   r   r   rW   r9   r   r  )r?   rU  r"   r  s       r   r  z(NetBSDTestCase.test_cpu_stats_interrupts?  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 )Nrd  re  s   ctxtr   rf  r   )	rS  r   r   r   r   rW   r9   r   r   )r?   rU  r"   r   s       r   r  z*NetBSDTestCase.test_cpu_stats_ctx_switchesI  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Irg  N)rt   ru   rv   rF  rV  rX  r   r   r]  r   r  r  r  r  r  r}   r#   r   rQ  rQ    s        3 3 \3P P P
 
 

 
 

 
 

 
 

 
 

 
 
3 3 3F F FJ J J J Jr#   rQ  )#rw   rK  osrn   r{   r<   r9   r   r   r   r   psutil.testsr   r   r	   r
   r   r   r   r   psutil._psutil_posixr   r   getuidr|   rG  r   r   ry   rz   r'   r   r   rI  rQ  r}   r#   r   <module>rm     s^   + *  				 				                            $ $ $ $ $ $ * * * * * * ' ' ' ' ' '       ) ) ) ) ) )       ' ' ' ' ' ' " " " " " "  000000{}}H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m m m m mN m m 87mj 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#   