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	availableZinusefree   Z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   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   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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   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)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__)run_from_name)__doc__r   r   r   Zpsutil.testsr   r   r   ZskipIfr   r+   Zpsutil.tests.runnerr/   __file__r   r   r   r   <module>   s   c