[Lldb-commits] [lldb] 04bbbba - Skip TestAddressMasks API tests on 32-bit arm

Jason Molenda via lldb-commits lldb-commits at lists.llvm.org
Wed Mar 6 10:58:11 PST 2024


Author: Jason Molenda
Date: 2024-03-06T10:58:03-08:00
New Revision: 04bbbba271ebe4c2421f34a4fbf34c328df9f111

URL: https://github.com/llvm/llvm-project/commit/04bbbba271ebe4c2421f34a4fbf34c328df9f111
DIFF: https://github.com/llvm/llvm-project/commit/04bbbba271ebe4c2421f34a4fbf34c328df9f111.diff

LOG: Skip TestAddressMasks API tests on 32-bit arm

TestAddressMasks failed on the lldb-arm-buntu bot with the
Code address mask test,

        mask = process.GetAddressMask(lldb.eAddressMaskTypeAny)
        process.SetAddressMask(lldb.eAddressMaskTypeCode, mask | 0x3)
        self.assertEqual(
            0x000002950001F694,
            process.FixAddress(0x00265E950001F697, lldb.eAddressMaskTypeCode),
        )

The API returned 0x000002950001f694 instead of the expected
0x00265e950001f696.  The low bits differ because ABISysV_arm hardcodes
the Code address mask to clear the 0th bit, it doesn't use the
Process code mask.  I didn't debug why some of the high bytes were
dropped.  The address mask APIs are only important on 64-bit targets,
where many of the bits are not used for addressing and are used for
metadata instead, so I'm going to skip these tests on 32-bit arm
instead of debugging.

Added: 
    

Modified: 
    lldb/test/API/python_api/process/address-masks/TestAddressMasks.py

Removed: 
    


################################################################################
diff  --git a/lldb/test/API/python_api/process/address-masks/TestAddressMasks.py b/lldb/test/API/python_api/process/address-masks/TestAddressMasks.py
index e0a570c15961c2..152776efc726f2 100644
--- a/lldb/test/API/python_api/process/address-masks/TestAddressMasks.py
+++ b/lldb/test/API/python_api/process/address-masks/TestAddressMasks.py
@@ -19,6 +19,7 @@ def reset_all_masks(self, process):
         self.runCmd("settings set target.process.virtual-addressable-bits 0")
         self.runCmd("settings set target.process.highmem-virtual-addressable-bits 0")
 
+    @skipIf(archs=["arm"])  # 32-bit arm ABI hardcodes Code mask, is 32-bit
     def test_address_masks(self):
         self.build()
         (target, process, t, bp) = lldbutil.run_to_source_breakpoint(
@@ -79,6 +80,7 @@ def test_address_masks(self):
     # AArch64 can have 
diff erent address masks for high and low memory, when 
diff erent
     # page tables are set up.
     @skipIf(archs=no_match(["arm64", "arm64e", "aarch64"]))
+    @skipIf(archs=["arm"])  # 32-bit arm ABI hardcodes Code mask, is 32-bit
     def test_address_masks_target_supports_highmem_tests(self):
         self.build()
         (target, process, t, bp) = lldbutil.run_to_source_breakpoint(
@@ -111,6 +113,7 @@ def test_address_masks_target_supports_highmem_tests(self):
     # On most targets where we have a single mask for all address range, confirm
     # that the high memory masks are ignored.
     @skipIf(archs=["arm64", "arm64e", "aarch64"])
+    @skipIf(archs=["arm"])  # 32-bit arm ABI hardcodes Code mask, is 32-bit
     def test_address_masks_target_no_highmem(self):
         self.build()
         (target, process, t, bp) = lldbutil.run_to_source_breakpoint(


        


More information about the lldb-commits mailing list