mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* Fix debug documents to match Thread#to_s change (Feature #16412 ticket) * TracePoint#inspect returns "... file:line" (Feature #16513) * Guard older version of Ruby in Tracepoint inspection tests * Focus on current thread only when running TracePoint inspection test
This commit is contained in:
parent
bbbec4b87c
commit
1819652578
Notes:
git
2020-08-06 11:56:48 +09:00
Merged-By: ko1 <ko1@atdot.net>
6 changed files with 116 additions and 13 deletions
|
@ -2,6 +2,18 @@ require_relative '../../spec_helper'
|
|||
require_relative 'fixtures/classes'
|
||||
|
||||
describe 'TracePoint#inspect' do
|
||||
before do
|
||||
ruby_version_is ""..."2.8" do
|
||||
# Old behavior for Ruby < 2.8
|
||||
@path_prefix = '@'
|
||||
end
|
||||
|
||||
ruby_version_is "2.8" do
|
||||
# New behavior for Ruby >= 2.8
|
||||
@path_prefix = ' '
|
||||
end
|
||||
end
|
||||
|
||||
it 'returns a string containing a human-readable TracePoint status' do
|
||||
TracePoint.new(:line) {}.inspect.should == '#<TracePoint:disabled>'
|
||||
end
|
||||
|
@ -16,7 +28,54 @@ describe 'TracePoint#inspect' do
|
|||
line = __LINE__
|
||||
end
|
||||
|
||||
inspect.should == "#<TracePoint:line@#{__FILE__}:#{line}>"
|
||||
inspect.should == "#<TracePoint:line#{@path_prefix}#{__FILE__}:#{line}>"
|
||||
end
|
||||
|
||||
it 'returns a String showing the event, method, path and line for a :call event' do
|
||||
inspect = nil
|
||||
line = nil
|
||||
TracePoint.new(:call) { |tp|
|
||||
next unless TracePointSpec.target_thread?
|
||||
inspect ||= tp.inspect
|
||||
}.enable do
|
||||
line = __LINE__ + 1
|
||||
def trace_point_spec_test_call; end
|
||||
trace_point_spec_test_call
|
||||
end
|
||||
|
||||
inspect.should == "#<TracePoint:call `trace_point_spec_test_call'#{@path_prefix}#{__FILE__}:#{line}>"
|
||||
end
|
||||
|
||||
it 'returns a String showing the event, method, path and line for a :return event' do
|
||||
inspect = nil
|
||||
line = nil
|
||||
TracePoint.new(:return) { |tp|
|
||||
next unless TracePointSpec.target_thread?
|
||||
inspect ||= tp.inspect
|
||||
}.enable do
|
||||
line = __LINE__ + 4
|
||||
def trace_point_spec_test_return
|
||||
a = 1
|
||||
return a
|
||||
end
|
||||
trace_point_spec_test_return
|
||||
end
|
||||
|
||||
inspect.should == "#<TracePoint:return `trace_point_spec_test_return'#{@path_prefix}#{__FILE__}:#{line}>"
|
||||
end
|
||||
|
||||
it 'returns a String showing the event, method, path and line for a :c_call event' do
|
||||
inspect = nil
|
||||
line = nil
|
||||
TracePoint.new(:c_call) { |tp|
|
||||
next unless TracePointSpec.target_thread?
|
||||
inspect ||= tp.inspect
|
||||
}.enable do
|
||||
line = __LINE__ + 1
|
||||
[0, 1].max
|
||||
end
|
||||
|
||||
inspect.should == "#<TracePoint:c_call `max'#{@path_prefix}#{__FILE__}:#{line}>"
|
||||
end
|
||||
|
||||
it 'returns a String showing the event, path and line for a :class event' do
|
||||
|
@ -31,6 +90,38 @@ describe 'TracePoint#inspect' do
|
|||
end
|
||||
end
|
||||
|
||||
inspect.should == "#<TracePoint:class@#{__FILE__}:#{line}>"
|
||||
inspect.should == "#<TracePoint:class#{@path_prefix}#{__FILE__}:#{line}>"
|
||||
end
|
||||
|
||||
it 'returns a String showing the event and thread for :thread_begin event' do
|
||||
inspect = nil
|
||||
thread = nil
|
||||
thread_inspection = nil
|
||||
TracePoint.new(:thread_begin) { |tp|
|
||||
next unless Thread.current == thread
|
||||
inspect ||= tp.inspect
|
||||
}.enable do
|
||||
thread = Thread.new {}
|
||||
thread_inspection = thread.inspect
|
||||
thread.join
|
||||
end
|
||||
|
||||
inspect.should == "#<TracePoint:thread_begin #{thread_inspection}>"
|
||||
end
|
||||
|
||||
it 'returns a String showing the event and thread for :thread_end event' do
|
||||
inspect = nil
|
||||
thread = nil
|
||||
thread_inspection = nil
|
||||
TracePoint.new(:thread_end) { |tp|
|
||||
next unless Thread.current == thread
|
||||
inspect ||= tp.inspect
|
||||
}.enable do
|
||||
thread = Thread.new {}
|
||||
thread_inspection = thread.inspect
|
||||
thread.join
|
||||
end
|
||||
|
||||
inspect.should == "#<TracePoint:thread_end #{thread_inspection}>"
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue