[lldb] Update regex to be less fragile in TestDataFormatterGenericUnordered
authorDave Lee <davelee.com@gmail.com>
Fri, 11 Nov 2022 19:07:37 +0000 (11:07 -0800)
committerDave Lee <davelee.com@gmail.com>
Fri, 11 Nov 2022 19:42:56 +0000 (11:42 -0800)
Follow up to D129386 where libc++ naming conventions were made consistent.

This changes the pattern to not rely on the internal name (`__cc` or `__cc_`),
and instead uses a pattern to check that the child has the form:

```
[0] = {
  first = ...
```

Thanks to @rupprecht for pointing out this issue: https://reviews.llvm.org/D133259#3773120

Reviewed By: rupprecht

Differential Revision: https://reviews.llvm.org/D133395

lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unordered/TestDataFormatterGenericUnordered.py

index 7730e78..0f6ea01 100644 (file)
@@ -36,6 +36,9 @@ class GenericUnorderedDataFormatterTestCase(TestBase):
             self.runCmd(
                 "settings set target.max-children-count 256",
                 check=False)
+            self.runCmd(
+                'settings set auto-one-line-summaries true',
+                check=False)
 
         # Execute the cleanup function during test case tear down.
         self.addTearDownHook(cleanup)
@@ -47,16 +50,19 @@ class GenericUnorderedDataFormatterTestCase(TestBase):
             "corrupt_map", ['%s::unordered_map' %
                     ns, 'size=0 {}'])
 
-        must_not_contain__cc = r'(?s)^(?!.*\b__cc = )'
+        # Ensure key/value children, not wrapped in a layer.
+        # This regex depends on auto-one-line-summaries.
+        self.runCmd('settings set auto-one-line-summaries false')
+        children_are_key_value = r'\[0\] = \{\s*first = '
 
         self.look_for_content_and_continue(
             "map", ['%s::unordered_map' % ns,
-                    must_not_contain__cc,
+                    children_are_key_value,
                     'size=5 {', 'hello', 'world', 'this', 'is', 'me'])
 
         self.look_for_content_and_continue(
             "mmap", ['%s::unordered_multimap' % ns,
-                     must_not_contain__cc,
+                     children_are_key_value,
                      'size=6 {', 'first = 3', 'second = "this"',
                      'first = 2', 'second = "hello"'])