[Lldb-commits] [lldb] 50001bb - [LLDB] Run MSVC STL unordered tests with PDB (#172731)
via lldb-commits
lldb-commits at lists.llvm.org
Fri Dec 19 06:09:24 PST 2025
Author: nerix
Date: 2025-12-19T15:09:19+01:00
New Revision: 50001bb4de1009d2e544fcbeac5c9db9d4312df4
URL: https://github.com/llvm/llvm-project/commit/50001bb4de1009d2e544fcbeac5c9db9d4312df4
DIFF: https://github.com/llvm/llvm-project/commit/50001bb4de1009d2e544fcbeac5c9db9d4312df4.diff
LOG: [LLDB] Run MSVC STL unordered tests with PDB (#172731)
The unordered containers re-use the formatters for `std::list` which
were fixed for PDB with #166953.
This should be the last fix for PDB in MSVC STL tests. Unfortunately,
the type names here are very long, because the types of keys/values are
repeated in the template (for hash/eq/allocator).
Added:
Modified:
lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unordered/TestDataFormatterGenericUnordered.py
Removed:
################################################################################
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unordered/TestDataFormatterGenericUnordered.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unordered/TestDataFormatterGenericUnordered.py
index dd740bd43b063..3676c45b823f7 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unordered/TestDataFormatterGenericUnordered.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unordered/TestDataFormatterGenericUnordered.py
@@ -4,6 +4,8 @@
class GenericUnorderedDataFormatterTestCase(TestBase):
+ TEST_WITH_PDB_DEBUG_INFO = True
+
def setUp(self):
TestBase.setUp(self)
self.namespace = "std"
@@ -46,10 +48,15 @@ def cleanup():
self.runCmd("settings set auto-one-line-summaries false")
children_are_key_value = r"\[0\] = \{\s*first = "
+ unordered_map_type = (
+ "std::unordered_map<int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<int const, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>"
+ if self.getDebugInfo() == "pdb"
+ else "UnorderedMap"
+ )
self.look_for_content_and_continue(
"map",
[
- "UnorderedMap",
+ unordered_map_type,
children_are_key_value,
"size=5 {",
"hello",
@@ -60,10 +67,15 @@ def cleanup():
],
)
+ unordered_mmap_type = (
+ "std::unordered_multimap<int, std::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<int const, std::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>"
+ if self.getDebugInfo() == "pdb"
+ else "UnorderedMultiMap"
+ )
self.look_for_content_and_continue(
"mmap",
[
- "UnorderedMultiMap",
+ unordered_mmap_type,
children_are_key_value,
"size=6 {",
"first = 3",
@@ -73,10 +85,15 @@ def cleanup():
],
)
+ ints_unordered_set = (
+ "std::unordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int>>"
+ if self.getDebugInfo() == "pdb"
+ else "IntsUnorderedSet"
+ )
self.look_for_content_and_continue(
"iset",
[
- "IntsUnorderedSet",
+ ints_unordered_set,
"size=5 {",
r"\[\d\] = 5",
r"\[\d\] = 3",
@@ -84,10 +101,15 @@ def cleanup():
],
)
+ strings_unordered_set = (
+ "std::unordered_set<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char>>>>"
+ if self.getDebugInfo() == "pdb"
+ else "StringsUnorderedSet"
+ )
self.look_for_content_and_continue(
"sset",
[
- "StringsUnorderedSet",
+ strings_unordered_set,
"size=5 {",
r'\[\d\] = "is"',
r'\[\d\] = "world"',
@@ -95,10 +117,15 @@ def cleanup():
],
)
+ ints_unordered_mset = (
+ "std::unordered_multiset<int, std::hash<int>, std::equal_to<int>, std::allocator<int>>"
+ if self.getDebugInfo() == "pdb"
+ else "IntsUnorderedMultiSet"
+ )
self.look_for_content_and_continue(
"imset",
[
- "IntsUnorderedMultiSet",
+ ints_unordered_mset,
"size=6 {",
"(\\[\\d\\] = 3(\\n|.)+){3}",
r"\[\d\] = 2",
@@ -106,10 +133,15 @@ def cleanup():
],
)
+ strings_unordered_mset = (
+ "std::unordered_multiset<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char>>>>"
+ if self.getDebugInfo() == "pdb"
+ else "StringsUnorderedMultiSet"
+ )
self.look_for_content_and_continue(
"smset",
[
- "StringsUnorderedMultiSet",
+ strings_unordered_mset,
"size=5 {",
'(\\[\\d\\] = "is"(\\n|.)+){2}',
'(\\[\\d\\] = "world"(\\n|.)+){2}',
More information about the lldb-commits
mailing list