From 77a421fb057c16cd82adbe6e07efe0db01bf93a5 Mon Sep 17 00:00:00 2001 From: Stan Lo Date: Tue, 2 Sep 2025 20:20:08 +0100 Subject: ZJIT: Clear jit entry from iseqs after TracePoint activation (#14407) ZJIT: Remove JITed code after TracePoint is enabled --- test/ruby/test_zjit.rb | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'test/ruby/test_zjit.rb') diff --git a/test/ruby/test_zjit.rb b/test/ruby/test_zjit.rb index e79e80fb44..0353a48eec 100644 --- a/test/ruby/test_zjit.rb +++ b/test/ruby/test_zjit.rb @@ -2202,6 +2202,44 @@ class TestZJIT < Test::Unit::TestCase } end + def test_global_tracepoint + assert_compiles 'true', %q{ + def foo = 1 + + foo + foo + + called = false + + tp = TracePoint.new(:return) { |event| + if event.method_id == :foo + called = true + end + } + tp.enable do + foo + end + called + } + end + + def test_local_tracepoint + assert_compiles 'true', %q{ + def foo = 1 + + foo + foo + + called = false + + tp = TracePoint.new(:return) { |_| called = true } + tp.enable(target: method(:foo)) do + foo + end + called + } + end + private # Assert that every method call in `test_script` can be compiled by ZJIT -- cgit v1.2.3