[lldb] Test data formatters for empty strings

llvm-svn: 372837
This commit is contained in:
Raphael Isemann 2019-09-25 10:07:23 +00:00
parent 4ca5180d7a
commit 1b16b94eef
4 changed files with 18 additions and 1 deletions

View File

@ -59,16 +59,23 @@ class LibcxxStringDataFormatterTestCase(TestBase):
self.expect(
"frame variable",
substrs=[
'(%s::wstring) wempty = L""'%ns,
'(%s::wstring) s = L"hello world! מזל טוב!"'%ns,
'(%s::wstring) S = L"!!!!"'%ns,
'(const wchar_t *) mazeltov = 0x',
'L"מזל טוב"',
'(%s::string) empty = ""'%ns,
'(%s::string) q = "hello world"'%ns,
'(%s::string) Q = "quite a long std::strin with lots of info inside it"'%ns,
'(%s::string) IHaveEmbeddedZeros = "a\\0b\\0c\\0d"'%ns,
'(%s::wstring) IHaveEmbeddedZerosToo = L"hello world!\\0てざ ル゜䋨ミ㠧槊 きゅへ狦穤襩 じゃ馩リョ 䤦監"'%ns,
'(%s::u16string) u16_string = u"ß水氶"'%ns,
'(%s::u32string) u32_string = U"🍄🍅🍆🍌"'%ns])
# FIXME: This should have a 'u' prefix.
'(%s::u16string) u16_empty = ""'%ns,
'(%s::u32string) u32_string = U"🍄🍅🍆🍌"'%ns,
# FIXME: This should have a 'U' prefix.
'(%s::u32string) u32_empty = ""'%ns
])
self.runCmd("n")

View File

@ -52,12 +52,15 @@ class StdStringDataFormatterTestCase(TestBase):
# Execute the cleanup function during test case tear down.
self.addTearDownHook(cleanup)
var_wempty = self.frame().FindVariable('wempty')
var_s = self.frame().FindVariable('s')
var_S = self.frame().FindVariable('S')
var_mazeltov = self.frame().FindVariable('mazeltov')
var_empty = self.frame().FindVariable('empty')
var_q = self.frame().FindVariable('q')
var_Q = self.frame().FindVariable('Q')
self.assertTrue(var_wempty.GetSummary() == 'L""', "wempty summary wrong")
self.assertTrue(
var_s.GetSummary() == 'L"hello world! מזל טוב!"',
"s summary wrong")
@ -65,6 +68,7 @@ class StdStringDataFormatterTestCase(TestBase):
self.assertTrue(
var_mazeltov.GetSummary() == 'L"מזל טוב"',
"mazeltov summary wrong")
self.assertTrue(var_empty.GetSummary() == '""', "empty summary wrong")
self.assertTrue(
var_q.GetSummary() == '"hello world"',
"q summary wrong")

View File

@ -2,9 +2,11 @@
int main()
{
std::wstring wempty(L"");
std::wstring s(L"hello world! מזל טוב!");
std::wstring S(L"!!!!");
const wchar_t *mazeltov = L"מזל טוב";
std::string empty("");
std::string q("hello world");
std::string Q("quite a long std::strin with lots of info inside it");
S.assign(L"!!!!!"); // Set break point at this line.