o
    ºi  ã                   @   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rPe ¡  dS dS )é    N)Úcuda)ÚCudaAPIErrorÚdriver)ÚCudaSupportError)Úskip_on_cudasimÚunittestÚCUDATestCasec                 C   s
   t ddƒ‚)Niç  ÚCUDA_ERROR_UNKNOWN)r   )Úarg© r   ú_/home/ubuntu/veenaModal/venv/lib/python3.10/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y% } zd}|j}W Y d }~nd }~ww |  ||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   sN   t t_d}d }zt d¡ W n ty   d}Y nw 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   sX   d}d }zt  d¡ W n ty" } zd}|j}W Y d }~nd }~ww |  ||f¡ d S r   )r   r   r   r   r   r   r   r   r   Úcuda_disabled_test7   s   €þr   c                 C   sH   d}d }zt  d¡ W n ty   d}Y nw 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¡ | ¡ \}}|s'|  d¡ |  ||¡ d S )NÚspawn)ÚtargetÚargsé   zCudaSupportError not raised)	ÚmpÚget_contextÚQueueÚProcessÚstartÚjoinÚgetÚfailÚassertIn)Úselfr    ÚexpectedÚctxr   Úprocr   r   r   r   r   Ú_test_init_failureW   s   


zTestInit._test_init_failurec                 C   ó   d}|   t|¡ d S )Nz.Error at driver init: CUDA_ERROR_UNKNOWN (999))r0   r   ©r,   r-   r   r   r   Útest_init_failure_raisingg   ó   z"TestInit.test_init_failure_raisingc                 C   r1   )NzCUDA_ERROR_UNKNOWN (999))r0   r   r2   r   r   r   Útest_init_failure_errork   r4   z TestInit.test_init_failure_errorc              	   C   sr   t j d¡}dt jd< zd}|  t|¡ W |d ur |t jd< d S t j d¡ d S |d ur2|t jd< w t j d¡ w )NÚNUMBA_DISABLE_CUDAÚ1z4CUDA is disabled due to setting NUMBA_DISABLE_CUDA=1)ÚosÚenvironr)   r0   r   Úpop)r,   r    Úcuda_disabledr-   r   r   r   Ú_test_cuda_disabledo   s   
ýzTestInit._test_cuda_disabledc                 C   ó   |   t¡ d S ©N)r<   r   ©r,   r   r   r   Útest_cuda_disabled_raising}   ó   z#TestInit.test_cuda_disabled_raisingc                 C   r=   r>   )r<   r   r?   r   r   r   Útest_cuda_disabled_error€   rA   z!TestInit.test_cuda_disabled_errorc                 C   s   |   t ¡ ¡ d S r>   )ÚassertIsNoner   r   r?   r   r   r   Útest_init_successƒ   s   zTestInit.test_init_successN)
Ú__name__Ú
__module__Ú__qualname__r0   r3   r5   r<   r@   rB   rD   r   r   r   r   r   U   s    r   Ú__main__)Úmultiprocessingr#   r8   Únumbar   Únumba.cuda.cudadrv.driverr   r   Únumba.cuda.cudadrv.errorr   Únumba.cuda.testingr   r   r   r   r   r   r   r   r   rE   Úmainr   r   r   r   Ú<module>   s     	4ÿ