================
@@ -78,6 +78,69 @@ def test_logMessage_basic(self):
)
session.continue_to_exit()
+ def check_logpoint_to_breakpoint_conversion(self, log_message):
+ session = self.build_and_create_session()
+ initial_stop = self.stop_at_before_loop_line(session)
+ loop_line = line_number("main.cpp", "// break loop")
+ after_loop_line = line_number("main.cpp", "// after loop")
+ log_prefix = "This is log message for "
+
+ [logpoint_id, post_loop_breakpoint_id] =
session.resolve_source_breakpoints(
+ self.main_path,
+ [
+ SourceBreakpoint(loop_line, logMessage=log_prefix + "{i}"),
+ SourceBreakpoint(after_loop_line),
+ ],
+ )
+
+ # Change logpoint to usual breakpoint and check that id preserved.
+ [breakpoint_id, _] = session.resolve_source_breakpoints(
+ self.main_path,
+ [
+ SourceBreakpoint(loop_line, logMessage=log_message),
+ SourceBreakpoint(after_loop_line),
+ ],
+ )
+ self.assertEqual(breakpoint_id, logpoint_id)
+
+ # Check that stop works as expected for updated logpoint.
+ loop_stop = session.continue_to_breakpoint(breakpoint_id)
+ frame = session.top_frame_from(loop_stop)
+ self.assertEqual(frame.locals["i"].value_as_int, 0)
+ captured = session.collect_console(after=initial_stop, until=loop_stop)
+ self.assertNotIn(log_prefix, captured.seen_texts)
+
+ # Change breakpoint to logpoint back.
+ [restored_id, _] = session.resolve_source_breakpoints(
+ self.main_path,
+ [
+ SourceBreakpoint(loop_line, logMessage=log_prefix + "{i}"),
+ SourceBreakpoint(after_loop_line),
+ ],
+ )
+ self.assertEqual(restored_id, logpoint_id)
+
+ # Check that logpoint prints messages.
+ post_loop_stop =
session.continue_to_breakpoint(post_loop_breakpoint_id)
+ captured = session.collect_console(after=loop_stop,
until=post_loop_stop)
+ messages = [
+ line
+ for line in captured.seen_texts.splitlines()
+ if line.startswith(log_prefix)
+ ]
+ self.assertEqual(messages, [log_prefix + str(i) for i in range(1, 10)])
+ session.continue_to_exit()
+
+ @skipIfWindows
+ def test_logmessage_none(self):
----------------
DrSergei wrote:
I don't understand how to test it, because the problem is in callback (which
returns no stop as expected for logpoint, but not correct for usual
breakpoint). It is runtime behavior, so integration tests looks as a good
choice here
https://github.com/llvm/llvm-project/pull/222906
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits