1*99451b44SJordan Rupprecht"""
2*99451b44SJordan RupprechtTest that we can have persistent pointer variables
3*99451b44SJordan Rupprecht"""
4*99451b44SJordan Rupprecht
5*99451b44SJordan Rupprecht
6*99451b44SJordan Rupprecht
7*99451b44SJordan Rupprechtimport lldb
8*99451b44SJordan Rupprechtimport lldbsuite.test.lldbutil as lldbutil
9*99451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import *
10*99451b44SJordan Rupprecht
11*99451b44SJordan Rupprecht
12*99451b44SJordan Rupprechtclass PersistentPtrUpdateTestCase(TestBase):
13*99451b44SJordan Rupprecht
14*99451b44SJordan Rupprecht    def test(self):
15*99451b44SJordan Rupprecht        """Test that we can have persistent pointer variables"""
16*99451b44SJordan Rupprecht        self.build()
17*99451b44SJordan Rupprecht
18*99451b44SJordan Rupprecht        def cleanup():
19*99451b44SJordan Rupprecht            pass
20*99451b44SJordan Rupprecht
21*99451b44SJordan Rupprecht        # Execute the cleanup function during test case tear down.
22*99451b44SJordan Rupprecht        self.addTearDownHook(cleanup)
23*99451b44SJordan Rupprecht
24*99451b44SJordan Rupprecht        self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET)
25*99451b44SJordan Rupprecht
26*99451b44SJordan Rupprecht        self.runCmd('break set -p here')
27*99451b44SJordan Rupprecht
28*99451b44SJordan Rupprecht        self.runCmd("run", RUN_SUCCEEDED)
29*99451b44SJordan Rupprecht
30*99451b44SJordan Rupprecht        self.runCmd("expr void* $foo = 0")
31*99451b44SJordan Rupprecht
32*99451b44SJordan Rupprecht        self.runCmd("continue")
33*99451b44SJordan Rupprecht
34*99451b44SJordan Rupprecht        self.expect("expr $foo", substrs=['$foo', '0x0'])
35