U
    (c                     @   s~   d 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 ee dG dd deZ	e
d	krzdd
lmZ ee dS )zAIX specific tests.    N)AIX)PsutilTestCase)shz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	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TOLERANCE_SYS_MEM r   9/tmp/pip-unpacked-wheel-l83rk7k5/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}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   Z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_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   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__)run_from_name)__doc__r   Zunittestr   r   Zpsutil.testsr   r   ZskipIfr   r-   Zpsutil.tests.runnerr1   __file__r   r   r   r   <module>	   s   c