
    xKg                         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*                          yy)    N)cuda)CudaAPIErrordriver)CudaSupportError)skip_on_cudasimunittestCUDATestCasec                     t        dd      )Ni  CUDA_ERROR_UNKNOWN)r   )args    f/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/cuda/tests/cudadrv/test_init.pycuInit_raisingr      s    
s0
11    c                     t         t        _        d}d }	 t        j                  d       | j                  ||f       y # t
        $ r}d}|j                  }Y d }~0d }~ww xY wNF   T)r   r   cuInitr   device_arrayr   msgputresult_queuesuccessr   es       r   cuInit_raising_testr      sZ    "FMG
C!
 gs^$	  ees   > 	AAAc                     t         t        _        d}d }	 t        j                  d       t        j                         }| j                  ||f       y # t
        $ r d}Y 5w xY wr   )r   r   r   r   r   r   
cuda_errorr   r   r   r   s      r   initialization_error_testr   &   s\    "FMG
C! //
Cgs^$	  s   A A A c                     d}d }	 t        j                  d       | j	                  ||f       y # t        $ r}d}|j                  }Y d }~0d }~ww xY wr   )r   r   r   r   r   r   s       r   cuda_disabled_testr!   7   sS    G
C!
 gs^$	  ees   / 	AAAc                     d}d }	 t        j                  d       t        j                         }| j	                  ||f       y # t        $ r d}Y 5w xY wr   )r   r   r   r   r   r   s      r   cuda_disabled_error_testr#   G   sU    G
C! //
Cgs^$	  s   A AAz)CUDA Simulator does not initialize driverc                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestInitc                 (   t        j                  d      }|j                         }|j                  ||f      }|j	                          |j                  d       |j                         \  }}|s| j                  d       | j                  ||       y )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   su    nnW%yy{{{&{?

		"#'') II34h$r   c                 4    d}| j                  t        |       y )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                 4    d}| j                  t        |       y )NzCUDA_ERROR_UNKNOWN (999))r8   r   r:   s     r   test_init_failure_errorz TestInit.test_init_failure_errork   s    - 98Dr   c                 x   t         j                  j                  d      }dt         j                  d<   	 d}| j                  t        |       ||t         j                  d<   y t         j                  j                  d       y # ||t         j                  d<   w t         j                  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(3@

/0

34 (3@

/0

34s   B 7B9c                 .    | j                  t               y N)rE   r!   r4   s    r   test_cuda_disabled_raisingz#TestInit.test_cuda_disabled_raising}   s      !34r   c                 .    | j                  t               y rG   )rE   r#   rH   s    r   test_cuda_disabled_errorz!TestInit.test_cuda_disabled_error   s      !9:r   c                 J    | j                  t        j                                y 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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      so     	  : 5 F F2%$%"% % <=1-| 1- >1-h zHMMO r   