
    ɧdP                        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r3ddlmZ  e            Z ej                    dk    r ed          rdn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 e!d$k    rdd%l"m#Z#  e#e$           dS dS )&z$Tests specific to all BSD platforms.    N)BSD)FREEBSD)NETBSD)OPENBSD)HAS_BATTERY)TOLERANCE_SYS_MEM)PsutilTestCase)retry_on_failure)sh)spawn_testproc)	terminate)unittest)which)getpagesizemuseTFc                    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     5lib/python3.11/site-packages/psutil/tests/test_bsd.pysysctlr   -   s     	G#$$F /D))A-../	 /F /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 onlyc                      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          d
             Z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 NETBSDc                 T   t          d| j        z            }|                    dd                                          }t	          j        | j                                                  }t          j        dt          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assertEqual)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//;;==}%;%)^L%A%AC C<00000r$   c                    d }t          j        d          D ]}t          j        |j                  } ||j                  \  }}}}|                     |j        |           |                     |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      noner5      )r   r7   r   popr   )pathr"   linesr#   devtotalusedfrees           r   dfz"BSDTestCase.test_disks.<locals>.dfd   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=)r8   disk_partitions
disk_usage
mountpointr>   devicerM   absrO   failrN   )r?   rP   partusagerL   rM   rN   rO   s           r   
test_diskszBSDTestCase.test_disksa   s   	* 	* 	* *u555 		C 		CD%do66E%'R%8%8"CdT[#...U[%0005:$%%(88 C			


DDABBB5:$%%(88 C			


DDABBB		C 		Cr$   r   zsysctl cmd not availablec                 v    t          d          }|                     t          j        d          |           d S )Nzhw.ncpuT)logical)r   r>   r8   	cpu_countr?   systs     r   test_cpu_count_logicalz"BSDTestCase.test_cpu_count_logical|   s9    i  )$777>>>>>r$   c                 |    t          d          }|                     |t          j                    j                   d S )Nz
hw.physmem)r   r>   r8   virtual_memoryrM   r?   nums     r   test_virtual_memory_totalz%BSDTestCase.test_virtual_memory_total   s7    \""f355;<<<<<r$   c           
      j   t          j                                                    D ]\  }}	 t          d|z            }|                     |j        d|v |           d|v rA|                     |j        t          t          j	        d|          d                              }# t          $ r Y w xY wd S )Nzifconfig %sRUNNING)msgmtuz	mtu (\d+)r   )r8   net_if_statsitemsr   r>   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 		L 		LKD%L-..   Y#-=3 GGGC< L$$UY%(L#)F)Fq)I%J%JL L L     		L 		Ls   B##
B0/B0N)__name__
__module____qualname____doc__classmethodr-   r1   r   skipIfr   rC   rZ   r   r`   re   rr    r$   r   r&   r&   L   s       33' ' ['   [ X_V?@@1 1 A@1C C C6 X_x(*DEE? ? FE? X_x(*DEE= = FE=
L 
L 
L 
L 
L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                 r   t          d| j        z            }t          j        | j                                      d          }|                    d          dd          }|r|                                }|                                }|d d         \  }}}}	}
|                                }|                     |d||j                   |                     t          |
          |j
                   |j                            d          s!|                     |d	         |j                   |d S d S )
Nzprocstat -v %sF)groupedr   r      -[
   )r   r*   r8   r9   memory_mapsr   rI   r>   addrr   rssrJ   r    )r?   r"   mapsrK   r#   fields_startstoppermsresmaps               r   test_memory_mapsz&FreeBSDPsutilTestCase.test_memory_maps   s+   !DH,--~dh''33E3BB		$# 	799;;DZZ\\F)/&AudE3((**Ctt4ch???SXXsw///8&&s++ 7  SX666  	7 	7 	7 	7 	7r$   c                    t          d| j        z            }|                     t          j        | j                                                  |                    d          d                                         d                    d S )Nzprocstat -b %sr   r   )r   r*   r>   r8   r9   exer   r?   r"   s     r   test_exezFreeBSDPsutilTestCase.test_exe   sv    !DH,--1155774+1133B7	9 	9 	9 	9 	9r$   c                 d   t          d| j        z            }|                     d                    t	          j        | j                                                            d                    |                    d          d                                         dd                               d S )Nzprocstat -c %s r   r   r   )r   r*   r>   joinr8   r9   r   r   r   s     r   test_cmdlinez"FreeBSDPsutilTestCase.test_cmdline   s    !DH,--&.":":"B"B"D"DEE#))D//!"4":":"<"<QRR"@AA	C 	C 	C 	C 	Cr$   c                    t          d| j        z            }|                    d          d                                         dd         \  }}}}}}t          j        | j                  }|                                }	|                                }
|                     |	j        t          |                     |                     |	j
        t          |                     |                     |	j        t          |                     |                     |
j        t          |                     |                     |
j
        t          |                     |                     |
j        t          |                     d S )Nzprocstat -s %sr   r   r      )r   r*   r   r8   r9   uidsgidsr>   realr   	effectivesaved)r?   r"   euidruidsuidegidrgidsgidpr   r   s              r   test_uids_gidsz$FreeBSDPsutilTestCase.test_uids_gids   s2   !DH,---0YYt__Q-?-E-E-G-G!-L*dD$dN48$$vvxxvvxxCII...T333SYY///CII...T333SYY/////r$   c                    g }t          d| j        z            }t          j        | j                  }|                    d          D ]}|                                                                }d|v rlt          |                                d                   }|                                j	        }| 
                    ||           |                    d            d|v rkt          |                                d                   }|                                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*   r8   r9   r   lowerr7   r   num_ctx_switches	voluntaryr>   appendinvoluntarylenro   r?   testedr"   r   r#   pstat_valuepsutil_values          r   test_ctx_switchesz'FreeBSDPsutilTestCase.test_ctx_switches   sX   !DH,--N48$$IIdOO 	$ 	$D::<<%%''D#t+ 	$!$**,,r"233 1133=  l;;;d####'4/ $!$**,,r"233 1133?  l;;;d###v;;! 	LJKKK	L 	Lr$   c                 \   g }t          d| j        z            }t          j        | j                  }|                    d          D ]@}|                                                                }d|v rt          d|                                d                             d          d         z             }|                                j	        }| 
                    ||           |                    d            d|v rt          d|                                d                             d          d         z             }|                                j        }| 
                    ||           |                    d            Bt          |          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>   r   systemr   ro   r   s          r   test_cpu_timesz$FreeBSDPsutilTestCase.test_cpu_times   s   !DH,--N48$$IIdOO 	$ 	$D::<<%%''Dd" 	$#D4::<<+;+A+A#+F+Fr+J$JKK {{}}1  l;;;d####$& $#D4::<<+;+A+A#+F+Fr+J$JKK {{}}3  l;;;d###v;;! 	LJKKK	L 	Lr$   N)rs   rt   ru   rw   r-   r1   r
   r   r   r   r   r   r   ry   r$   r   r{   r{      s         ' ' ['   [ 7 7 79 9 9
C C C
0 0 0 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 )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(( 	B7&@AAA @?E!A#J???tTdD  r$   c                    d}	 t          t          |                    }n%# t          $ r |                     d           Y nw xY w|                     t          j                    j        |           d}t          |          }t          |                                d                             d          d                   }t          |                                d                             d          d                   }|                     t          j                    j	        |           |                     t          j                    j
        |           d S )Nzdev.cpu.0.freqz#frequencies not supported by kernelzdev.cpu.0.freq_levelsr   /r   )r   r   ro   skipTestr>   r8   cpu_freqcurrentr   maxmin)r?   sensorsysctl_resultmax_freqmin_freqs        r   !test_cpu_frequency_against_sysctlz7FreeBSDSystemTestCase.test_cpu_frequency_against_sysctl  s9    "	Av//MM 	A 	A 	AMM?@@@@@	A**2MBBB(v }**,,Q/55c::1=>>}**,,R066s;;A>??**.999**.99999s   ! AAc                     t          d          t          z  }|                     t          j                    j        |t                     d S )Nzvm.stats.vm.v_active_countdelta)r   PAGESIZEassertAlmostEqualr8   rb   activer   r^   s     r   test_vmem_activez&FreeBSDSystemTestCase.test_vmem_active  sO    233h>v466=t%6 	 	8 	8 	8 	8 	8r$   c                     t          d          t          z  }|                     t          j                    j        |t                     d S )Nzvm.stats.vm.v_inactive_countr   )r   r   r   r8   rb   inactiver   r^   s     r   test_vmem_inactivez(FreeBSDSystemTestCase.test_vmem_inactive  sO    455@v466?%6 	 	8 	8 	8 	8 	8r$   c                     t          d          t          z  }|                     t          j                    j        |t                     d S )Nzvm.stats.vm.v_wire_countr   )r   r   r   r8   rb   wiredr   r^   s     r   test_vmem_wiredz%FreeBSDSystemTestCase.test_vmem_wired$  sO    011H<v466<d%6 	 	8 	8 	8 	8 	8r$   c                     t          d          t          z  }|                     t          j                    j        |t                     d S )Nzvm.stats.vm.v_cache_countr   )r   r   r   r8   rb   cachedr   r^   s     r   test_vmem_cachedz&FreeBSDSystemTestCase.test_vmem_cached*  sO    122X=v466=t%6 	 	8 	8 	8 	8 	8r$   c                     t          d          t          z  }|                     t          j                    j        |t                     d S )Nzvm.stats.vm.v_free_countr   )r   r   r   r8   rb   rO   r   r^   s     r   test_vmem_freez$FreeBSDSystemTestCase.test_vmem_free0  sO    011H<v466;T%6 	 	8 	8 	8 	8 	8r$   c                     t          d          }|                     t          j                    j        |t
                     d S )Nzvfs.bufspacer   )r   r   r8   rb   buffersr   r^   s     r   test_vmem_buffersz'FreeBSDSystemTestCase.test_vmem_buffers6  sI    n%%v466>%6 	 	8 	8 	8 	8 	8r$   zmuse not installedc                 |    t          d          }|                     t          j                    j        |           d S )NTotal)r   r>   r8   rb   rM   rc   s     r   test_muse_vmem_totalz*FreeBSDSystemTestCase.test_muse_vmem_total>  s5    7mm.006<<<<<r$   c                     t          d          }|                     t          j                    j        |t
                     d S )NActiver   )r   r   r8   rb   r   r   rc   s     r   test_muse_vmem_activez+FreeBSDSystemTestCase.test_muse_vmem_activeC  sI     8nnv466=s%6 	 	8 	8 	8 	8 	8r$   c                     t          d          }|                     t          j                    j        |t
                     d S )NInactiver   )r   r   r8   rb   r   r   rc   s     r   test_muse_vmem_inactivez-FreeBSDSystemTestCase.test_muse_vmem_inactiveJ  sK     :v466?%6 	 	8 	8 	8 	8 	8r$   c                     t          d          }|                     t          j                    j        |t
                     d S )NWiredr   )r   r   r8   rb   r   r   rc   s     r   test_muse_vmem_wiredz*FreeBSDSystemTestCase.test_muse_vmem_wiredQ  sI     7mmv466<c%6 	 	8 	8 	8 	8 	8r$   c                     t          d          }|                     t          j                    j        |t
                     d S )NCacher   )r   r   r8   rb   r   r   rc   s     r   test_muse_vmem_cachedz+FreeBSDSystemTestCase.test_muse_vmem_cachedX  sI     7mmv466=s%6 	 	8 	8 	8 	8 	8r$   c                     t          d          }|                     t          j                    j        |t
                     d S )NFreer   )r   r   r8   rb   rO   r   rc   s     r   test_muse_vmem_freez)FreeBSDSystemTestCase.test_muse_vmem_free_  sI     6llv466;S%6 	 	8 	8 	8 	8 	8r$   c                     t          d          }|                     t          j                    j        |t
                     d S )NBufferr   )r   r   r8   rb   r   r   rc   s     r   test_muse_vmem_buffersz,FreeBSDSystemTestCase.test_muse_vmem_buffersf  sI     8nnv466>%6 	 	8 	8 	8 	8 	8r$   c                 |    |                      t          j                    j        t	          d          d           d S )Nzvm.stats.sys.v_swtch  r   )r   r8   	cpu_statsctx_switchesr   r?   s    r   test_cpu_stats_ctx_switchesz1FreeBSDSystemTestCase.test_cpu_stats_ctx_switchesm  sJ    v/11>%&<==T 	 	K 	K 	K 	K 	Kr$   c                 |    |                      t          j                    j        t	          d          d           d S )Nzvm.stats.sys.v_intrr   r   )r   r8   r   
interruptsr   r   s    r   test_cpu_stats_interruptsz/FreeBSDSystemTestCase.test_cpu_stats_interruptsq  sJ    v/11<%&;<<D 	 	J 	J 	J 	J 	Jr$   c                 |    |                      t          j                    j        t	          d          d           d S )Nzvm.stats.sys.v_softr   r   )r   r8   r   soft_interruptsr   r   s    r   test_cpu_stats_soft_interruptsz4FreeBSDSystemTestCase.test_cpu_stats_soft_interruptsu  sJ    v/11A%&;<<D 	 	J 	J 	J 	J 	Jr$   c                 |    |                      t          j                    j        t	          d          d           d S )Nzvm.stats.sys.v_syscalli@ r   )r   r8   r   syscallsr   r   s    r   test_cpu_stats_syscallsz-FreeBSDSystemTestCase.test_cpu_stats_syscallsy  sL     	v/11:%&>??v 	 	O 	O 	O 	O 	Or$   c                     |                                  \  }}}|                     t          j                    j        |t
                     d S Nr   )r   r   r8   swap_memoryrO   r   r?   rM   rN   rO   s       r   test_swapmem_freez'FreeBSDSystemTestCase.test_swapmem_free  Z     //11tT  %t3D 	 	F 	F 	F 	F 	Fr$   c                     |                                  \  }}}|                     t          j                    j        |t
                     d S r  )r   r   r8   r  rN   r   r  s       r   test_swapmem_usedz'FreeBSDSystemTestCase.test_swapmem_used  r  r$   c                     |                                  \  }}}|                     t          j                    j        |t
                     d S r  )r   r   r8   r  rM   r   r  s       r   test_swapmem_totalz(FreeBSDSystemTestCase.test_swapmem_total  sZ     //11tT  &5F 	 	H 	H 	H 	H 	Hr$   c                 
   t          d          }||                    d          dz   d          }|d |                    d                   }t          |          }|                     |t	          j                               d S )Nzsysctl kern.boottimez sec =    ,)r   r   r   r>   r8   	boot_time)r?   sbtimes      r   test_boot_timez$FreeBSDSystemTestCase.test_boot_time  sx    )**affY!#$$%lqvvc{{lOA 0 2 233333r$   z
no batteryc                    d }t          d          }t          d |                    d          D                       }t          j                    }t          |d                             dd                    }|d         }|                     |j        |           |d	k    r'|                     |j	        t          j
                   d S |                      ||j	                  |           d S )
Nc                 \    t          | d          \  }}t          |d          \  }}d||fz  S )N<   z%d:%02d)divmod)secsmr  hs       r   
secs2hoursz>FreeBSDSystemTestCase.test_sensors_battery.<locals>.secs2hours  s5    $##DAq!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>  sK     1 1 1 a(!''$--*;< 1 1 1r$   r   zRemaining capacity:%r5   zRemaining time:unknown)r   dictr   r8   sensors_batteryr   r6   r>   percentsecsleftPOWER_TIME_UNLIMITED)r?   r#  r"   r   metricsr,  remaining_times          r   test_sensors_batteryz*FreeBSDSystemTestCase.test_sensors_battery  s   	& 	& 	&
 !! 1 1 #		$1 1 1 2 2(**f23;;CDDEE 12'222Y& 	KW-v/JKKKKKZZ(899>JJJJJr$   c                    |                      t          j                    j        t	          d                     |                      t          j                    j        t	          d          dk               t          j                    j        }|dk     r%|                      t	          d          d           d S |                      |t	          d          dz             d S )Nhw.acpi.battery.lifehw.acpi.acliner   r   hw.acpi.battery.timer   r  )r>   r8   r+  r,  r   power_pluggedr-  )r?   r-  s     r   #test_sensors_battery_against_sysctlz9FreeBSDSystemTestCase.test_sensors_battery_against_sysctl  s    /119 677	9 	9 	9/11? 011Q6	8 	8 	8)++4a< 	LV$:;;R@@@@@Xv.D'E'E'JKKKKKr$   zhas batteryc                    |                      t                    5  t          d           t          d           t          d           d d d            n# 1 swxY w Y   |                     t	          j                               d S )Nr3  r5  r4  )assertRaisesro   r   assertIsNoner8   r+  r   s    r   test_sensors_battery_no_batteryz5FreeBSDSystemTestCase.test_sensors_battery_no_battery  s    
 |,, 	% 	%)***)***#$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	&02233333s   .AAAc                 `   t          j        d          }t          |          D ]}d|z  }	 t          t	          t          |          d d                             }n%# t          $ r |                     d           Y nw xY w|                     t          j	                    d         |         j
        |d           d|z  }t          t	          t          |          d d                             }|                     t          j	                    d         |         j        |           
d S )	NTzdev.cpu.%s.temperaturer   z$temperatures not supported by kernelcoretempr   r   zdev.cpu.%s.coretemp.tjmax)r8   r]   ranger   r   r   ro   r   r   sensors_temperaturesr   r>   high)r?   num_cpuscpur   r   s        r   (test_sensors_temperatures_against_sysctlz>FreeBSDSystemTestCase.test_sensors_temperatures_against_sysctl  sC   #D))?? 	 	C-3FF #E&.."*=$>$> ? ? F F FDEEEEEF""+--j9#>FR # ) ) ) 136F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   MUSE_AVAILABLEr   r   r   r   r   r   r   r  r  r  r
  r  r  r  r  r   r1  r7  r;  rC  ry   r$   r   r   r      s        
! 
! \
!: : :, 8 8 8
 8 8 8
 8 8 8
 8 8 8
 8 8 8
 8 8 8 X_')=>>= = ?>= X_')=>>8 8  ?>8
 X_')=>>8 8  ?>8
 X_')=>>8 8  ?>8
 X_')=>>8 8  ?>8
 X_')=>>8 8  ?>8
 X_')=>>8 8  ?>8
K K KJ J JJ J J O O OF F F
F F F
H H H4 4 4 X__l33K K 43K$ X__l33	L 	L 43	L X_[-004 4 104    r$   r   zOPENBSD onlyc                       e Zd Zd ZdS )OpenBSDTestCasec                     t          d          }t          j                            |d          }t          j                            t	          j                              }|                     ||           d S )Nzkern.boottimez%a %b %d %H:%M:%S %Y)r   datetimestrptimefromtimestampr8   r  r>   )r?   r  sys_bt	psutil_bts       r   r  zOpenBSDTestCase.test_boot_time  sc    ?##"++A/EFF%33F4D4F4FGG	+++++r$   N)rs   rt   ru   r  ry   r$   r   rG  rG    s#        , , , , ,r$   rG  zNETBSD onlyc                   Z    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S )NetBSDTestCasec                    t          d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/meminfortr   rH   zcan't find %s)openr    r   r   r   )look_forfr#   s      r   parse_meminfozNetBSDTestCase.parse_meminfo  s    /4(( 	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A1#A11A58A5c                     |                      t          j                    j        |                     d                     d S )Nz	MemTotal:)r>   r8   rb   rM   rU  r   s    r   test_vmem_totalzNetBSDTestCase.test_vmem_total  sH    !##)4+=+=k+J+J	L 	L 	L 	L 	Lr$   c                     |                      t          j                    j        |                     d          t
                     d S )NzMemFree:r   )r   r8   rb   rO   rU  r   r   s    r   r   zNetBSDTestCase.test_vmem_free  sK    !##($*<*<Z*H*H# 	 	% 	% 	% 	% 	%r$   c                     |                      t          j                    j        |                     d          t
                     d S )NzBuffers:r   )r   r8   rb   r   rU  r   r   s    r   r   z NetBSDTestCase.test_vmem_buffers  sK    !##+T-?-?
-K-K# 	 	% 	% 	% 	% 	%r$   c                     |                      t          j                    j        |                     d          t
                     d S )Nz
MemShared:r   )r   r8   rb   sharedrU  r   r   s    r   test_vmem_sharedzNetBSDTestCase.test_vmem_shared  sK    !##*D,>,>|,L,L# 	 	% 	% 	% 	% 	%r$   c                     |                      t          j                    j        |                     d          t
                     d S )Nz
SwapTotal:r   )r   r8   r  rM   rU  r   r   s    r   r  z!NetBSDTestCase.test_swapmem_total  sK      &(:(:<(H(H# 	 	% 	% 	% 	% 	%r$   c                     |                      t          j                    j        |                     d          t
                     d S )Nz	SwapFree:r   )r   r8   r  rO   rU  r   r   s    r   r  z NetBSDTestCase.test_swapmem_free  sK      %t'9'9+'F'F# 	 	% 	% 	% 	% 	%r$   c                 |    t          j                    }|                     |j        |j        |j        z
             d S r(   )r8   r  r>   rN   rM   rO   )r?   smems     r   r  z NetBSDTestCase.test_swapmem_used  s7    !##DJ$:;;;;;r$   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          j                    j        |d           d S )N
/proc/statrbs   intrr   couldn't find liner   r   )	rR  r    r   r   r   r   r8   r   r  )r?   rT  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 	):T 	 	C 	C 	C 	C 	C   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          j                    j        |d           d S )Nrb  rc  s   ctxtr   rd  r   r   )	rR  r    r   r   r   r   r8   r   r   )r?   rT  r#   r   s       r   r  z*NetBSDTestCase.test_cpu_stats_ctx_switches*  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 	+\ 	 	G 	G 	G 	G 	Gre  N)rs   rt   ru   rD  rU  rW  r   r   r\  r  r  r  r  r  ry   r$   r   rO  rO    s         5 5 \5L L L% % %
% % %
% % %
% % %
% % %
< < <	C 	C 	C	G 	G 	G 	G 	Gr$   rO  __main__)run_from_name)%rv   rI  osrm   r;   r8   r   r   r   r   psutil.testsr   r   r	   r
   r   r   r   r   r   psutil._psutil_posixr   r   getuidrE  r   r   rx   r&   r{   r   rG  rO  rs   psutil.tests.runnerrh  __file__ry   r$   r   <module>ro     sw   + *  				 				                           $ $ $ $ $ $ * * * * * * ' ' ' ' ' ' ) ) ) ) ) )       ' ' ' ' ' ' " " " " " " ! ! ! ! ! !        000000{}}H&RY[[A-J%%--JTTUNNHN         S*%%CL CL CL CL CL. CL CL &%CLV Wn--VL VL VL VL VLN VL VL .-VLr Wn--i i i i iN i i .-ib Wn--, , , , ,n , , .-, V]++?G ?G ?G ?G ?G^ ?G ?G ,+?GD z 111111M( r$   