aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Buch <michaelbuch12@gmail.com>2024-01-12 22:26:31 +0000
committerGitHub <noreply@github.com>2024-01-12 22:26:31 +0000
commitf4461cf4f30417be118487142bca6635e07ed1e6 (patch)
tree9ceefbdf53f73c47acb9b20e28f1b2c149bba459
parent974ded972564c87683fdfc057e07ba6d83710f51 (diff)
downloadllvm-f4461cf4f30417be118487142bca6635e07ed1e6.zip
llvm-f4461cf4f30417be118487142bca6635e07ed1e6.tar.gz
llvm-f4461cf4f30417be118487142bca6635e07ed1e6.tar.bz2
[lldb][test] Add tests for target.max-string-summary-length setting (#77920)
This adds API tests for the `target.max-string-summary-length`, which was recently fixed in https://github.com/llvm/llvm-project/pull/72233
-rw-r--r--lldb/test/API/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py17
-rw-r--r--lldb/test/API/functionalities/data-formatter/data-formatter-advanced/main.cpp16
2 files changed, 31 insertions, 2 deletions
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py b/lldb/test/API/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py
index e7c517a..c275904 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py
@@ -295,6 +295,23 @@ class AdvDataFormatterTestCase(TestBase):
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
+ # 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",
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-advanced/main.cpp b/lldb/test/API/functionalities/data-formatter/data-formatter-advanced/main.cpp
index e7a52fe..9d12ca3 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-advanced/main.cpp
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-advanced/main.cpp
@@ -1,6 +1,7 @@
+#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
-#include <stdint.h>
+#include <string>
struct i_am_cool
{
@@ -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.
}