U
    Ã9%e  ã                   @   s    d dl Zd dlZd dlmZ d dlmZmZ d dlm	Z	 d dl
mZmZmZ dd„ Zdd	„ Zd
d„ Zdd„ Zdd„ ZedƒG dd„ deƒƒZedkrœe ¡  dS )é    N)Úcuda)ÚCudaAPIErrorÚdriver)ÚCudaSupportError)Úskip_on_cudasimÚunittestÚCUDATestCasec                 C   s   t ddƒ‚d S )Niç  ZCUDA_ERROR_UNKNOWN)r   )Úarg© r
   úa/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/numba/cuda/tests/cudadrv/test_init.pyÚcuInit_raising   s    r   c              
   C   s\   t t_d}d }zt d¡ W n, tk
rH } zd}|j}W 5 d }~X Y nX |  ||f¡ d S ©NFé   T)r   r   ÚcuInitr   Údevice_arrayr   ÚmsgÚput©Úresult_queueÚsuccessr   Úer
   r
   r   ÚcuInit_raising_test   s    r   c                 C   sP   t t_d}d }zt d¡ W n tk
r4   d}Y nX t ¡ }|  ||f¡ d S r   )r   r   r   r   r   r   Ú
cuda_errorr   ©r   r   r   r
   r
   r   Úinitialization_error_test&   s    
r   c              
   C   sV   d}d }zt  d¡ W n, tk
rB } zd}|j}W 5 d }~X Y nX |  ||f¡ d S r   )r   r   r   r   r   r   r
   r
   r   Úcuda_disabled_test7   s    r   c                 C   sJ   d}d }zt  d¡ W n tk
r.   d}Y nX t  ¡ }|  ||f¡ d S r   )r   r   r   r   r   r   r
   r
   r   Úcuda_disabled_error_testG   s    
r   z)CUDA Simulator does not initialize driverc                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )ÚTestInitc                 C   s^   t  d¡}| ¡ }|j||fd}| ¡  | d¡ | ¡ \}}|sN|  d¡ |  ||¡ d S )NÚspawn)ÚtargetÚargsé   zCudaSupportError not raised)	ÚmpZget_contextÚQueueÚProcessÚstartÚjoinÚgetZfailZassertIn)Úselfr   ÚexpectedÚctxr   Úprocr   r   r
   r
   r   Ú_test_init_failureW   s    


zTestInit._test_init_failurec                 C   s   d}|   t|¡ d S )Nz.Error at driver init: CUDA_ERROR_UNKNOWN (999))r,   r   ©r(   r)   r
   r
   r   Útest_init_failure_raisingg   s    z"TestInit.test_init_failure_raisingc                 C   s   d}|   t|¡ d S )NzCUDA_ERROR_UNKNOWN (999))r,   r   r-   r
   r
   r   Útest_init_failure_errork   s    z TestInit.test_init_failure_errorc              	   C   sR   t j d¡}dt jd< zd}|  t|¡ W 5 |d k	r@|t jd< nt j d¡ X d S )NZNUMBA_DISABLE_CUDAÚ1z4CUDA is disabled due to setting NUMBA_DISABLE_CUDA=1)ÚosÚenvironr'   Úpopr,   r   )r(   r   Zcuda_disabledr)   r
   r
   r   Ú_test_cuda_disabledo   s    
zTestInit._test_cuda_disabledc                 C   s   |   t¡ d S ©N)r4   r   ©r(   r
   r
   r   Útest_cuda_disabled_raising}   s    z#TestInit.test_cuda_disabled_raisingc                 C   s   |   t¡ d S r5   )r4   r   r6   r
   r
   r   Útest_cuda_disabled_error€   s    z!TestInit.test_cuda_disabled_errorc                 C   s   |   t ¡ ¡ d S r5   )ZassertIsNoner   r   r6   r
   r
   r   Útest_init_successƒ   s    zTestInit.test_init_successN)
Ú__name__Ú
__module__Ú__qualname__r,   r.   r/   r4   r7   r8   r9   r
   r
   r
   r   r   U   s   r   Ú__main__)Úmultiprocessingr"   r1   Znumbar   Znumba.cuda.cudadrv.driverr   r   Znumba.cuda.cudadrv.errorr   Znumba.cuda.testingr   r   r   r   r   r   r   r   r   r:   Úmainr
   r
   r
   r   Ú<module>   s   	4