| """ | |
| Test basic std::pair functionality. | |
| """ | |
| from lldbsuite.test.decorators import * | |
| from lldbsuite.test.lldbtest import * | |
| from lldbsuite.test import lldbutil | |
| class TestCase(TestBase): | |
| @add_test_categories(["libc++"]) | |
| @skipIf(compiler=no_match("clang")) | |
| # FIXME: This regressed in 69d5a6662115499198ebfa07a081e98a6ce4b915 | |
| # but needs further investigation for what underlying Clang/LLDB bug can't | |
| # handle that code change. | |
| @skip | |
| def test(self): | |
| self.build() | |
| lldbutil.run_to_source_breakpoint( | |
| self, "// Set break point at this line.", lldb.SBFileSpec("main.cpp") | |
| ) | |
| self.runCmd("settings set target.import-std-module true") | |
| self.expect_expr("pair_int.first", result_type="int", result_value="1234") | |
| self.expect_expr("pair_int.second", result_type="int", result_value="5678") | |
| self.expect_expr( | |
| "pair_int", | |
| result_type="std::pair<int, int>", | |
| result_children=[ | |
| ValueCheck(name="first", value="1234"), | |
| ValueCheck(name="second", value="5678"), | |
| ], | |
| ) | |
| self.expect_expr( | |
| "std::pair<long, long> lp; lp.first = 3333; lp.second = 2344; lp", | |
| result_type="std::pair<long, long>", | |
| result_children=[ | |
| ValueCheck(name="first", value="3333"), | |
| ValueCheck(name="second", value="2344"), | |
| ], | |
| ) |