o
    i                     @   s   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 d dlm	Z	 d dl
mZ d dlmZ d dlm  mZ G d	d
 d
eZG dd deZG dd deZG dd deZedkree  dS dS )    N)
skipUnless)NonCallableMock)chain)datetime)redirect_stdout)StringIO)TestCasec                       sH   e Zd Z fddZ fddZdd Zdd Zd	d
 Zdd Z  Z	S )TestSysInfoc                    s   t t|   t | _ttjfttj	ft
tjtjtjtjtjtjtjtjtjtjf
ttjtjtjtjtjtjtjtjtjf	ttj tj!ft"tj#ft$tj%tj&fi| _'t(| j')  | _*d S N)+superr	   setUpnsiZget_sysinfoinfointZ
_cpu_countfloatZ_runtimestrZ_machineZ	_cpu_nameZ_platform_nameZ_os_nameZ_os_versionZ_python_compZ_python_implZ_python_versionZ_llvm_versionZ_numpy_versionboolZ_cu_dev_initZ_svml_stateZ_svml_loadedZ_svml_operationalZ_llvm_svml_patchedZ_tbb_threadZ_openmp_threadZ_wkq_threadZ_numpy_AVX512_SKX_detectedlist_errors	_warningsdictZ_numba_env_varsr   _startZ
_start_utcsafe_contentsr   values	safe_keysself	__class__ g/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/numba/tests/test_sysinfo.pyr      sX   
*zTestSysInfo.setUpc                    s   t t|   | `d S r
   )r   r	   tearDownr   r   r   r   r    r!   ?   s   zTestSysInfo.tearDownc              	   C   sJ   | j D ]}| j|d | || j W d    n1 sw   Y  qd S N)k)r   subTestassertInr   )r   r#   r   r   r    test_has_safe_keysD   s   
zTestSysInfo.test_has_safe_keysc              
   C   `   | j  D ](\}}|D ]!}| j|d | | j| | W d    n1 s'w   Y  qqd S r"   )r   itemsr$   assertIsInstancer   r   tkeysr#   r   r   r    test_safe_content_typeI      z"TestSysInfo.test_safe_content_typec                 C   s   |  | jtj  d S r
   )ZassertFalser   r   r   r   r   r   r    test_has_no_errorO   s   zTestSysInfo.test_has_no_errorc                 C   sN   t  }t| ti }W d    n1 sw   Y  | | |  d S r
   )r   r   r   Zdisplay_sysinfoZassertIsNoneclose)r   outputresr   r   r    test_display_empty_infoR   s   

z#TestSysInfo.test_display_empty_info)
__name__
__module____qualname__r   r!   r&   r-   r/   r3   __classcell__r   r   r   r    r	      s    /r	   c                       sb   e Zd ZdZdZddgZ fddZ fddZd	d
 Zdd Z	e
e dv ddd Z  ZS )TestSysInfoWithPsutili    i         c                    s~   t t|   tj| _dt_t t_tjjj	}| j
|_| j|_t dv r0tjjj	}| j|j_	nd tjj_	tt | _d S )NTLinuxWindows)r   r8   r   r   _psutil_importpsutil_orig_stater   ZpsutilZvirtual_memoryreturn_value	mem_totaltotalmem_available	availableplatformsystemProcess	cpus_listZcpu_affinityget_os_spec_infor   )r   vmprocr   r   r    r   `   s   


zTestSysInfoWithPsutil.setUpc                       t t|   | jt_d S r
   )r   r8   r!   r?   r   r>   r   r   r   r    r!   r      zTestSysInfoWithPsutil.tearDownc              	   C   j   t jt jf}|D ]*}| j|d | || j  | | j| t W d    n1 s-w   Y  qd S r"   	r   
_mem_total_mem_availabler$   r%   r   r,   r)   r   r   r,   r#   r   r   r    test_has_all_datav      z'TestSysInfoWithPsutil.test_has_all_datac                 C   s0   |  | jtj | j |  | jtj | j d S r
   )assertEqualr   r   rP   rA   rQ   rC   r   r   r   r    test_has_correct_values}   s   z-TestSysInfoWithPsutil.test_has_correct_valuesr;   z5CPUs allowed info only available on Linux and Windowsc                 C   sD   |  | jtj t| j |  | jtj ddd | jD  d S )N c                 s   s    | ]}t |V  qd S r
   )r   ).0nr   r   r    	<genexpr>   s    z7TestSysInfoWithPsutil.test_cpus_list.<locals>.<genexpr>)rU   r   r   Z_cpus_allowedlenrH   Z
_cpus_listjoinr   r   r   r    test_cpus_list   s   z$TestSysInfoWithPsutil.test_cpus_list)r4   r5   r6   rA   rC   rH   r   r!   rS   rV   r   rE   rF   r]   r7   r   r   r   r    r8   Z   s    r8   c                       s0   e Zd Z fddZ fddZdd Z  ZS )TestSysInfoWithoutPsutilc                    s0   t t|   tj| _dt_tt | _	d S )NF)
r   r^   r   r   r>   r?   rI   rE   rF   r   r   r   r   r    r      s   zTestSysInfoWithoutPsutil.setUpc                    rL   r
   )r   r^   r!   r?   r   r>   r   r   r   r    r!      rM   z!TestSysInfoWithoutPsutil.tearDownc              	   C   rN   r"   rO   rR   r   r   r    rS      rT   z*TestSysInfoWithoutPsutil.test_has_all_data)r4   r5   r6   r   r!   rS   r7   r   r   r   r    r^      s    r^   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestPlatformSpecificInfoc                 C   sT   t tjfit tjfit tjfid| _t | _| j| ji | _	t
| j| _d S )N)r<   r=   Darwin)r   r   Z_libc_versionZ_os_spec_versionZplat_spec_inforE   rF   os_namegetcontentsrI   r   r   r   r   r    r      s   
zTestPlatformSpecificInfo.setUpc              	   C   sZ   t | j  }|D ]!}| j|d | || j  W d    n1 s%w   Y  q	d S r"   )r   rc   r   r$   r%   r   r,   rR   r   r   r    rS      s   z*TestPlatformSpecificInfo.test_has_all_datac              
   C   r'   r"   )rc   r(   r$   r)   r   r*   r   r   r    test_content_type   r.   z*TestPlatformSpecificInfo.test_content_typeN)r4   r5   r6   r   rS   rd   r   r   r   r    r_      s    r_   __main__)rE   Zunittestr   Zunittest.mockr   	itertoolsr   r   
contextlibr   ior   Znumba.tests.supportr   Znumba.misc.numba_sysinfomiscZnumba_sysinfor   r	   r8   r^   r_   r4   mainr   r   r   r    <module>   s"    L/