diff options
author | Jeffrey Tan <jeffreytan@fb.com> | 2023-05-10 14:44:16 -0700 |
---|---|---|
committer | Jeffrey Tan <jeffreytan@fb.com> | 2023-05-12 10:09:58 -0700 |
commit | 25159ee3af5cd1c05c010ea195b4b359df3fe820 (patch) | |
tree | c334552c67b796bca6913da3d283789d44e5e640 /lldb/test | |
parent | b58dd9230e655feb0d904b8095f113a4f0246cbf (diff) | |
download | llvm-25159ee3af5cd1c05c010ea195b4b359df3fe820.tar.gz |
Fix libstdc++ data formatter for reference/pointer to std::string
This patch fixes libstdc++ data formatter for reference/pointer to std::string.
The failure testcases are added which succeed with the patch.
Differential Revision: https://reviews.llvm.org/D150313
Diffstat (limited to 'lldb/test')
2 files changed, 19 insertions, 0 deletions
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py index 6ce7235ff015..34d39ee3e6b0 100644 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py @@ -57,6 +57,11 @@ class StdStringDataFormatterTestCase(TestBase): var_empty = self.frame().FindVariable('empty') var_q = self.frame().FindVariable('q') var_Q = self.frame().FindVariable('Q') + var_rq = self.frame().FindVariable('rq') + var_rQ = self.frame().FindVariable('rQ') + var_pq = self.frame().FindVariable('pq') + var_pQ = self.frame().FindVariable('pQ') + var_uchar = self.frame().FindVariable('uchar') self.assertEqual(var_wempty.GetSummary(), 'L""', "wempty summary wrong") @@ -75,6 +80,18 @@ class StdStringDataFormatterTestCase(TestBase): var_Q.GetSummary(), '"quite a long std::strin with lots of info inside it"', "Q summary wrong") self.assertEqual(var_uchar.GetSummary(), '"aaaaa"', "u summary wrong") + self.assertEqual( + var_rq.GetSummary(), '"hello world"', + "rq summary wrong") + self.assertEqual( + var_rQ.GetSummary(), '"quite a long std::strin with lots of info inside it"', + "rQ summary wrong") + self.assertEqual( + var_pq.GetSummary(), '"hello world"', + "pq summary wrong") + self.assertEqual( + var_pQ.GetSummary(), '"quite a long std::strin with lots of info inside it"', + "pQ summary wrong") self.runCmd("next") diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/main.cpp b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/main.cpp index 73519197d8c1..930f8c2afef2 100644 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/main.cpp +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/main.cpp @@ -10,6 +10,8 @@ int main() std::string q("hello world"); std::string Q("quite a long std::strin with lots of info inside it"); std::basic_string<unsigned char> uchar(5, 'a'); + auto &rq = q, &rQ = Q; + std::string *pq = &q, *pQ = &Q; S.assign(L"!!!!!"); // Set break point at this line. return 0; } |