
    xKg                         d dl Z d dlZd dlmZ d dlmZ d dlmZmZm	Z	 d dl
mZ d Zej                  rdZndZ G d	 d
ej                        Z G d dej                  e      Zedk(  r ej&                          yy)    N)config)runtime)unittestSerialMixinskip_on_cudasim)patchc                     	 ddl m} dd l}d|j                  d<   | j	                  t        |j                  j                               y #  | j	                  d       Y y xY w)Nr   cuda0CUDA_VISIBLE_DEVICES)numbar   osenvironputlengpuslst)qr   r   s      i/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/cuda/tests/cudadrv/test_runtime.pyset_visible_devices_and_checkr   	   sG    -0

)*	c$))-- !	b	s   AA
 
A))r   r   ))   r   )r      )r      )r      )r      )r      )r      )r      c                   4    e Zd Zd Z ed      d        Zd Zy)TestRuntimec                     t         D ]J  }t        j                  t        d|      5  | j	                  t        j
                                d d d        L y # 1 sw Y   WxY w)Nget_versionreturn_value)SUPPORTED_VERSIONSr   objectr   
assertTrueis_supported_versionselfvs     r   test_is_supported_version_truez*TestRuntime.test_is_supported_version_true   sA    #Ag}1E < < >? FE $EEs   $AA	z2The simulator always simulates a supported runtimec                     dD ]J  }t        j                  t        d|      5  | j                  t        j                                d d d        L y # 1 sw Y   WxY w)N))
   r   )r      )   r   r$   r%   )r   r(   r   assertFalser*   r+   s     r   test_is_supported_version_falsez+TestRuntime.test_is_supported_version_false"   sE     -Ag}1E  !=!=!?@ FE -EEs   $AA	c                 L    | j                  t        t        j                         y )N)assertEqualr'   r   supported_versions)r,   s    r   test_supported_versionsz#TestRuntime.test_supported_versions*   s    +W-G-GH    N)__name__
__module____qualname__r.   r   r4   r8    r9   r   r"   r"      s+    @
 IJA KAIr9   r"   c                       e Zd Zd Zy)TestVisibleDevicesc                 .   ddl m} t        |j                  j                        dv r| j                  d       t        j                  j                  d      rd}| j                  |       t        j                  d      }|j                         }|j                  t        |f      }|j                          	 |j                         }|j                          d	}| j!                  |d
|       | j#                  |d       y # |j                          w xY w)Nr   r
   )r   r   z This test requires multiple GPUsr   z1Cannot test when CUDA_VISIBLE_DEVICES already setspawn)targetargsz+Error running set_visible_devices_and_checkr   )msgr   )r   r   r   r   r   skipTestr   r   getmultiprocessingget_contextQueueProcessr   startjoinassertNotEqualr6   )r,   r   rD   ctxr   pvisible_gpu_counts          r   %test_visible_devices_set_after_importz8TestVisibleDevices.test_visible_devices_set_after_import/   s     	tyy}}'MM<=::>>01ECMM#))'2IIKKK<A4KH			 !FFH <-rs; 	*A. FFHs   9D DN)r:   r;   r<   rQ   r=   r9   r   r?   r?   .   s    "/r9   r?   __main__)rG   r   
numba.corer   numba.cuda.cudadrv.runtimer   numba.cuda.testingr   r   r   unittest.mockr   r   ENABLE_CUDASIMr'   TestCaser"   r?   r:   mainr=   r9   r   <module>rZ      s{     	  . E E 	 
",I(## I$#/**K #/L zHMMO r9   