
    xKg
                         d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
 d dlmZ  G d de      Z e
d       G d d	e             Zed
k(  r ej                           yy)    N)cuda)unittestCUDATestCaseskip_on_cudasimskip_under_cuda_memcheck)captured_stdoutc                       e Zd Zd Zy)TestCudaDetectc                     t               5 }t        j                          d d d        j                         }| j	                  d|       | j	                  d|       y # 1 sw Y   >xY w)NFoundzCUDA devices)r   r   detectgetvalueassertIn)selfoutoutputs      h/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/cuda/tests/cudadrv/test_detect.pytest_cuda_detectzTestCudaDetect.test_cuda_detect   sH    #KKM gv&nf-	 s   AA&N)__name__
__module____qualname__r        r   r
   r
      s    .r   r
   zHangs cuda-memcheckc                       e Zd Zd Zd Z ed       ej                  ej                  j                  d       d      d               Zy)TestCUDAFindLibsc                 ~   t        j                  |t         j                  t         j                  |      }t        j                  d|j
                        }	 |j                          |j                         \  }}|j                         |j                         f|j                          S # |j                          w xY w)N)stdoutstderrenvg     r@)

subprocessPopenPIPE	threadingTimerkillstartcommunicatedecodecancel)r   cmdliner   popentimeoutr   errs          r   run_cmdzTestCUDAFindLibs.run_cmd   s      (2(2%(* //'5::6	MMO((*HC::<-NNGNNs   AB* *B<c                     t         j                  j                         }t        |      ||<   d}t        j
                  d|g}| j                  ||      S )Nzif 1:
            from numba import cuda
            @cuda.jit('(int64,)')
            def kernel(x):
                pass
            kernel(1,)
            z-c)osenvironcopystrsys
executabler.   )r   envvarenvvar_valueenv_copycoder*   s         r   run_test_in_separate_processz-TestCUDAFindLibs.run_test_in_separate_process)   sK    ::??$|, >>4.||GX..r   z6Simulator does not hit device library search code pathlinuxz
linux onlyc                 L   ddg}d}|D ][  }t         j                  j                  t         j                  j                  |      }t         j                  j	                  |      s[ n |<| j                  d|      \  }}| j                  |du       | j                  |du       yy)z
        This tests that the find_libs works as expected in the case of an
        environment variable being used to set the path.
        liblib64NNUMBA_CUDA_DRIVER)r0   pathjoinsepexistsr:   
assertTrue)r   locslooking_forlr   r-   s         r   test_cuda_find_lib_errorsz*TestCUDAFindLibs.test_cuda_find_lib_errors6   s     wA'',,rww{{A6Kww~~k*  "889L9DFHCOOCtO,OOCtO,	 #r   N)r   r   r   r.   r:   r   r   skipIfr4   platform
startswithrH   r   r   r   r   r      sO    "/ MNX__0099<H- I O-r   r   __main__)r0   r4   r    r#   numbar   numba.cuda.testingr   r   r   r   numba.tests.supportr   r
   r   r   mainr   r   r   <module>rQ      si    	 
   : : /.\ . /07-| 7- 17-t zHMMO r   