U
    +È-e;R  ã                   @   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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oìe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)ÚHAS_BATTERY)ÚTOLERANCE_SYS_MEM)ÚPsutilTestCase)Úretry_on_failure)Úsh)Úspawn_testproc)Ú	terminate)Úwhich)ÚgetpagesizeÚmuseFc                 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   úV/var/www/html/Darija-Ai-Train/env/lib/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¡e e	d¡dd„ ƒƒZe edƒ d¡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   é   Ú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_usageZ
mountpointr2   Zdevicer=   Úabsr?   Zfailr>   )r3   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   r2   r-   Ú	cpu_count©r3   Zsystr   r   r   Útest_cpu_count_logical|   s    z"BSDTestCase.test_cpu_count_logicalzskipped on NETBSDc                 C   s   t dƒ}|  |t ¡ j¡ d S )Nz
hw.physmem)r   r2   r-   Úvirtual_memoryr=   ©r3   Únumr   r   r   Útest_virtual_memory_total   s    z%BSDTestCase.test_virtual_memory_totalÚifconfigzifconfig cmd not availablec              	   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
   ÚRuntimeErrorr2   ZisuprQ   r   ÚreÚfindall)r3   ÚnameÚstatsr   r   r   r   Útest_net_if_stats‡   s    ÿzBSDTestCase.test_net_if_statsN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úclassmethodr'   r)   ÚunittestÚskipIfr   r5   rF   r   rI   rM   rX   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)Úgroupedr   r   é   z%s-%sú[é
   )r
   r$   r-   r.   Zmemory_mapsr   r9   r2   Úaddrr   Zrssr:   r   )r3   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$   r2   r-   r.   Úexer   ©r3   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$   r2   Újoinr-   r.   r   r   rp   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Úgidsr2   Úrealr   Z	effectiveZsaved)r3   r   ZeuidZruidZsuidZegidZrgidZsgidÚprv   rw   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 contextrn   z involuntary contextr   ú)couldn't find lines match in procstat out)r
   r$   r-   r.   r   Úlowerr,   r   Znum_ctx_switchesZ	voluntaryr2   ÚappendZinvoluntaryÚlenrS   ©r3   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.rn   Ú.zsystem timer   r|   )r
   r$   r-   r.   r   r}   r,   ÚfloatZ	cpu_timesÚuserr2   r~   Úsystemr   rS   r€   r   r   r   Útest_cpu_timesß   s"    

z$FreeBSDPsutilTestCase.test_cpu_timesN)rY   rZ   r[   r]   r'   r)   r	   rm   rq   rt   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 -krn   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   r6   )r
   Ú
splitlinesrT   r   r   )r4   Ú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   ú/rn   )r   r   rS   ÚskipTestr2   r-   Zcpu_freqÚcurrentr   ÚmaxÚmin)r3   Ú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-   rJ   Úactiver   rH   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-   rJ   Úinactiver   rH   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-   rJ   Úwiredr   rH   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-   rJ   Úcachedr   rH   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-   rJ   r?   r   rH   r   r   r   Útest_vmem_free2  s    ÿz$FreeBSDSystemTestCase.test_vmem_freec                 C   s"   t dƒ}| jt ¡ j|td d S )Nzvfs.bufspacer•   )r   r˜   r-   rJ   Úbuffersr   rH   r   r   r   Útest_vmem_buffers8  s    ÿz'FreeBSDSystemTestCase.test_vmem_bufferszmuse not installedc                 C   s   t dƒ}|  t ¡ j|¡ d S )NZTotal)r   r2   r-   rJ   r=   rK   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-   rJ   r™   r   rK   r   r   r   Útest_muse_vmem_activeE  s    ÿz+FreeBSDSystemTestCase.test_muse_vmem_activec                 C   s"   t dƒ}| jt ¡ j|td d S )NZInactiver•   )r   r˜   r-   rJ   r›   r   rK   r   r   r   Útest_muse_vmem_inactiveL  s    ÿz-FreeBSDSystemTestCase.test_muse_vmem_inactivec                 C   s"   t dƒ}| jt ¡ j|td d S )NZWiredr•   )r   r˜   r-   rJ   r   r   rK   r   r   r   Útest_muse_vmem_wiredS  s    ÿz*FreeBSDSystemTestCase.test_muse_vmem_wiredc                 C   s"   t dƒ}| jt ¡ j|td d S )NÚCacher•   )r   r˜   r-   rJ   rŸ   r   rK   r   r   r   Útest_muse_vmem_cachedZ  s    ÿz+FreeBSDSystemTestCase.test_muse_vmem_cachedc                 C   s"   t dƒ}| jt ¡ j|td d S )NZFreer•   )r   r˜   r-   rJ   r?   r   rK   r   r   r   Útest_muse_vmem_freea  s    ÿz)FreeBSDSystemTestCase.test_muse_vmem_freec                 C   s"   t dƒ}| jt ¡ j|td d S )NÚBufferr•   )r   r˜   r-   rJ   r¢   r   rK   r   r   r   Útest_muse_vmem_buffersh  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   ©r3   r   r   r   Útest_cpu_stats_ctx_switcheso  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_interruptss  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®   Zsoft_interruptsr   r°   r   r   r   Útest_cpu_stats_soft_interruptsw  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®   Zsyscallsr   r°   r   r   r   Útest_cpu_stats_syscalls{  s     ÿz-FreeBSDSystemTestCase.test_cpu_stats_syscallsc                 C   s(   |   ¡ \}}}| jt ¡ j|td d S ©Nr•   )rŒ   r˜   r-   Úswap_memoryr?   r   ©r3   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   r2   r-   Ú	boot_time)r3   Ú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   rn   )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+   r2   ÚpercentÚsecsleftZPOWER_TIME_UNLIMITED)r3   rÅ   r   rg   Z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.timern   rÁ   )r2   r-   rÌ   rÍ   r   Zpower_pluggedrÎ   )r3   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Ñ   )ÚassertRaisesrS   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.temperaturern   z$temperatures not supported by kernelZcoretemprd   r•   zdev.cpu.%s.coretemp.tjmax)r-   rG   Úranger   rƒ   r   rS   rŽ   r˜   Zsensors_temperaturesr   r2   Úhigh)r3   Znum_cpusÚcpur’   r“   r   r   r   Ú(test_sensors_temperatures_against_sysctlÍ  s$    
 þþz>FreeBSDSystemTestCase.test_sensors_temperatures_against_sysctlN)$rY   rZ   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¾   r2   )r3   r¿   Zsys_btZ	psutil_btr   r   r   rÀ   é  s    zOpenBSDTestCase.test_boot_timeN)rY   rZ   r[   rÀ   r   r   r   r   rÜ   æ  s   rÜ   zNETBSD onlyc                   @   sh   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d„ ZdS )ÚNetBSDTestCasec              
   C   s\   t dƒ>}|D ]2}| | ¡rt| ¡ d ƒd   W  5 Q R £ S qW 5 Q R X td|  ƒ‚d S )Nz/proc/meminfor   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:)r2   r-   rJ   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-   rJ   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-   rJ   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-   rJ   Z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Cached:r•   )r˜   r-   rJ   rŸ   rã   r   r°   r   r   r   r      s
     þzNetBSDTestCase.test_vmem_cachedc                 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·   r2   r>   r=   r?   )r3   Z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²   )r3   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¯   )r3   râ   r    r¯   r   r   r   r±   7  s    
  ÿz*NetBSDTestCase.test_cpu_stats_ctx_switchesN)rY   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Ý   ÚosrT   r/   r^   r-   r   r   r   r   Zpsutil.testsr   r   r   r	   r
   r   r   r   Zpsutil._psutil_posixr   r—   ÚgetuidrÛ   r   r   r_   r!   r`   r‡   rÜ   rà   rY   Zpsutil.tests.runnerrê   Ú__file__r   r   r   r   Ú<module>
   sP   MY rM
