summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_monitoring.py17
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2023-09-08-18-31-04.gh-issue-109156.KK1EXI.rst1
2 files changed, 18 insertions, 0 deletions
diff --git a/Lib/test/test_monitoring.py b/Lib/test/test_monitoring.py
index 575862b..992d3cc 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 0000000..e681482
--- /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