U
    hâËdù  ã                   @   sŒ   d dl Zd dlZd dlmZmZ d dlmZmZmZ d dl	m
Z
 dd„ Zdd„ Ze
ed	ƒed
ƒeG dd„ deƒƒƒƒƒZedkrˆe ¡  dS )é    N)ÚunittestÚCUDATestCase)Úskip_on_cudasimÚskip_under_cuda_memcheckÚ!skip_if_mvc_libraries_unavailable)Ú
linux_onlyc                  C   s2   ddl m} m} d| _|jdd„ ƒ}|d ƒ  d S )Nr   )ÚconfigÚcudaé   c                   S   s   d S )N© r   r   r   úZ/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numba/cuda/tests/cudadrv/test_mvc.pyÚf   s    zchild_test.<locals>.f)r
   r
   )Znumbar   r	   Z'CUDA_ENABLE_MINOR_VERSION_COMPATIBILITYZjit)r   r	   r   r   r   r   Ú
child_test	   s
    
r   c                 C   s:   zt ƒ }d}W n   t ¡ }d}Y nX |  ||f¡ d S )NTF)r   Ú	tracebackÚ
format_excÚput)Úresult_queueÚoutputÚsuccessr   r   r   Úchild_test_wrapper   s    
r   zMay hang CUDA memcheckz+Simulator does not require or implement MVCc                   @   s   e Zd Zdd„ ZdS )ÚTestMinorVersionCompatibilityc                 C   sP   t  d¡}| ¡ }|jt|fd�}| ¡  | ¡  | ¡ \}}|sL|  |¡ d S )NÚspawn)ÚtargetÚargs)	ÚmpZget_contextÚQueueÚProcessr   ÚstartÚjoinÚgetZfail)ÚselfÚctxr   Úprocr   r   r   r   r   Útest_mvc'   s    
z&TestMinorVersionCompatibility.test_mvcN)Ú__name__Ú
__module__Ú__qualname__r#   r   r   r   r   r   "   s   r   Ú__main__)Úmultiprocessingr   r   Znumba.cuda.testingr   r   r   r   r   Znumba.tests.supportr   r   r   r   r$   Úmainr   r   r   r   Ú<module>   s   