| import lldb | |
| from lldbsuite.test.decorators import * | |
| from lldbsuite.test.lldbtest import * | |
| from lldbsuite.test import lldbutil | |
| @skipIfWasm # no expression evaluation | |
| class TestCase(TestBase): | |
| @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24764") | |
| def test(self): | |
| self.build() | |
| lldbutil.run_to_source_breakpoint( | |
| self, "// break here", lldb.SBFileSpec("main.cpp") | |
| ) | |
| # Test that global variables contain the right scope operators. | |
| global_vars = self.frame().GetVariables(False, False, True, False) | |
| # ManualDWARFIndex using NameToDIE does not sort alphabetically. | |
| global_var_names = sorted([v.GetName() for v in global_vars]) | |
| expected_var_names = ["::a", "A::a", "B::a", "C::a"] | |
| self.assertEqual(global_var_names, expected_var_names) | |
| # Test lookup in scopes. | |
| self.expect_expr("A::a", result_value="1111") | |
| self.expect_expr("B::a", result_value="2222") | |
| self.expect_expr("C::a", result_value="3333") | |
| self.expect_expr("::a", result_value="4444") | |
| # Check that lookup without scope returns the same result. | |
| self.expect_expr("a", result_value="4444") |