Repository URL to install this package:
|
Version:
0.36.2 ▾
|
from __future__ import print_function, absolute_import
import re
from .support import TestCase, override_config, tag
from numba import unittest_support as unittest
from numba import jit, types
class TestDebugInfo(TestCase):
"""
These tests only checks the compiled assembly for debuginfo.
"""
def _getasm(self, fn, sig):
fn.compile(sig)
return fn.inspect_asm(sig)
def _check(self, fn, sig, expect):
asm = self._getasm(fn, sig=sig)
m = re.search(r"\.section.+debug", asm, re.I)
got = m is not None
self.assertEqual(expect, got, msg='debug info not found in:\n%s' % asm)
def test_no_debuginfo_in_asm(self):
@jit(nopython=True, debug=False)
def foo(x):
return x
self._check(foo, sig=(types.int32,), expect=False)
@tag('important')
def test_debuginfo_in_asm(self):
@jit(nopython=True, debug=True)
def foo(x):
return x
self._check(foo, sig=(types.int32,), expect=True)
def test_environment_override(self):
with override_config('DEBUGINFO_DEFAULT', 1):
# Using default value
@jit(nopython=True)
def foo(x):
return x
self._check(foo, sig=(types.int32,), expect=True)
# User override default
@jit(nopython=True, debug=False)
def bar(x):
return x
self._check(bar, sig=(types.int32,), expect=False)
if __name__ == '__main__':
unittest.main()