o
    i                     @   s   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d Zejr.dZnd	ZG d
d dejZG dd dejeZedkrMe  dS dS )    N)config)runtime)unittestSerialMixinskip_on_cudasim)patchc                 C   sN   zddl m} dd l}d|jd< | t|jj W d S    | d Y d S )Nr   cuda0CUDA_VISIBLE_DEVICES)numbar	   osenvironputlengpuslst)qr	   r    r   b/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/numba/cuda/tests/cudadrv/test_runtime.pyset_visible_devices_and_check	   s   
r   ))r   r   ))   r   )r      )r      )r      )r      )r      )r      )r      c                   @   s,   e Zd Zdd Zeddd Zdd ZdS )	TestRuntimec              	   C   sL   t D ]!}tjtd|d | t  W d    n1 sw   Y  qd S )Nget_versionreturn_value)SUPPORTED_VERSIONSr   objectr   
assertTrueis_supported_versionselfvr   r   r   test_is_supported_version_true   s   z*TestRuntime.test_is_supported_version_truez2The simulator always simulates a supported runtimec              	   C   sL   dD ]!}t jtd|d | t  W d    n1 sw   Y  qd S )N))
   r   )r      )   r   r!   r"   )r   r%   r   assertFalser'   r(   r   r   r   test_is_supported_version_false"   s   z+TestRuntime.test_is_supported_version_falsec                 C   s   |  ttj d S )N)assertEqualr$   r   supported_versions)r)   r   r   r   test_supported_versions*   s   z#TestRuntime.test_supported_versionsN)__name__
__module____qualname__r+   r   r0   r3   r   r   r   r   r       s
    
r    c                   @   s   e Zd Zdd ZdS )TestVisibleDevicesc                 C   s   ddl m} t|jjdv r| d tjdr d}| | t	
d}| }|jt|fd}|  z
| }W |  n|  w d	}| j|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assertNotEqualr1   )r)   r	   r;   ctxr   pvisible_gpu_countr   r   r   %test_visible_devices_set_after_import/   s    




z8TestVisibleDevices.test_visible_devices_set_after_importN)r4   r5   r6   rH   r   r   r   r   r7   .   s    r7   __main__)r>   r   
numba.corer   numba.cuda.cudadrv.runtimer   numba.cuda.testingr   r   r   unittest.mockr   r   ENABLE_CUDASIMr$   TestCaser    r7   r4   mainr   r   r   r   <module>   s    &