forked from OSchip/llvm-project
Improve ValueObject::GetValueDidChange test; Add a comment for it
Summary: This patch adds a few comments for GetValueDidChange and contains improvements for TestValueVarUpdate.py test which checks ValueObject::GetValueDidChange for complex types. Reviewers: zturner, granata.enrico, clayborg Reviewed By: clayborg Subscribers: jingham, lldb-commits, granata.enrico, zturner, clayborg Differential Revision: http://reviews.llvm.org/D8103 llvm-svn: 231526
This commit is contained in:
parent
6ec9ba5a97
commit
d4ec5a70ea
|
@ -84,6 +84,7 @@ public:
|
|||
ValueType
|
||||
GetValueType ();
|
||||
|
||||
// It will be only valid starting from the second time.
|
||||
bool
|
||||
GetValueDidChange ();
|
||||
|
||||
|
|
|
@ -649,6 +649,7 @@ public:
|
|||
bool
|
||||
GetValueIsValid () const;
|
||||
|
||||
// It will be only valid starting from the second time.
|
||||
bool
|
||||
GetValueDidChange ();
|
||||
|
||||
|
|
|
@ -52,6 +52,12 @@ class HelloWorldTestCase(TestBase):
|
|||
|
||||
i = self.frame().FindVariable("i")
|
||||
i_val = i.GetValueAsUnsigned(0)
|
||||
c = self.frame().FindVariable("c")
|
||||
|
||||
# Update any values from the SBValue objects so we can ask them if they changed after a continue
|
||||
i.GetValueDidChange()
|
||||
c.GetChildAtIndex(1).GetValueDidChange()
|
||||
c.GetChildAtIndex(0).GetChildAtIndex(0).GetValueDidChange()
|
||||
|
||||
if self.TraceOn(): self.runCmd("frame variable")
|
||||
|
||||
|
@ -62,6 +68,9 @@ class HelloWorldTestCase(TestBase):
|
|||
self.assertTrue(i_val != i.GetValueAsUnsigned(0), "GetValue() is saying a lie")
|
||||
self.assertTrue(i.GetValueDidChange(), "GetValueDidChange() is saying a lie")
|
||||
|
||||
# Check complex type
|
||||
self.assertTrue(c.GetChildAtIndex(0).GetChildAtIndex(0).GetValueDidChange() and
|
||||
not c.GetChildAtIndex(1).GetValueDidChange(), "GetValueDidChange() is saying a lie")
|
||||
|
||||
if __name__ == '__main__':
|
||||
import atexit
|
||||
|
|
|
@ -1,8 +1,14 @@
|
|||
struct complex_type {
|
||||
struct { long l; } inner;
|
||||
struct complex_type *complex_ptr;
|
||||
};
|
||||
|
||||
int main() {
|
||||
int i = 0;
|
||||
struct complex_type c = { { 1L }, &c };
|
||||
for (int j = 3; j < 20; j++)
|
||||
{
|
||||
i += j;
|
||||
c.inner.l += (i += j);
|
||||
i = i - 1; // break here
|
||||
}
|
||||
return i;
|
||||
|
|
Loading…
Reference in New Issue