import sys import unittest from unittest import TestCase import faulthandler try: # May fail in IPython Notebook with UnsupportedOperation faulthandler.enable() except BaseException as e: msg = "Failed to enable faulthandler due to:\n{err}" warnings.warn(msg.format(err=e)) # Try to inject Numba's unittest customizations. from llvmlite.tests import customize def discover_tests(startdir): """Discover test under a directory """ # Avoid importing unittest loader = unittest.TestLoader() suite = loader.discover(startdir) return suite def run_tests(suite=None, xmloutput=None, verbosity=1): """ args ---- - suite [TestSuite] A suite of all tests to run - 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*. """ if suite is None: suite = discover_tests("llvmlite.tests") if xmloutput is not None: import xmlrunner runner = xmlrunner.XMLTestRunner(output=xmloutput) else: runner = None prog = unittest.main(suite=suite, testRunner=runner, exit=False, verbosity=verbosity) return prog.result def main(): res = run_tests() sys.exit(0 if res.wasSuccessful() else 1)