
    J/Ph                         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                     dS dS )    N)config)runtime)unittestSerialMixinskip_on_cudasim)patchc                     	 ddl m} dd l}d|j        d<   |                     t          |j        j                             d S #  |                     d           Y d S xY w)Nr   cuda0CUDA_VISIBLE_DEVICES)numbar   osenvironputlengpuslst)qr   r   s      e/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/cuda/tests/cudadrv/test_runtime.pyset_visible_devices_and_checkr   	   sq    			-0
)*	c$)-  !!!!!	b						s   A A A))r   r   ))   r   )r      )r      )r      )r      )r      )r      )r      c                   B    e Zd Zd Z ed          d             Zd ZdS )TestRuntimec                     t           D ]\}t          j        t          d|          5  |                     t          j                               d d d            n# 1 swxY w Y   ]d S )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   s    # 	@ 	@Ag}1EEE @ @ < > >???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @	@ 	@s   'AA	 A	z2The simulator always simulates a supported runtimec                     dD ]\}t          j        t          d|          5  |                     t          j                               d d d            n# 1 swxY w Y   ]d S )N))
   r   )r      )   r   r$   r%   )r   r(   r   assertFalser*   r+   s     r   test_is_supported_version_falsez+TestRuntime.test_is_supported_version_false"   s     - 	A 	AAg}1EEE A A  !=!?!?@@@A A A A A A A A A A A A A A A	A 	As   'AA	A	c                 P    |                      t          t          j                   d S )N)assertEqualr'   r   supported_versions)r,   s    r   test_supported_versionsz#TestRuntime.test_supported_versions*   s"    +W-GHHHHH    N)__name__
__module____qualname__r.   r   r4   r8    r9   r   r"   r"      se        @ @ @
 _IJJA A KJAI I I I Ir9   r"   c                       e Zd Zd ZdS )TestVisibleDevicesc                 v   ddl m} t          |j        j                  dv r|                     d           t          j                            d          rd}|                     |           t          j
        d          }|                                }|                    t          |f          }|                                 	 |                                }|                                 n# |                                 w xY wd	}|                     |d
|           |                     |d           d S )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&    	ty}''MM<===:>>011 	ECMM#)'22IIKKKK<A4KHH					 !FFHHHHAFFHHHH <-rs;;; 	*A.....s   C0 0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 E E E E E E E E      	 	 	 
 ,",I I I I I(# I I I$#/ #/ #/ #/ #/*K #/ #/ #/L zHMOOOOO r9   