40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
# NOTE: This test is sensitive to line numbers as it checks breakpoints
|
|
from numba import njit, types
|
|
from numba.tests.gdb_support import GdbMIDriver
|
|
from numba.tests.support import TestCase, needs_subprocess
|
|
import unittest
|
|
|
|
|
|
@needs_subprocess
|
|
class Test(TestCase):
|
|
|
|
def test(self):
|
|
@njit(debug=True)
|
|
def foo(x):
|
|
z = 7 + x # break here
|
|
return x, z
|
|
|
|
foo(120)
|
|
|
|
sz = types.intp.bitwidth
|
|
driver = GdbMIDriver(__file__)
|
|
driver.set_breakpoint(line=14)
|
|
driver.run()
|
|
driver.check_hit_breakpoint(1)
|
|
driver.stack_list_arguments(2)
|
|
expect = ('[frame={level="0",args=[{name="x",type="int%s",'
|
|
'value="120"}]}]' % sz)
|
|
driver.assert_output(expect)
|
|
driver.stack_list_variables(1)
|
|
expect = '[{name="x",arg="1",value="120"},{name="z",value="0"}]'
|
|
driver.assert_output(expect)
|
|
driver.next()
|
|
driver.stack_list_variables(1)
|
|
expect = '[{name="x",arg="1",value="120"},{name="z",value="127"}]'
|
|
driver.assert_output(expect)
|
|
driver.quit()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|