| """Test that SBFrame::FindValue finds things but does not duplicate the entire variables list""" | |
| import lldb | |
| from lldbsuite.test.decorators import * | |
| from lldbsuite.test.lldbtest import * | |
| from lldbsuite.test import lldbutil | |
| class SBFrameFindValueTestCase(TestBase): | |
| NO_DEBUG_INFO_TESTCASE = True | |
| def test_formatters_api(self): | |
| """Test that SBFrame::FindValue finds things but does not duplicate the entire variables list""" | |
| self.build() | |
| self.setTearDownCleanup() | |
| _, _, thread, _ = lldbutil.run_to_source_breakpoint( | |
| self, "Set breakpoint here", lldb.SBFileSpec("main.cpp") | |
| ) | |
| self.thread = thread | |
| self.frame = self.thread.frames[0] | |
| self.assertTrue(self.frame, "Frame 0 is valid.") | |
| self.assertEqual( | |
| self.frame.GetVariables(True, True, False, True).GetSize(), | |
| 2, | |
| "variable count is off", | |
| ) | |
| self.assertFalse( | |
| self.frame.FindValue( | |
| "NoSuchThing", | |
| lldb.eValueTypeVariableArgument, | |
| lldb.eDynamicCanRunTarget, | |
| ).IsValid(), | |
| "found something that should not be here", | |
| ) | |
| self.assertEqual( | |
| self.frame.GetVariables(True, True, False, True).GetSize(), | |
| 2, | |
| "variable count is off after failed FindValue()", | |
| ) | |
| self.assertTrue( | |
| self.frame.FindValue( | |
| "a", lldb.eValueTypeVariableArgument, lldb.eDynamicCanRunTarget | |
| ).IsValid(), | |
| "FindValue() didn't find an argument", | |
| ) | |
| self.assertEqual( | |
| self.frame.GetVariables(True, True, False, True).GetSize(), | |
| 2, | |
| "variable count is off after successful FindValue()", | |
| ) |