================
@@ -208,25 +208,40 @@ def verify_all_breakpoints_hit(self, breakpoint_ids):
return
self.assertTrue(False, f"breakpoints not hit,
stopped_events={stopped_events}")
- def verify_stop_exception_info(self, expected_description):
+ def verify_stop_exception_info(
+ self, expected_description: str, expected_text: Optional[str] = None
+ ):
"""Wait for the process we are debugging to stop, and verify the stop
reason is 'exception' and that the description matches
'expected_description'
"""
stopped_events = self.dap_server.wait_for_stopped()
+ self.assertIsNotNone(stopped_events, "No stopped events detected")
for stopped_event in stopped_events:
- if "body" in stopped_event:
- body = stopped_event["body"]
- if "reason" not in body:
- continue
- if body["reason"] != "exception":
- continue
- if "description" not in body:
- continue
- description = body["description"]
- if expected_description == description:
- return True
- return False
+ if (
+ "body" not in stopped_event
+ or stopped_event["body"]["reason"] != "exception"
+ ):
+ continue
+ self.assertIn(
+ "description",
+ stopped_event["body"],
+ f"stopped event missing description {stopped_event}",
+ )
+ description = stopped_event["body"]["description"]
+ self.assertRegex(
+ description,
+ expected_description,
+ f"for 'stopped' event {stopped_event!r}",
+ )
+ if expected_text:
+ self.assertRegex(
+ stopped_event["body"]["text"],
+ expected_text,
+ f"for stopped event {stopped_event!r}",
+ )
+ return
----------------
DrSergei wrote:
I see some uses of `stopped_event["body"]` here, maybe better to move it to
separate variable
https://github.com/llvm/llvm-project/pull/176273
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits