U
    ;g                     @   sj   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jj	e ddG d	d
 d
eZ
dS )zAIX specific tests.    N)AIX)PsutilTestCase)pytest)shzAIX only)reasonc                   @   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 k	s@td}t|d| }t|d| }t|d| }t|d	| }	t }
d
| | }|
j	|kstt
|
j| |k stt
|
j| |k stt
|
j|	 |k std S )Nz/usr/bin/svmon -O unit=KBz	memory\s*z+size inuse free pin virtual available mmode(?P<%s>\S+)\s+i   size	availableZinusefree   )r   splitresearchAssertionErrorintgrouppsutilZvirtual_memorytotalabsusedr
   r   )selfout
re_patternfieldmatchobjZKBr   r
   r   r   psutil_resultZTOLERANCE_SYS_MEM r   9/tmp/pip-unpacked-wheel-u0epr1ex/psutil/tests/test_aix.pytest_virtual_memory   s"    z'AIXSpecificTestCase.test_virtual_memoryc                 C   sT   t d}td|}|d k	s tt|d}d}t }t|j| |ksPtd S )Nz/usr/sbin/lsps -az=(?P<space>\S+)\s+(?P<vol>\S+)\s+(?P<vg>\S+)\s+(?P<size>\d+)MBr	   i   )	r   r   r   r   r   r   r   Zswap_memoryr   )r   r   r   Ztotal_mbZMBr   r   r   r   test_swap_memory0   s    z$AIXSpecificTestCase.test_swap_memoryc                 C   s   t d}d}d D ]}|d|f 7 }qt||}|d k	s@td}t }t|jt	|
d |k sltt|jt	|
d |k stt|jt	|
d |k stt|jt	|
d	 |k st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   i  csZsysc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_statsG   s2    
z"AIXSpecificTestCase.test_cpu_statsc                 C   s:   t d}ttd|d}tjdd}||ks6td S )Nr!   z
lcpu=(\d+)   T)logical)r   r   r   r   r   r   	cpu_countr   )r   r   Zmpstat_lcpuZpsutil_lcpur   r   r   test_cpu_count_logicali   s    z*AIXSpecificTestCase.test_cpu_count_logicalc                 C   s4   t d}t| }tt  }||ks0td S )Nz/etc/ifconfig -l)r   setr   r   Znet_if_addrskeysr   )r   r   Zifconfig_namesZpsutil_namesr   r   r   test_net_if_addrs_nameso   s    z+AIXSpecificTestCase.test_net_if_addrs_namesN)__name__
__module____qualname__r   r    r$   r(   r+   r   r   r   r   r      s
   "r   )__doc__r   r   r   Zpsutil.testsr   r   r   markZskipifr   r   r   r   r   <module>	   s   