B
     \
                 @   s   d dl mZmZmZ d dlZd dlZd dlmZmZ	 d dl
mZmZmZ G dd dee	jZdd Zd	d
 ZG dd deZG dd deZejdd ZdS )    )print_functionabsolute_importdivisionN)configunittest_support)captured_stdoutSerialMixinredirect_c_stdoutc               @   s   e Zd Zdd ZdS )CUDATestCasec             C   s   ddl m} |  d S )Nr   )reset)Znumba.cuda.cudadrv.devicesr   )selfr    r   1lib/python3.7/site-packages/numba/cuda/testing.pytearDown   s    zCUDATestCase.tearDownN)__name__
__module____qualname__r   r   r   r   r   r
      s   r
   c             C   s   t tj| S )N)unittestZskipIfr   ENABLE_CUDASIM)reasonr   r   r   skip_on_cudasim   s    r   c             C   s   t tj| S )N)r   Z
skipUnlessr   r   )r   r   r   r   skip_unless_cudasim   s    r   c               @   s   e Zd Zdd Zdd ZdS )CUDATextCapturec             C   s
   || _ d S )N)_stream)r   streamr   r   r   __init__   s    zCUDATextCapture.__init__c             C   s
   | j  S )N)r   read)r   r   r   r   getvalue"   s    zCUDATextCapture.getvalueN)r   r   r   r   r   r   r   r   r   r      s   r   c               @   s   e Zd Zdd Zdd ZdS )PythonTextCapturec             C   s
   || _ d S )N)r   )r   r   r   r   r   r   (   s    zPythonTextCapture.__init__c             C   s
   | j  S )N)r   r   )r   r   r   r   r   +   s    zPythonTextCapture.getvalueN)r   r   r   r   r   r   r   r   r   r   &   s   r   c           	   c   sb   t j  tjr.t } t| V  W dQ R X n0ddlm} t	 } t
| V  |  W dQ R X dS )zl
    Return a minimal stream-like object capturing the text output of
    either CUDA or the simulator.
    Nr   )cuda)sysstdoutflushr   r   r   r   numbar   r	   r   Zsynchronize)r   r   r   r   r   captured_cuda_stdout/   s    

r$   )Z
__future__r   r   r   
contextlibr    r#   r   r   r   Znumba.tests.supportr   r   r	   ZTestCaser
   r   r   objectr   r   contextmanagerr$   r   r   r   r   <module>   s   		