B
    çÚ†\Œ  ã               @   sx   d 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Ze e d¡G dd	„ d	ej	ƒƒZ
ed
krteeƒ dS )zAIX specific tests.é    N)ÚAIX)Úrun_test_module_by_name)Ú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}xd ¡ D ]}|d|f 7 }qW 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 mmodez(?P<%s>\S+)\s+z(svmon command returned unexpected outputi   ÚsizeÚ	availableZinuseÚfreeé   )Údelta)r   ÚsplitÚreÚsearchÚassertIsNotNoneÚintÚgroupÚpsutilZvirtual_memoryÚassertEqualÚtotalÚassertAlmostEqualÚusedr   r	   )ÚselfÚoutÚ
re_patternÚfieldÚmatchobjZKBr   r   r   r	   Úpsutil_resultZMEMORY_TOLERANCE© r   ú4lib/python3.7/site-packages/psutil/tests/test_aix.pyÚtest_virtual_memory   s*    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   Zswap_memoryr   r   )r   r   r   Ztotal_mbZMBr   r   r   r   Útest_swap_memory5   s    z$AIXSpecificTestCase.test_swap_memoryc             C   sÄ   t dƒ}d}xd ¡ D ]}|d|f 7 }qW 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 )Nz/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 syscz(?P<%s>\S+)\s+z)mpstat command returned unexpected outputiè  Zcs)r   ZsyscZdevZsoft)r   r   r   r   r   r   Z	cpu_statsr   Zctx_switchesr   r   ZsyscallsZ
interruptsZsoft_interrupts)r   r   r   r   r   ZCPU_STATS_TOLERANCEr   r   r   r   Útest_cpu_statsJ   s2    z"AIXSpecificTestCase.test_cpu_statsc             C   s:   t dƒ}tt d|¡ d¡ƒ}tjdd}|  ||¡ d S )Nz/usr/bin/mpstat -az
lcpu=(\d+)é   T)Zlogical)r   r   r   r   r   r   Ú	cpu_countr   )r   r   Zmpstat_lcpuZ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   Znet_if_addrsÚkeysZassertSetEqual)r   r   Zifconfig_namesZpsutil_namesr   r   r   Útest_net_if_addrs_namesq   s    z+AIXSpecificTestCase.test_net_if_addrs_namesN)Ú__name__Ú
__module__Ú__qualname__r   r    r!   r$   r'   r   r   r   r   r      s
   !r   Ú__main__)Ú__doc__r   r   r   Zpsutil.testsr   r   r   ZskipIfZTestCaser   r(   Ú__file__r   r   r   r   Ú<module>	   s   
c