
    J/Ph                         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 Zd Zd Zd	 Zd
 Z ed           G d de                      Zedk    r ej                     dS dS )    N)cuda)CudaAPIErrordriver)CudaSupportError)skip_on_cudasimunittestCUDATestCasec                 "    t          dd          )Ni  CUDA_ERROR_UNKNOWN)r   )args    b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/cuda/tests/cudadrv/test_init.pycuInit_raisingr      s    
s0
1
11    c                     t           t          _        d}d }	 t          j        d           n # t
          $ r}d}|j        }Y d }~nd }~ww xY w|                     ||f           d S NF   T)r   r   cuInitr   device_arrayr   msgputresult_queuesuccessr   es       r   cuInit_raising_testr      s    "FMG
C!   e gs^$$$$$s   , 
A		AA	c                     t           t          _        d}d }	 t          j        d           n# t
          $ r d}Y nw xY wt          j                    }|                     ||f           d S r   )r   r   r   r   r   r   
cuda_errorr   r   r   r   s      r   initialization_error_testr   &   s}    "FMG
C!    /

Cgs^$$$$$s   , ;;c                     d}d }	 t          j        d           n # t          $ r}d}|j        }Y d }~nd }~ww xY w|                     ||f           d S r   )r   r   r   r   r   r   s       r   cuda_disabled_testr!   7   sz    G
C!   e gs^$$$$$s    
8	38c                     d}d }	 t          j        d           n# t          $ r d}Y nw xY wt          j                    }|                     ||f           d S r   )r   r   r   r   r   r   s      r   cuda_disabled_error_testr#   G   sv    G
C!    /

Cgs^$$$$$s    **z)CUDA Simulator does not initialize driverc                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestInitc                 `   t          j        d          }|                                }|                    ||f          }|                                 |                    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   s           r   _test_init_failurezTestInit._test_init_failureW   s    nW%%yy{{{{&{??

		"#''))  	5II3444h$$$$$r   c                 @    d}|                      t          |           d S )Nz.Error at driver init: CUDA_ERROR_UNKNOWN (999))r8   r   r4   r5   s     r   test_init_failure_raisingz"TestInit.test_init_failure_raisingg   s$    C 3X>>>>>r   c                 @    d}|                      t          |           d S )NzCUDA_ERROR_UNKNOWN (999))r8   r   r:   s     r   test_init_failure_errorz TestInit.test_init_failure_errork   s$    - 98DDDDDr   c                 n   t           j                            d          }dt           j        d<   	 d}|                     t          |           ||t           j        d<   d S t           j                            d           d S # ||t           j        d<   w t           j                            d           w xY w)NNUMBA_DISABLE_CUDA1z4CUDA is disabled due to setting NUMBA_DISABLE_CUDA=1)osenvironr1   r8   r!   pop)r4   r(   cuda_disabledr5   s       r   _test_cuda_disabledzTestInit._test_cuda_disabledo   s     
';<<+.
'(	5MH##$6AAA(3@
/000
344444 (3@
/00
34444s   B 3B4c                 :    |                      t                     d S N)rE   r!   r4   s    r   test_cuda_disabled_raisingz#TestInit.test_cuda_disabled_raising}   s      !344444r   c                 :    |                      t                     d S rG   )rE   r#   rH   s    r   test_cuda_disabled_errorz!TestInit.test_cuda_disabled_error   s      !9:::::r   c                 R    |                      t          j                               d S rG   )assertIsNoner   r   rH   s    r   test_init_successzTestInit.test_init_success   s&     	$/++,,,,,r   N)
__name__
__module____qualname__r8   r;   r=   rE   rI   rK   rN    r   r   r%   r%   U   s        % % % ? ? ?E E E5 5 55 5 5; ; ;- - - - -r   r%   __main__)multiprocessingr+   rA   numbar   numba.cuda.cudadrv.driverr   r   numba.cuda.cudadrv.errorr   numba.cuda.testingr   r   r	   r   r   r   r!   r#   r%   rO   mainrR   r   r   <module>rZ      s(       				       : : : : : : : : 5 5 5 5 5 5 F F F F F F F F F F2 2 2% % %$% % %"% % % % % % <==1- 1- 1- 1- 1-| 1- 1- >=1-h zHMOOOOO r   