From: Tian Gao Date: Wed, 13 Sep 2023 08:47:35 +0000 (-0700) Subject: gh-109156: Add tests for de-instrumenting instructions with instrumented lines (GH... X-Git-Tag: v3.13.0a1~449 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d69805b38a1815e7aaadf49bdd019c7cca105ac6;p=thirdparty%2FPython%2Fcpython.git gh-109156: Add tests for de-instrumenting instructions with instrumented lines (GH-109157) --- diff --git a/Lib/test/test_monitoring.py b/Lib/test/test_monitoring.py index 575862b13d7f..992d3cc8b6d7 100644 --- a/Lib/test/test_monitoring.py +++ b/Lib/test/test_monitoring.py @@ -1152,6 +1152,23 @@ class TestLineAndInstructionEvents(CheckEvents): ('instruction', 'func1', 14), ('line', 'get_events', 11)]) + def test_turn_off_only_instruction(self): + """ + LINE events should be recorded after INSTRUCTION event is turned off + """ + events = [] + def line(*args): + events.append("line") + sys.monitoring.set_events(TEST_TOOL, 0) + sys.monitoring.register_callback(TEST_TOOL, E.LINE, line) + sys.monitoring.register_callback(TEST_TOOL, E.INSTRUCTION, lambda *args: None) + sys.monitoring.set_events(TEST_TOOL, E.LINE | E.INSTRUCTION) + sys.monitoring.set_events(TEST_TOOL, E.LINE) + events = [] + a = 0 + sys.monitoring.set_events(TEST_TOOL, 0) + self.assertGreater(len(events), 0) + class TestInstallIncrementallly(MonitoringTestBase, unittest.TestCase): def check_events(self, func, must_include, tool=TEST_TOOL, recorders=(ExceptionRecorder,)): diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-09-08-18-31-04.gh-issue-109156.KK1EXI.rst b/Misc/NEWS.d/next/Core and Builtins/2023-09-08-18-31-04.gh-issue-109156.KK1EXI.rst new file mode 100644 index 000000000000..e681482c3a87 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2023-09-08-18-31-04.gh-issue-109156.KK1EXI.rst @@ -0,0 +1 @@ +Add tests for de-instrumenting instructions while keeping the instrumentation for lines