o
    ˆ¶¹a®  ã                   @   s†   d 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 e e d¡G dd	„ d	eƒƒZ	e
d
krAddlmZ eeƒ dS dS )zAIX specific tests.é    N)ÚAIX)ÚPsutilTestCase)Úsh)ÚunittestzAIX onlyc                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚAIXSpecificTestCasec                 C   sè   t dƒ}d}d ¡ D ]	}|d|f 7 }q
t ||¡}|  |d¡ d}t| d¡ƒ| }t| d¡ƒ| }t| d	¡ƒ| }t| d
¡ƒ| }	t ¡ }
d| | }|  	|
j
|¡ | j|
j||d� | j|
j||d� | j|
j|	|d� d S )Nz/usr/bin/svmon -O unit=KBz	memory\s*z+size inuse free pin virtual available mmodeú(?P<%s>\S+)\s+z(svmon command returned unexpected outputi   ÚsizeÚ	availableÚinuseÚfreeé   ©Údelta)r   ÚsplitÚreÚsearchÚassertIsNotNoneÚintÚgroupÚpsutilÚvirtual_memoryÚassertEqualÚtotalÚassertAlmostEqualÚusedr	   r   )ÚselfÚoutÚ
re_patternÚfieldÚmatchobjÚKBr   r	   r   r   Úpsutil_resultÚTOLERANCE_SYS_MEM© r#   ú7/usr/lib/python3/dist-packages/psutil/tests/test_aix.pyÚtest_virtual_memory   s2   ÿÿÿ
ÿz'AIXSpecificTestCase.test_virtual_memoryc                 C   sT   t dƒ}t d|¡}|  |d¡ t| d¡ƒ}d}t ¡ }|  t|j	| ƒ|¡ d S )Nz/usr/sbin/lsps -az=(?P<space>\S+)\s+(?P<vol>\S+)\s+(?P<vg>\S+)\s+(?P<size>\d+)MBz'lsps command returned unexpected outputr   i   )
r   r   r   r   r   r   r   Úswap_memoryr   r   )r   r   r   Útotal_mbÚMBr!   r#   r#   r$   Útest_swap_memory5   s   ýÿz$AIXSpecificTestCase.test_swap_memoryc                 C   sÀ   t dƒ}d}d ¡ D ]	}|d|f 7 }q
t ||¡}|  |d¡ d}t ¡ }| j|jt	| 
d¡ƒ|d� | j|jt	| 
d	¡ƒ|d� | j|jt	| 
d
¡ƒ|d� | j|jt	| 
d¡ƒ|d� d S )Nú/usr/bin/mpstat -azALL\s*zfmin maj mpcs mpcr dev soft dec ph cs ics bound rq push S3pull S3grd S0rd S1rd S2rd S3rd S4rd S5rd syscr   z)mpstat command returned unexpected outputiè  Úcsr   ÚsyscÚdevÚsoft)r   r   r   r   r   r   Ú	cpu_statsr   Úctx_switchesr   r   ÚsyscallsÚ
interruptsÚsoft_interrupts)r   r   r   r   r   ÚCPU_STATS_TOLERANCEr!   r#   r#   r$   Útest_cpu_statsJ   s@   þÿýýý
ýz"AIXSpecificTestCase.test_cpu_statsc                 C   s:   t dƒ}tt d|¡ d¡ƒ}tjdd�}|  ||¡ d S )Nr*   z
lcpu=(\d+)é   T)Úlogical)r   r   r   r   r   r   Ú	cpu_countr   )r   r   Úmpstat_lcpuÚpsutil_lcpur#   r#   r$   Útest_cpu_count_logicalk   s   z*AIXSpecificTestCase.test_cpu_count_logicalc                 C   s4   t dƒ}t| ¡ ƒ}tt ¡  ¡ ƒ}|  ||¡ d S )Nz/etc/ifconfig -l)r   Úsetr   r   Únet_if_addrsÚkeysÚassertSetEqual)r   r   Úifconfig_namesÚpsutil_namesr#   r#   r$   Útest_net_if_addrs_namesq   s   z+AIXSpecificTestCase.test_net_if_addrs_namesN)Ú__name__Ú
__module__Ú__qualname__r%   r)   r5   r;   rB   r#   r#   r#   r$   r      s    !r   Ú__main__)Úrun_from_name)Ú__doc__r   r   r   Úpsutil.testsr   r   r   ÚskipIfr   rC   Úpsutil.tests.runnerrG   Ú__file__r#   r#   r#   r$   Ú<module>   s   cþ