[Lldb-commits] [lldb] [lldb] Add additional assertions to TestVTableValue.test_overwrite_vtable (PR #118719)

Alex Langford via lldb-commits lldb-commits at lists.llvm.org
Wed Dec 4 16:10:06 PST 2024


https://github.com/bulbazord created https://github.com/llvm/llvm-project/pull/118719

If this test fails, you're likely going to see something like "Assertion Error: A != B" which doesn't really give much explanation for why this failed.

Instead of ignoring the error, we should assert that it succeeded. This will lead to a better error message, for example:
`AssertionError: 'memory write failed for 0x102d7c018' is not success`

>From 7a4761dd3e4eb51c2c419852a48f99d1b1ad9127 Mon Sep 17 00:00:00 2001
From: Alex Langford <alangford at apple.com>
Date: Wed, 4 Dec 2024 16:04:36 -0800
Subject: [PATCH] [lldb] Add additional assertions to
 TestVTableValue.test_overwrite_vtable

If this test fails, you're likely going to see something like "Assertion
Error: A != B" which doesn't really give much explanation for why this
failed.

Instead of ignoring the error, we should assert that it succeeded. This
will lead to a better error message, for example:
`AssertionError: 'memory write failed for 0x102d7c018' is not success`
---
 lldb/test/API/functionalities/vtable/TestVTableValue.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lldb/test/API/functionalities/vtable/TestVTableValue.py b/lldb/test/API/functionalities/vtable/TestVTableValue.py
index bfc910614afa9e..f0076ea28f7599 100644
--- a/lldb/test/API/functionalities/vtable/TestVTableValue.py
+++ b/lldb/test/API/functionalities/vtable/TestVTableValue.py
@@ -2,7 +2,6 @@
 Make sure the getting a variable path works and doesn't crash.
 """
 
-
 import lldb
 import lldbsuite.test.lldbutil as lldbutil
 from lldbsuite.test.decorators import *
@@ -142,7 +141,12 @@ def test_overwrite_vtable(self):
             "\x01\x01\x01\x01\x01\x01\x01\x01" if is_64bit else "\x01\x01\x01\x01"
         )
         error = lldb.SBError()
-        process.WriteMemory(vtable_addr, data, error)
+        bytes_written = process.WriteMemory(vtable_addr, data, error)
+
+        self.assertSuccess(error)
+        self.assertGreater(
+            bytes_written, 0, "Failed to overwrite first entry in vtable"
+        )
 
         scribbled_child = vtable.GetChildAtIndex(0)
         self.assertEqual(



More information about the lldb-commits mailing list