o
    h8                     @   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| d7 }qt||}|d usJ d}t|d| }t|d| }t|d	| }t|d
| }	t }
d| | }|
j|ksVJ t|
j	| |k saJ t|
j
| |k slJ t|
j|	 |k swJ d S )Nz/usr/bin/svmon -O unit=KBz	memory\s*)sizeinusefreepinvirtual	availablemmode(?P<>\S+)\s+i   r   r   r	   r
      )r   researchintgrouppsutilvirtual_memorytotalabsusedr   r
   )selfout
re_patternfieldmatchobjKBr   r   r   r
   psutil_resultTOLERANCE_SYS_MEM r#   I/var/www/vscode/kcb/lib/python3.10/site-packages/psutil/tests/test_aix.pytest_virtual_memory   s"   	z'AIXSpecificTestCase.test_virtual_memoryc                 C   sT   t d}td|}|d usJ t|d}d}t }t|j| |ks(J 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   swap_memoryr   )r   r   r   total_mbMBr!   r#   r#   r$   test_swap_memory8   s   z$AIXSpecificTestCase.test_swap_memoryc                 C   s   t d}d}dD ]
}|d| d7 }qt||}|d usJ d}t }t|jt|d |k s5J t|j	t|d |k sEJ t|j
t|d	 |k sUJ t|jt|d
 |k seJ d S )N/usr/bin/mpstat -azALL\s*)minmajmpcsmpcrdevsoftdecphcsicsboundrqpushS3pullS3grdS0rdS1rdS2rdS3rdS4rdS5rdsyscr   r   i  r3   r@   r/   r0   )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_statsO   s(   z"AIXSpecificTestCase.test_cpu_statsc                 C   s:   t d}ttd|d}tjdd}||ksJ d S )Nr*   z
lcpu=(\d+)   T)logical)r   r   r   r   r   r   	cpu_count)r   r   mpstat_lcpupsutil_lcpur#   r#   r$   test_cpu_count_logical   s   z*AIXSpecificTestCase.test_cpu_count_logicalc                 C   s4   t d}t| }tt  }||ksJ d S )Nz/etc/ifconfig -l)r   setsplitr   net_if_addrskeys)r   r   ifconfig_namespsutil_namesr#   r#   r$   test_net_if_addrs_names   s   z+AIXSpecificTestCase.test_net_if_addrs_namesN)__name__
__module____qualname__r%   r)   rG   rM   rT   r#   r#   r#   r$   r      s    "5r   )__doc__r   r   r   psutil.testsr   r   r   markskipifr   r#   r#   r#   r$   <module>   s   