U
    ,d                     @   s   d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
mZ ddlmZmZmZ d dlmZ dd Zdd
dZdS )    N)fnmatch)joinisfilerelpathnormpathsplitext   )NumbaTestProgramSerialSuitemake_tag_decorator)configc                 C   s   zt  }g }t|D ]J}t||}t|rDt|drD|| qtt|dr|| 	| q|D ]B}t
t||| j}tt|tjjdd }|| | qh|W S  tk
r   tjtjd td Y nX dS )zFind tests in 'dir'.z	test_*.pyz__init__.py.r   )fileN)unittestZ	TestSuiteoslistdirr   r   r   appendZaddTestsZdiscoverr   Z_top_level_dirr   r   replacepathsepZloadTestsFromName	Exception	traceback	print_excsysstderrexit)loaderdirZsuitefilesfr    r!   :/tmp/pip-unpacked-wheel-eu7e0c37/numba/testing/__init__.pyload_testsuite   s"    
r#   Fc           	   
   C   s@   |dk	rddl }|j|d}nd}t| d|||d||d}|jS )z
    args
    ----
    - xmloutput [str or None]
        Path of XML output directory (optional)
    - verbosity [int]
        Verbosity level of tests output

    Returns the TestResult object after running the test *suite*.
    Nr   )outputF)argvmoduledefaultTesttopleveldirZ
testRunnerr   	verbositynomultiproc)	xmlrunnerZXMLTestRunnerr	   result)	r%   r'   r(   Z	xmloutputr)   r*   r+   runnerprogr!   r!   r"   	run_tests$   s     r/   )NNNNr   F)r   r   	functoolsr   r   r   os.pathr   r   r   r   r   mainr	   r
   r   Z
numba.corer   r#   r/   r!   r!   r!   r"   <module>   s         