
    gN                     .   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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 ddl
mZ er/ddlmZ  e            Z ej                    dk    o
 e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)which)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     Q/var/www/html/ai-engine/env/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d           d	          d
             Zej        	                     ed           d	          ej        	                    e
d          d                         Zej        	                     e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.setUpClassP        ""&r$   c                 .    t          | j                   d S r*   r   r,   r-   s    r   tearDownClasszBSDTestCase.tearDownClassT       #'r$   z -o lstart doesn't work on NETBSDr%   c                 8   t          d| j        z            }|                    dd                                          }t	          j        | j                                                  }t          j        dt          j	        |                    }||k    sJ d S )Nzps -o lstart -p %s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_timeX   s    (48344>>)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| z                                            }|                    d          }|                    d           |                    d          }|                                d d         \  }}}}|dk    rd}t	          |          dz  }t	          |          dz  }t	          |          dz  }||||fS )Nz
df -k "%s"r   r      noner7      )r   r9   r   popr   )pathr"   linesr#   devtotalusedfrees           r   dfz"BSDTestCase.test_disks.<locals>.dfe   s    \D())//11CIIdOOEIIaLLL99Q<<D%)ZZ\\"1"%5"Cdf}}JJ%Et99t#Dt99t#DtT))r$   F)alli   zpsutil=z, df=)
r:   disk_partitions
disk_usage
mountpointdevicerN   absrP   failrO   )r@   rQ   partusagerM   rN   rO   rP   s           r   
test_diskszBSDTestCase.test_disksb   s   	* 	* 	* *u555 		I 		ID%do66E%'R%8%8"Cd;#%%%%;%''''5:$%%(888iiiejjj$$ GHHH5:$%%(888iiiejjj$$ GHHH 9		I 		Ir$   r   zsysctl cmd not availablec                 Z    t          d          }t          j        d          |k    sJ d S )Nzhw.ncpuT)logical)r   r:   	cpu_countr@   systs     r   test_cpu_count_logicalz"BSDTestCase.test_cpu_count_logical}   s4    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   r:   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|z            }|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 %sRUNNINGmtuz	mtu (\d+)r   )
r:   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-.. 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/   r3   r
   markskipifr   rD   r[   r   ra   rf   rs    r$   r   r(   r(   L   s       33' ' ['   [ ['IJJ( ( KJ(I I I6 [EE(OO+4NOO6 6 PO6 [EE(OO+4NOO[*   4 4  PO4 [E*&B   	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   r0   r$   c                 .    t          | j                   d S r*   r2   r-   s    r   r3   z#FreeBSDPsutilTestCase.tearDownClass   r4   r$   c                    t          d| j        z            }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 %sF)groupedr   r      -[
   )r   r,   r:   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,--~dh''33E3BB		$# 	.99;;DZZ\\F*0!*'AudFC((**C#eeTT*ch6666s88sw&&&&8&&s++ .bzSX----  	. 	. 	. 	. 	.r$   c                     t          d| j        z            }t          j        | j                                                  |                    d          d                                         d         k    sJ d S )Nzprocstat -b %sr   r   )r   r,   r:   r;   exer   r@   r"   s     r   test_exezFreeBSDPsutilTestCase.test_exe   sf    !DH,--~dh''++--41C1I1I1K1KB1OOOOOOOr$   c                 H   t          d| j        z            }d                    t          j        | j                                                            d                    |                    d          d                                         dd                    k    sJ d S )Nzprocstat -c %s r   r   r   )r   r,   joinr:   r;   r   r   r   s     r   test_cmdlinez"FreeBSDPsutilTestCase.test_cmdline   s    !DH,--xxtx0088::;;sxxIIdOOA$$&&qrr*@
 @
 
 
 
 
 
 
r$   c                 f   t          d| j        z            }|                    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 %sr   r   r      )r   r,   r   r:   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   !DH,---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        z            }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 %sr   z voluntary contextr   z involuntary contextr   )couldn't find lines match in procstat out)r   r,   r:   r;   r   lowerr9   r   num_ctx_switches	voluntaryappendinvoluntarylenrp   r@   testedr"   r   r#   pstat_valuepsutil_values          r   test_ctx_switchesz'FreeBSDPsutilTestCase.test_ctx_switches   sC   !DH,--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        z            }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,   r:   r;   r   r   r9   float	cpu_timesuserr   systemr   rp   r   s          r   test_cpu_timesz$FreeBSDPsutilTestCase.test_cpu_times   sk   !DH,--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/   r3   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| z            d |dd         D             \  }}}|||fS )Nzswapinfo -kr   z\s+zCan't parse swapinfo: %sc              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   )rA   partsrN   rO   rP   s        r   parse_swapinfoz$FreeBSDSystemTestCase.parse_swapinfo   s     M""--//3(( 	B7&@AAA @?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
   skipr:   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   r:   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   r:   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   r:   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   r:   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   r:   rc   rP   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   rW   r:   rc   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   r:   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   r:   rc   r   r   rd   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   rW   r:   rc   r   r   rd   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   rW   r:   rc   r   r   rd   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   rW   r:   rc   r   r   rd   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   rW   r:   rc   rP   r   rd   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   rW   r:   rc   r   r   rd   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  )rW   r:   	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   )rW   r:   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   )rW   r:   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@ )rW   r:   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   r:   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   r:   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   r:   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   r:   	boot_time)r@   sbtimes      r   test_boot_timez$FreeBSDSystemTestCase.test_boot_time  st    )**affY!#%%&msmA(********r$   z
no batteryc                    d }t          d          }t          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          \  }}d||fz  S )N<   z%d:%02d)divmod)secsm_shs       r   
secs2hoursz>FreeBSDSystemTestCase.test_sensors_battery.<locals>.secs2hours  s5    4$$EAr!R==DAq1v%%r$   zacpiconf -i 0c                 z    g | ]8}|                     d           d         |                     d           d         f9S )	r   r   )r   )r   xs     r   
<listcomp>z>FreeBSDSystemTestCase.test_sensors_battery.<locals>.<listcomp>  s;    LLLqaggdmmAb 12LLLr$   r   zRemaining capacity:%r7   zRemaining time:unknown)
r   dictr   r:   sensors_batteryr   r8   percentsecsleftPOWER_TIME_UNLIMITED)r@   r#  r"   r   metricsr,  remaining_times          r   test_sensors_batteryz*FreeBSDSystemTestCase.test_sensors_battery  s    	& 	& 	&
 !!LLCIIdOOLLL
 
 (**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  )r:   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 )Nr3  r5  r4  )r
   raisesrp   r   r:   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|z  }	 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|z  }t          t	          t          |          d d                             }t          j
                    d         |         j        |k    sJ d S )NTzdev.cpu.%s.temperaturer   z$temperatures not supported by kernelcoretempr   zdev.cpu.%s.coretemp.tjmax)r:   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  sE   #D))?? 	 	C-3FJ #E&.."*=$>$> ? ? J J Jk"HIIIJ /11*=cBJ#$  	    136F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   r1  r7  r:  rB  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fromtimestampr:   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   rF  rF    s#        # # # # #r$   rF  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| z            )Nz/proc/meminfor   rI   zcan't find %s)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 83444s   AA0"A00A47A4c                 h    t          j                    j        |                     d          k    sJ d S )Nz	MemTotal:)r:   rc   rN   rS  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   r:   rc   rP   rS  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   r:   rc   r   rS  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   r:   rc   sharedrS  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   r:   rc   r   rS  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   r:   r  rN   rS  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   r:   r  rP   rS  r   r   s    r   r  z NetBSDTestCase.test_swapmem_free2  sM    "$$)D,>,>{,K,KKLL           r$   c                 `    t          j                    }|j        |j        |j        z
  k    sJ d S r*   )r:   r  rO   rN   rP   )r@   smems     r   r  z NetBSDTestCase.test_swapmem_used8  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   )	rP  r    r   r   r   rW   r:   r   r  )r@   rR  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 )Nra  rb  s   ctxtr   rc  r   )	rP  r    r   r   r   rW   r:   r   r   )r@   rR  r#   r   s       r   r   z*NetBSDTestCase.test_cpu_stats_ctx_switchesH  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Ird  N)rt   ru   rv   rC  rS  rU  r   r   rZ  r   r  r  r  r  r   r{   r$   r   rN  rN    s        5 5 \5P P P
 
 

 
 

 
 

 
 

 
 

 
 
3 3 3F F FJ J J J Jr$   rN  )"rw   rH  osrn   r=   r:   r   r   r   r   psutil.testsr   r   r	   r
   r   r   r   r   r   psutil._psutil_posixr   r   getuidrD  r   r   ry   rz   r(   r}   r   rF  rN  r{   r$   r   <module>rj     se   + *  				 				                           $ $ $ $ $ $ * * * * * * ' ' ' ' ' '       ) ) ) ) ) )       ' ' ' ' ' ' " " " " " "        000000{}}HRY[[A%7%%--NNHN         GJ//IN IN IN IN IN. IN IN 0/INb 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o o o o oN o o 87on 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$   