[lldb] [testsuite] Fix a regression of TestCppScope.py
authorJan Kratochvil <jan.kratochvil@redhat.com>
Sat, 18 Apr 2020 08:44:33 +0000 (10:44 +0200)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Sat, 18 Apr 2020 08:46:32 +0000 (10:46 +0200)
This is a regression since:
  [lldb][NFC] Modernize lang/cpp/scope test
  acb0b99c8e4f1dc65a7f1e26da9db77239a67da7
  rGacb0b99c8e4f

  File "/home/jkratoch/redhat/llvm-monorepo/lldb/test/API/lang/cpp/scope/TestCppScope.py", line 19, in test
    self.assertEqual(global_var_names, expected_var_names)
  AssertionError: Lists differ: ['C::a', 'A::a', 'B::a', '::a'... != ['A::a', 'B::a', 'C::a', '::a'...
  First differing element 0:
  C::a
  A::a
  - ['C::a', 'A::a', 'B::a', '::a']
  + ['A::a', 'B::a', 'C::a', '::a']

ManualDWARFIndex using NameToDIE does not sort alphabetically:
    // This is only for uniqueness, not lexicographical ordering, so we can
    // just compare pointers.
    return uintptr_t(lhs.GetCString()) < uintptr_t(rhs.GetCString());

lldb/test/API/lang/cpp/scope/TestCppScope.py

index 1320bd2..a61f948 100644 (file)
@@ -14,8 +14,9 @@ class TestCase(TestBase):
 
         # Test that global variables contain the right scope operators.
         global_vars = self.frame().GetVariables(False, False, True, False)
-        global_var_names = [v.GetName() for v in global_vars]
-        expected_var_names = ["A::a", "B::a", "C::a", "::a"]
+        # ManualDWARFIndex using NameToDIE does not sort alphabetically.
+        global_var_names = sorted([v.GetName() for v in global_vars])
+        expected_var_names = ["::a", "A::a", "B::a", "C::a"]
         self.assertEqual(global_var_names, expected_var_names)
 
         # Test lookup in scopes.