Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[lldb][test] Add tests for target.max-string-summary-length setting #77920

Merged
merged 3 commits into from Jan 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -295,6 +295,23 @@ def cleanup():
substrs=["e_2", "n_2", "r_2", "i_2", "k_2", "o_2"],
)

self.runCmd("settings set target.max-string-summary-length 5")
some_string = self.frame().FindVariable("some_string")
some_string_summary = some_string.GetSummary()
self.assertEqual(some_string_summary, '"01234"...')

some_carr = self.frame().FindVariable("some_carr")
some_carr_summary = some_carr.GetSummary()
self.assertEqual(some_carr_summary, '"01234"...')

# FIXME: c-strings should honor the target.max-string-summary-length
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JDevlieghere @DavidSpickett @jasonmolenda
Not 100% this is expected or not. Added a fixme for now

# setting. Currently a C-string will be truncated at 64 (an internal
# implementation detail) instead of the value specified in the setting.
some_cstring = self.frame().FindVariable("some_cstring")
some_cstring_summary = some_cstring.GetSummary()
self.assertEqual(len(some_cstring_summary), 66) # 64 + 2 (for quotation marks)
self.assertFalse(some_cstring_summary.endswith("..."))

# override the cap
self.expect(
"frame variable a_long_guy --show-all-children",
Expand Down
@@ -1,6 +1,7 @@
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string>

struct i_am_cool
{
Expand Down Expand Up @@ -164,6 +165,17 @@ int main (int argc, const char * argv[])
Simple a_simple_object(3,0.14,'E');

VeryLong a_long_guy;


std::string some_string = "012345678901234567890123456789"
"012345678901234567890123456789"
"012345678901234567890123456789"
"012345678901234567890123456789";
char const *some_cstring = some_string.c_str();

char const some_carr[] = "012345678901234567890123456789"
"012345678901234567890123456789"
"012345678901234567890123456789"
"012345678901234567890123456789";

return 0; // Set break point at this line.
}