[LLDB][PPC64] Fix TestGdbRemoteAuxvSupport
authorPavel Labath <labath@google.com>
Mon, 26 Mar 2018 12:00:52 +0000 (12:00 +0000)
committerPavel Labath <labath@google.com>
Mon, 26 Mar 2018 12:00:52 +0000 (12:00 +0000)
Summary: PPC64's auxvec has a special key that must be ignored.

Reviewers: clayborg, labath

Reviewed By: clayborg, labath

Subscribers: alexandreyy, lbianc

Differential Revision: https://reviews.llvm.org/D43771
Patch by Leandro Lupori <leandro.lupori@gmail.com>.

llvm-svn: 328486

lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py

index 4dbf642..b7c53c1 100644 (file)
@@ -1077,6 +1077,18 @@ class GdbRemoteTestCaseBase(TestBase):
 
         auxv_dict = {}
 
+        # PowerPC64le's auxvec has a special key that must be ignored.
+        # This special key may be used multiple times, resulting in
+        # multiple key/value pairs with the same key, which would otherwise
+        # break this test check for repeated keys.
+        #
+        # AT_IGNOREPPC = 22
+        ignored_keys_for_arch = { 'powerpc64le' : [22] }
+        arch = self.getArchitecture()
+        ignore_keys = None
+        if arch in ignored_keys_for_arch:
+            ignore_keys = ignored_keys_for_arch[arch]
+
         while len(auxv_data) > 0:
             # Chop off key.
             raw_key = auxv_data[:word_size]
@@ -1090,6 +1102,9 @@ class GdbRemoteTestCaseBase(TestBase):
             key = unpack_endian_binary_string(endian, raw_key)
             value = unpack_endian_binary_string(endian, raw_value)
 
+            if ignore_keys and key in ignore_keys:
+                continue
+
             # Handle ending entry.
             if key == 0:
                 self.assertEqual(value, 0)