summaryrefslogtreecommitdiff
path: root/test/ruby
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2020-06-24 22:43:13 -0700
committerTakashi Kokubun <takashikkbn@gmail.com>2020-06-24 22:43:14 -0700
commitab62aa7037f30dbab04a9455a328496287c968da (patch)
tree80d1b4d76551d2e5f117418645a6ea72713381d6 /test/ruby
parent5e860ed4c16e1fe6978754691584041d6a8cb93a (diff)
Run a TracePoint test in an insolated process
to prevent a random failure like http://ci.rvm.jp/results/trunk-random2@phosphorus-docker/3024287
Diffstat (limited to 'test/ruby')
-rw-r--r--test/ruby/test_settracefunc.rb18
1 files changed, 10 insertions, 8 deletions
diff --git a/test/ruby/test_settracefunc.rb b/test/ruby/test_settracefunc.rb
index 80490204ca..1515767a57 100644
--- a/test/ruby/test_settracefunc.rb
+++ b/test/ruby/test_settracefunc.rb
@@ -2295,15 +2295,17 @@ class TestSetTraceFunc < Test::Unit::TestCase
def test_tracepoint_opt_invokebuiltin_delegate_leave
code = 'puts RubyVM::InstructionSequence.of("\x00".method(:unpack)).disasm'
- out, _err, _status = EnvUtil.invoke_ruby(['-e', code], '', true)
+ out = EnvUtil.invoke_ruby(['-e', code], '', true).first
assert_match /^0000 opt_invokebuiltin_delegate_leave /, out
- events = []
- TracePoint.new(:return) do |tp|
- events << [tp.event, tp.method_id]
- end.enable do
- "\x00".unpack("c")
- end
- assert_equal [[:return, :unpack]], events
+ event = eval(EnvUtil.invoke_ruby(['-e', <<~'EOS'], '', true).first)
+ set_trace_func(proc {}); set_trace_func(nil) # Is it okay that this is required?
+ TracePoint.new(:return) do |tp|
+ p [tp.event, tp.method_id]
+ end.enable do
+ "\x00".unpack("c")
+ end
+ EOS
+ assert_equal [:return, :unpack], event
end
end