
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    Œ=Ý_×P  ã                   @   sÌ  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 ¡ dkröedƒrödndZndZdZdd„ Zdd„ Ze e d¡G dd„ deƒƒZe e d¡G dd„ deƒƒZe e d¡G dd„ deƒƒZe e	 d¡G d d!„ d!eƒƒZe e d"¡G d#d$„ d$eƒƒZ e!d%k�rÈdd&l"m#Z# e#e$ƒ dS )'z$Tests specific to all BSD platforms.é    N)ÚBSD)ÚFREEBSD)ÚNETBSD)ÚOPENBSD)Úspawn_testproc)ÚHAS_BATTERY)ÚPsutilTestCase)Úretry_on_failure)Úsh)ÚTOLERANCE_SYS_MEM)Ú	terminate)Úunittest)Úwhich)ÚgetpagesizeÚmuseTFc                 C   sn   t d|  ƒ}tr(|| d¡d d… }nts0trF|| d¡d d… }z
t|ƒW S  tk
rh   | Y S X dS )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Úresult© r   úH/opt/alt/python38/lib64/python3.8/site-packages/psutil/tests/test_bsd.pyÚsysctl-   s    
r   c                 C   s>   t dƒ}| d¡D ]}| | ¡r q.qtdƒ‚t| ¡ d ƒS )z+Thin wrapper around 'muse' cmdline utility.r   Ú
zline not foundr   )r
   ÚsplitÚ
startswithr   r   )ÚfieldÚoutÚliner   r   r   r   <   s    
zBSD onlyc                   @   s€   e Zd ZdZedd„ ƒZedd„ ƒZe e	d¡dd„ ƒZ
d	d
„ Ze edƒ d¡dd„ ƒZe edƒ d¡dd„ ƒZdd„ ZdS )ÚBSDTestCasez)Generic tests common to all BSD variants.c                 C   s   t ƒ j| _d S ©N©r   Úpid©Úclsr   r   r   Ú
setUpClassP   s    zBSDTestCase.setUpClassc                 C   s   t | jƒ d S r#   ©r   r%   r&   r   r   r   ÚtearDownClassT   s    zBSDTestCase.tearDownClassz -o lstart doesn't work on NETBSDc                 C   sP   t d| j ƒ}| dd¡ ¡ }t | j¡ ¡ }t dt 	|¡¡}|  
||¡ d S )Nzps -o lstart -p %sZSTARTEDÚ z%a %b %e %H:%M:%S %Y)r
   r%   ÚreplaceÚstripÚpsutilÚProcessZcreate_timeÚtimeÚstrftimeÚ	localtimeÚassertEqual)ÚselfÚoutputZstart_psZstart_psutilr   r   r   Útest_process_create_timeX   s    ÿz$BSDTestCase.test_process_create_timec                 C   s¤   dd„ }t jdd�D ]Š}t  |j¡}||jƒ\}}}}|  |j|¡ |  |j|¡ t|j| ƒdkrx|  	d|j|f ¡ t|j
| ƒdkr|  	d|j
|f ¡ qd S )Nc                 S   s‚   t d|  ƒ ¡ }| d¡}| d¡ | d¡}| ¡ d d… \}}}}|dkrRd}t|ƒd }t|ƒd }t|ƒd }||||fS )Nz
df -k "%s"r   r   é   Znoner+   é   )r
   r-   r   Úpopr   )Úpathr    Úlinesr!   ÚdevÚtotalÚusedÚfreer   r   r   Údfd   s    


z"BSDTestCase.test_disks.<locals>.dfF)Úalli    zpsutil=%s, df=%s)r.   Zdisk_partitionsÚ
disk_usageÚ
mountpointr3   Údevicer=   Úabsr?   Zfailr>   )r4   r@   ÚpartÚusager<   r=   r>   r?   r   r   r   Ú
test_disksa   s    zBSDTestCase.test_disksr   zsysctl cmd not availablec                 C   s    t dƒ}|  tjdd�|¡ d S )Nzhw.ncpuT)Zlogical)r   r3   r.   Ú	cpu_count©r4   Zsystr   r   r   Útest_cpu_count_logical|   s    z"BSDTestCase.test_cpu_count_logicalc                 C   s   t dƒ}|  |t ¡ j¡ d S )Nz
hw.physmem)r   r3   r.   Úvirtual_memoryr=   ©r4   Únumr   r   r   Útest_virtual_memory_total�   s    z%BSDTestCase.test_virtual_memory_totalc              	   C   s|   t  ¡  ¡ D ]j\}}ztd| ƒ}W n tk
r8   Y qX | j|jd|k|d� d|kr|  |jtt	 
d|¡d ƒ¡ qd S )Nzifconfig %sÚRUNNING)ÚmsgÚmtuz	mtu (\d+)r   )r.   Znet_if_statsÚitemsr
   ÚRuntimeErrorr3   ÚisuprR   r   ÚreÚfindall)r4   ÚnameZstatsr    r   r   r   Útest_net_if_stats†   s    ÿzBSDTestCase.test_net_if_statsN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úclassmethodr(   r*   r   ÚskipIfr   r6   rH   r   rK   rO   rY   r   r   r   r   r"   L   s   





r"   zFREEBSD onlyc                   @   sf   e Zd Zedd„ ƒZedd„ ƒZeƒ dd„ ƒZdd„ Zd	d
„ Z	dd„ Z
eƒ dd„ ƒZeƒ dd„ ƒZdS )ÚFreeBSDPsutilTestCasec                 C   s   t ƒ j| _d S r#   r$   r&   r   r   r   r(   ›   s    z FreeBSDPsutilTestCase.setUpClassc                 C   s   t | jƒ d S r#   r)   r&   r   r   r   r*   Ÿ   s    z#FreeBSDPsutilTestCase.tearDownClassc                 C   s²   t d| j ƒ}t | j¡jdd�}| d¡dd … }|r®| ¡ }| ¡ }|d d… \}}}}	}
| ¡ }|  d||f |j¡ |  t	|
ƒ|j
¡ |j d¡s4|  |d	 |j¡ q4d S )
Nzprocstat -v %sF)Zgroupedr   r   é   z%s-%sú[é
   )r
   r%   r.   r/   Zmemory_mapsr   r9   r3   Úaddrr   Zrssr:   r   )r4   r    Úmapsr;   r!   ÚfieldsÚ_ÚstartÚstopZpermsÚresÚmapr   r   r   Útest_memory_maps£   s    z&FreeBSDPsutilTestCase.test_memory_mapsc                 C   s<   t d| j ƒ}|  t | j¡ ¡ | d¡d  ¡ d ¡ d S )Nzprocstat -b %sr   r   éÿÿÿÿ)r
   r%   r3   r.   r/   Zexer   ©r4   r    r   r   r   Útest_exe²   s    ÿzFreeBSDPsutilTestCase.test_exec                 C   sL   t d| j ƒ}|  d t | j¡ ¡ ¡d | d¡d  ¡ dd … ¡¡ d S )Nzprocstat -c %sú r   r   r   )r
   r%   r3   Újoinr.   r/   r   r   rn   r   r   r   Útest_cmdline·   s    ÿz"FreeBSDPsutilTestCase.test_cmdlinec                 C   sÀ   t d| j ƒ}| d¡d  ¡ dd… \}}}}}}t | j¡}| ¡ }	| ¡ }
|  |	jt	|ƒ¡ |  |	j
t	|ƒ¡ |  |	jt	|ƒ¡ |  |
jt	|ƒ¡ |  |
j
t	|ƒ¡ |  |
jt	|ƒ¡ d S )Nzprocstat -s %sr   r   r   é   )r
   r%   r   r.   r/   ÚuidsÚgidsr3   Úrealr   Ú	effectiveÚsaved)r4   r    ZeuidZruidZsuidZegidZrgidZsgidÚprt   ru   r   r   r   Útest_uids_gids¼   s    &z$FreeBSDPsutilTestCase.test_uids_gidsc                 C   sÄ   g }t d| j ƒ}t | j¡}| d¡D ]‚}| ¡  ¡ }d|krrt| ¡ d ƒ}| ¡ j	}|  
||¡ | d ¡ q(d|kr(t| ¡ d ƒ}| ¡ j}|  
||¡ | d ¡ q(t|ƒdkrÀtdƒ‚d S )Núprocstat -r %sr   z voluntary contextrm   z involuntary contextr   ú)couldn't find lines match in procstat out)r
   r%   r.   r/   r   Úlowerr-   r   Znum_ctx_switchesÚ	voluntaryr3   ÚappendÚinvoluntaryÚlenrT   ©r4   Ztestedr    ry   r!   Zpstat_valueZpsutil_valuer   r   r   Útest_ctx_switchesÉ   s"    

z'FreeBSDPsutilTestCase.test_ctx_switchesc                 C   sà   g }t d| j ƒ}t | j¡}| d¡D ]ž}| ¡  ¡ }d|kr€td| ¡ d  d¡d  ƒ}| ¡ j	}|  
||¡ | d ¡ q(d|kr(td| ¡ d  d¡d  ƒ}| ¡ j}|  
||¡ | d ¡ q(t|ƒdkrÜtd	ƒ‚d S )
Nr{   r   z	user timez0.rm   Ú.zsystem timer   r|   )r
   r%   r.   r/   r   r}   r-   ÚfloatZ	cpu_timesÚuserr3   r   Úsystemr�   rT   r‚   r   r   r   Útest_cpu_timesÝ   s"    

z$FreeBSDPsutilTestCase.test_cpu_timesN)rZ   r[   r\   r^   r(   r*   r	   rl   ro   rr   rz   rƒ   rˆ   r   r   r   r   r`   ˜   s   



r`   c                   @   sÀ  e Zd Zedd„ ƒZdd„ Zeƒ dd„ ƒZeƒ dd„ ƒZeƒ d	d
„ ƒZ	eƒ dd„ ƒZ
eƒ dd„ ƒZeƒ dd„ ƒZe e d¡dd„ ƒZe e d¡eƒ dd„ ƒƒZe e d¡eƒ dd„ ƒƒZe e d¡eƒ dd„ ƒƒZe e d¡eƒ dd„ ƒƒZe e d¡eƒ dd„ ƒƒZe e d¡eƒ dd„ ƒƒZd d!„ Zd"d#„ Zd$d%„ Zeƒ d&d'„ ƒZd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Ze e d0¡d1d2„ ƒZ e e d0¡d3d4„ ƒZ!e ed5¡d6d7„ ƒZ"d8d9„ Z#d:S );ÚFreeBSDSystemTestCasec                  C   sR   t dƒ ¡ d } t d| ¡}|s,td|  ƒ‚dd„ |dd… D ƒ\}}}|||fS )	Nzswapinfo -krm   z\s+zCan't parse swapinfo: %sc                 s   s   | ]}t |ƒd  V  qdS )r8   N)r   )Ú.0ry   r   r   r   Ú	<genexpr>ÿ   s     z7FreeBSDSystemTestCase.parse_swapinfo.<locals>.<genexpr>r   r7   )r
   Ú
splitlinesrV   r   r   )r5   Úpartsr=   r>   r?   r   r   r   Úparse_swapinfoõ   s    z$FreeBSDSystemTestCase.parse_swapinfoc                 C   s®   d}zt t|ƒƒ}W n tk
r2   |  d¡ Y nX |  t ¡ j|¡ d}t|ƒ}t | ¡ d  d¡d ƒ}t | ¡ d  d¡d ƒ}|  t ¡ j	|¡ |  t ¡ j
|¡ d S )Nzdev.cpu.0.freqz#frequencies not supported by kernelzdev.cpu.0.freq_levelsr   ú/rm   )r   r   rT   ÚskipTestr3   r.   Zcpu_freqÚcurrentr   ÚmaxÚmin)r4   ÚsensorÚsysctl_resultZmax_freqZmin_freqr   r   r   Ú!test_cpu_frequency_against_sysctl  s    z7FreeBSDSystemTestCase.test_cpu_frequency_against_sysctlc                 C   s&   t dƒt }| jt ¡ j|td� d S )Nzvm.stats.vm.v_active_count©Údelta)r   ÚPAGESIZEÚassertAlmostEqualr.   rL   Úactiver   rJ   r   r   r   Útest_vmem_active  s    ÿz&FreeBSDSystemTestCase.test_vmem_activec                 C   s&   t dƒt }| jt ¡ j|td� d S )Nzvm.stats.vm.v_inactive_countr—   )r   r™   rš   r.   rL   Úinactiver   rJ   r   r   r   Útest_vmem_inactive  s    ÿz(FreeBSDSystemTestCase.test_vmem_inactivec                 C   s&   t dƒt }| jt ¡ j|td� d S )Nzvm.stats.vm.v_wire_countr—   )r   r™   rš   r.   rL   Úwiredr   rJ   r   r   r   Útest_vmem_wired$  s    ÿz%FreeBSDSystemTestCase.test_vmem_wiredc                 C   s&   t dƒt }| jt ¡ j|td� d S )Nzvm.stats.vm.v_cache_countr—   )r   r™   rš   r.   rL   Úcachedr   rJ   r   r   r   Útest_vmem_cached*  s    ÿz&FreeBSDSystemTestCase.test_vmem_cachedc                 C   s&   t dƒt }| jt ¡ j|td� d S )Nzvm.stats.vm.v_free_countr—   )r   r™   rš   r.   rL   r?   r   rJ   r   r   r   Útest_vmem_free0  s    ÿz$FreeBSDSystemTestCase.test_vmem_freec                 C   s"   t dƒ}| jt ¡ j|td� d S )Nzvfs.bufspacer—   )r   rš   r.   rL   Úbuffersr   rJ   r   r   r   Útest_vmem_buffers6  s    ÿz'FreeBSDSystemTestCase.test_vmem_bufferszmuse not installedc                 C   s   t dƒ}|  t ¡ j|¡ d S )NZTotal)r   r3   r.   rL   r=   rM   r   r   r   Útest_muse_vmem_total>  s    z*FreeBSDSystemTestCase.test_muse_vmem_totalc                 C   s"   t dƒ}| jt ¡ j|td� d S )NZActiver—   )r   rš   r.   rL   r›   r   rM   r   r   r   Útest_muse_vmem_activeC  s    ÿz+FreeBSDSystemTestCase.test_muse_vmem_activec                 C   s"   t dƒ}| jt ¡ j|td� d S )NZInactiver—   )r   rš   r.   rL   r�   r   rM   r   r   r   Útest_muse_vmem_inactiveJ  s    ÿz-FreeBSDSystemTestCase.test_muse_vmem_inactivec                 C   s"   t dƒ}| jt ¡ j|td� d S )NZWiredr—   )r   rš   r.   rL   rŸ   r   rM   r   r   r   Útest_muse_vmem_wiredQ  s    ÿz*FreeBSDSystemTestCase.test_muse_vmem_wiredc                 C   s"   t dƒ}| jt ¡ j|td� d S )NÚCacher—   )r   rš   r.   rL   r¡   r   rM   r   r   r   Útest_muse_vmem_cachedX  s    ÿz+FreeBSDSystemTestCase.test_muse_vmem_cachedc                 C   s"   t dƒ}| jt ¡ j|td� d S )NZFreer—   )r   rš   r.   rL   r?   r   rM   r   r   r   Útest_muse_vmem_free_  s    ÿz)FreeBSDSystemTestCase.test_muse_vmem_freec                 C   s"   t dƒ}| jt ¡ j|td� d S )NZBufferr—   )r   rš   r.   rL   r¤   r   rM   r   r   r   Útest_muse_vmem_buffersf  s    ÿz,FreeBSDSystemTestCase.test_muse_vmem_buffersc                 C   s   | j t ¡ jtdƒdd� d S )Nzvm.stats.sys.v_swtchéè  r—   )rš   r.   Ú	cpu_statsÚctx_switchesr   ©r4   r   r   r   Útest_cpu_stats_ctx_switchesm  s     ÿz1FreeBSDSystemTestCase.test_cpu_stats_ctx_switchesc                 C   s   | j t ¡ jtdƒdd� d S )Nzvm.stats.sys.v_intrr®   r—   )rš   r.   r¯   Ú
interruptsr   r±   r   r   r   Útest_cpu_stats_interruptsq  s     ÿz/FreeBSDSystemTestCase.test_cpu_stats_interruptsc                 C   s   | j t ¡ jtdƒdd� d S )Nzvm.stats.sys.v_softr®   r—   )rš   r.   r¯   Úsoft_interruptsr   r±   r   r   r   Útest_cpu_stats_soft_interruptsu  s     ÿz4FreeBSDSystemTestCase.test_cpu_stats_soft_interruptsc                 C   s   | j t ¡ jtdƒdd� d S )Nzvm.stats.sys.v_syscalli@ r—   )rš   r.   r¯   Úsyscallsr   r±   r   r   r   Útest_cpu_stats_syscallsy  s     ÿz-FreeBSDSystemTestCase.test_cpu_stats_syscallsc                 C   s(   |   ¡ \}}}| jt ¡ j|td� d S ©Nr—   )rŽ   rš   r.   Úswap_memoryr?   r   ©r4   r=   r>   r?   r   r   r   Útest_swapmem_free…  s      ÿz'FreeBSDSystemTestCase.test_swapmem_freec                 C   s(   |   ¡ \}}}| jt ¡ j|td� d S r¹   )rŽ   rš   r.   rº   r>   r   r»   r   r   r   Útest_swapmem_usedŠ  s      ÿz'FreeBSDSystemTestCase.test_swapmem_usedc                 C   s(   |   ¡ \}}}| jt ¡ j|td� d S r¹   )rŽ   rš   r.   rº   r=   r   r»   r   r   r   Útest_swapmem_total�  s      ÿz(FreeBSDSystemTestCase.test_swapmem_totalc                 C   sL   t dƒ}|| d¡d d … }|d | d¡… }t|ƒ}|  |t ¡ ¡ d S )Nzsysctl kern.boottimez sec = é   ú,)r   r   r   r3   r.   Ú	boot_time)r4   ÚsZbtimer   r   r   Útest_boot_time–  s
    z$FreeBSDSystemTestCase.test_boot_timez
no batteryc                 C   sŠ   dd„ }t dƒ}tdd„ | d¡D ƒƒ}t ¡ }t|d  dd	¡ƒ}|d
 }|  |j|¡ |dkrt|  |j	tj
¡ n|  ||j	ƒ|¡ d S )Nc                 S   s(   t | dƒ\}}t |dƒ\}}d||f S )Né<   z%d:%02d)Údivmod)ZsecsÚmrÂ   Úhr   r   r   Ú
secs2hours¡  s    z>FreeBSDSystemTestCase.test_sensors_battery.<locals>.secs2hourszacpiconf -i 0c                 S   s(   g | ] }|  d ¡d |  d ¡d f‘qS )ú	r   rm   )r   )rŠ   Úxr   r   r   Ú
<listcomp>§  s   ÿz>FreeBSDSystemTestCase.test_sensors_battery.<locals>.<listcomp>r   zRemaining capacity:ú%r+   zRemaining time:Úunknown)r
   Údictr   r.   Úsensors_batteryr   r,   r3   ÚpercentÚsecsleftÚPOWER_TIME_UNLIMITED)r4   rÈ   r    rf   ÚmetricsrÐ   Zremaining_timer   r   r   Útest_sensors_batteryŸ  s    ÿz*FreeBSDSystemTestCase.test_sensors_batteryc                 C   sl   |   t ¡ jtdƒ¡ |   t ¡ jtdƒdk¡ t ¡ j}|dk rT|   tdƒd¡ n|   |tdƒd ¡ d S )Núhw.acpi.battery.lifeúhw.acpi.acliner   r   úhw.acpi.battery.timerm   rÄ   )r3   r.   rÏ   rÐ   r   Úpower_pluggedrÑ   )r4   rÑ   r   r   r   Ú#test_sensors_battery_against_sysctl²  s    ÿ
ÿ
z9FreeBSDSystemTestCase.test_sensors_battery_against_sysctlzhas batteryc              	   C   s@   |   t¡� tdƒ tdƒ tdƒ W 5 Q R X |  t ¡ ¡ d S )NrÕ   r×   rÖ   )ZassertRaisesrT   r   ZassertIsNoner.   rÏ   r±   r   r   r   Útest_sensors_battery_no_battery¾  s
    z5FreeBSDSystemTestCase.test_sensors_battery_no_batteryc              	   C   s¸   t  d¡}t|ƒD ] }d| }zttt|ƒd d… ƒƒ}W n tk
rX   |  d¡ Y nX | jt  	¡ d | j
|dd� d| }ttt|ƒd d… ƒƒ}|  t  	¡ d | j|¡ qd S )	NTzdev.cpu.%s.temperaturerm   z$temperatures not supported by kernelZcoretemprc   r—   zdev.cpu.%s.coretemp.tjmax)r.   rI   Úranger   r…   r   rT   r�   rš   Zsensors_temperaturesr‘   r3   Úhigh)r4   Znum_cpusZcpur”   r•   r   r   r   Ú(test_sensors_temperatures_against_sysctlË  s$    
 þþz>FreeBSDSystemTestCase.test_sensors_temperatures_against_sysctlN)$rZ   r[   r\   ÚstaticmethodrŽ   r–   r	   rœ   rž   r    r¢   r£   r¥   r   r_   ÚMUSE_AVAILABLEr¦   r§   r¨   r©   r«   r¬   r­   r²   r´   r¶   r¸   r¼   r½   r¾   rÃ   r   rÔ   rÙ   rÚ   rÝ   r   r   r   r   r‰   ò   sf   








	



r‰   zOPENBSD onlyc                   @   s   e Zd Zdd„ ZdS )ÚOpenBSDTestCasec                 C   s6   t dƒ}tj |d¡}tj t ¡ ¡}|  ||¡ d S )Nzkern.boottimez%a %b %d %H:%M:%S %Y)r   ÚdatetimeÚstrptimeÚfromtimestampr.   rÁ   r3   )r4   rÂ   Zsys_btZ	psutil_btr   r   r   rÃ   ç  s    zOpenBSDTestCase.test_boot_timeN)rZ   r[   r\   rÃ   r   r   r   r   rà   ä  s   rà   zNETBSD onlyc                   @   s`   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚNetBSDTestCasec              
   C   s^   t ddƒ�>}|D ]2}| | ¡rt| ¡ d ƒd   W  5 Q R £ S qW 5 Q R X td|  ƒ‚d S )Nz/proc/meminfoÚrtr   r8   zcan't find %s)Úopenr   r   r   r   )Zlook_forÚfr!   r   r   r   Úparse_meminfoö  s
    
0zNetBSDTestCase.parse_meminfoc                 C   s   |   t ¡ j|  d¡¡ d S )Nz	MemTotal:)r3   r.   rL   r=   rè   r±   r   r   r   Útest_vmem_totalþ  s     ÿzNetBSDTestCase.test_vmem_totalc                 C   s    | j t ¡ j|  d¡td� d S )NzMemFree:r—   )rš   r.   rL   r?   rè   r   r±   r   r   r   r£     s
     þzNetBSDTestCase.test_vmem_freec                 C   s    | j t ¡ j|  d¡td� d S )NzBuffers:r—   )rš   r.   rL   r¤   rè   r   r±   r   r   r   r¥     s
     þz NetBSDTestCase.test_vmem_buffersc                 C   s    | j t ¡ j|  d¡td� d S )Nz
MemShared:r—   )rš   r.   rL   Úsharedrè   r   r±   r   r   r   Útest_vmem_shared  s
     þzNetBSDTestCase.test_vmem_sharedc                 C   s    | j t ¡ j|  d¡td� d S )Nz
SwapTotal:r—   )rš   r.   rº   r=   rè   r   r±   r   r   r   r¾     s
     þz!NetBSDTestCase.test_swapmem_totalc                 C   s    | j t ¡ j|  d¡td� d S )Nz	SwapFree:r—   )rš   r.   rº   r?   rè   r   r±   r   r   r   r¼     s
     þz NetBSDTestCase.test_swapmem_freec                 C   s"   t  ¡ }|  |j|j|j ¡ d S r#   )r.   rº   r3   r>   r=   r?   )r4   Úsmemr   r   r   r½     s    z NetBSDTestCase.test_swapmem_usedc              	   C   s`   t ddƒ�6}|D ]"}| d¡rt| ¡ d ƒ} q<qtdƒ‚W 5 Q R X | jt ¡ j|dd� d S )Nú
/proc/statÚrbs   intrr   úcouldn't find liner®   r—   )	ræ   r   r   r   r   rš   r.   r¯   r³   )r4   rç   r!   r³   r   r   r   r´     s    
  ÿz(NetBSDTestCase.test_cpu_stats_interruptsc              	   C   s`   t ddƒ�6}|D ]"}| d¡rt| ¡ d ƒ} q<qtdƒ‚W 5 Q R X | jt ¡ j|dd� d S )Nrí   rî   s   ctxtr   rï   r®   r—   )	ræ   r   r   r   r   rš   r.   r¯   r°   )r4   rç   r!   r°   r   r   r   r²   *  s    
  ÿz*NetBSDTestCase.test_cpu_stats_ctx_switchesN)rZ   r[   r\   rÞ   rè   ré   r£   r¥   rë   r¾   r¼   r½   r´   r²   r   r   r   r   rä   ó  s   
rä   Ú__main__)Úrun_from_name)%r]   rá   ÚosrV   r0   r.   r   r   r   r   Zpsutil.testsr   r   r   r	   r
   r   r   r   r   Zpsutil._psutil_posixr   r™   Úgetuidrß   r   r   r_   r"   r`   r‰   rà   rä   rZ   Zpsutil.tests.runnerrñ   Ú__file__r   r   r   r   Ú<module>
   sP   KY rB
