diff options
Diffstat (limited to 'spec/ruby/core/tracepoint')
| -rw-r--r-- | spec/ruby/core/tracepoint/allow_reentry_spec.rb | 44 | ||||
| -rw-r--r-- | spec/ruby/core/tracepoint/binding_spec.rb | 2 | ||||
| -rw-r--r-- | spec/ruby/core/tracepoint/defined_class_spec.rb | 10 | ||||
| -rw-r--r-- | spec/ruby/core/tracepoint/enable_spec.rb | 83 | ||||
| -rw-r--r-- | spec/ruby/core/tracepoint/event_spec.rb | 6 | ||||
| -rw-r--r-- | spec/ruby/core/tracepoint/inspect_spec.rb | 13 | ||||
| -rw-r--r-- | spec/ruby/core/tracepoint/lineno_spec.rb | 2 | ||||
| -rw-r--r-- | spec/ruby/core/tracepoint/method_id_spec.rb | 2 | ||||
| -rw-r--r-- | spec/ruby/core/tracepoint/new_spec.rb | 22 | ||||
| -rw-r--r-- | spec/ruby/core/tracepoint/path_spec.rb | 31 | ||||
| -rw-r--r-- | spec/ruby/core/tracepoint/raised_exception_spec.rb | 18 | ||||
| -rw-r--r-- | spec/ruby/core/tracepoint/self_spec.rb | 4 |
12 files changed, 112 insertions, 125 deletions
diff --git a/spec/ruby/core/tracepoint/allow_reentry_spec.rb b/spec/ruby/core/tracepoint/allow_reentry_spec.rb index 6bff1bed76..475cca29a9 100644 --- a/spec/ruby/core/tracepoint/allow_reentry_spec.rb +++ b/spec/ruby/core/tracepoint/allow_reentry_spec.rb @@ -1,32 +1,30 @@ require_relative '../../spec_helper' require_relative 'fixtures/classes' -ruby_version_is "3.1" do - describe 'TracePoint.allow_reentry' do - it 'allows the reentrance in a given block' do - event_lines = [] - l1 = l2 = l3 = l4 = nil - TracePoint.new(:line) do |tp| - next unless TracePointSpec.target_thread? +describe 'TracePoint.allow_reentry' do + it 'allows the reentrance in a given block' do + event_lines = [] + l1 = l2 = l3 = l4 = nil + TracePoint.new(:line) do |tp| + next unless TracePointSpec.target_thread? - event_lines << tp.lineno - next if (__LINE__ + 2 .. __LINE__ + 4).cover?(tp.lineno) - TracePoint.allow_reentry do - a = 1; l3 = __LINE__ - b = 2; l4 = __LINE__ - end - end.enable do - c = 3; l1 = __LINE__ - d = 4; l2 = __LINE__ + event_lines << tp.lineno + next if (__LINE__ + 2 .. __LINE__ + 4).cover?(tp.lineno) + TracePoint.allow_reentry do + a = 1; l3 = __LINE__ + b = 2; l4 = __LINE__ end - - event_lines.should == [l1, l3, l4, l2, l3, l4] + end.enable do + c = 3; l1 = __LINE__ + d = 4; l2 = __LINE__ end - it 'raises RuntimeError when not called inside a TracePoint' do - -> { - TracePoint.allow_reentry{} - }.should raise_error(RuntimeError) - end + event_lines.should == [l1, l3, l4, l2, l3, l4] + end + + it 'raises RuntimeError when not called inside a TracePoint' do + -> { + TracePoint.allow_reentry{} + }.should.raise(RuntimeError) end end diff --git a/spec/ruby/core/tracepoint/binding_spec.rb b/spec/ruby/core/tracepoint/binding_spec.rb index 6a7ef5f85a..6de6e47d7d 100644 --- a/spec/ruby/core/tracepoint/binding_spec.rb +++ b/spec/ruby/core/tracepoint/binding_spec.rb @@ -15,7 +15,7 @@ describe 'TracePoint#binding' do test } bindings.size.should == 1 - bindings[0].should be_kind_of(Binding) + bindings[0].should.is_a?(Binding) bindings[0].local_variables.should == [:secret] end end diff --git a/spec/ruby/core/tracepoint/defined_class_spec.rb b/spec/ruby/core/tracepoint/defined_class_spec.rb index 4593db6d1f..53c86a8210 100644 --- a/spec/ruby/core/tracepoint/defined_class_spec.rb +++ b/spec/ruby/core/tracepoint/defined_class_spec.rb @@ -9,19 +9,19 @@ describe 'TracePoint#defined_class' do last_class_name = tp.defined_class end.enable do TracePointSpec::B.new.foo - last_class_name.should equal(TracePointSpec::B) + last_class_name.should.equal?(TracePointSpec::B) TracePointSpec::B.new.bar - last_class_name.should equal(TracePointSpec::A) + last_class_name.should.equal?(TracePointSpec::A) c = TracePointSpec::C.new - last_class_name.should equal(TracePointSpec::C) + last_class_name.should.equal?(TracePointSpec::C) c.foo - last_class_name.should equal(TracePointSpec::B) + last_class_name.should.equal?(TracePointSpec::B) c.bar - last_class_name.should equal(TracePointSpec::A) + last_class_name.should.equal?(TracePointSpec::A) end end end diff --git a/spec/ruby/core/tracepoint/enable_spec.rb b/spec/ruby/core/tracepoint/enable_spec.rb index 6cc8bb3897..bf61c35154 100644 --- a/spec/ruby/core/tracepoint/enable_spec.rb +++ b/spec/ruby/core/tracepoint/enable_spec.rb @@ -54,53 +54,28 @@ describe 'TracePoint#enable' do TracePoint.new(:line) do |tp| next unless TracePointSpec.target_thread? event_name = tp.event - end.enable { event_name.should equal(:line) } + end.enable { event_name.should.equal?(:line) } end - ruby_version_is '3.2' do - it 'enables the trace object only for the current thread' do - threads = [] - trace = TracePoint.new(:line) do |tp| - # Runs on purpose on any Thread - threads << Thread.current - end - - thread = nil - trace.enable do - line_event = true - thread = Thread.new do - event_in_other_thread = true - end - thread.join - end - - threads = threads.uniq - threads.should.include?(Thread.current) - threads.should_not.include?(thread) + it 'enables the trace object only for the current thread' do + threads = [] + trace = TracePoint.new(:line) do |tp| + # Runs on purpose on any Thread + threads << Thread.current end - end - ruby_version_is ''...'3.2' do - it 'enables the trace object for any thread' do - threads = [] - trace = TracePoint.new(:line) do |tp| - # Runs on purpose on any Thread - threads << Thread.current - end - - thread = nil - trace.enable do - line_event = true - thread = Thread.new do - event_in_other_thread = true - end - thread.join + thread = nil + trace.enable do + line_event = true + thread = Thread.new do + event_in_other_thread = true end - - threads = threads.uniq - threads.should.include?(Thread.current) - threads.should.include?(thread) + thread.join end + + threads = threads.uniq + threads.should.include?(Thread.current) + threads.should_not.include?(thread) end it 'can accept arguments within a block but it should not yield arguments' do @@ -110,7 +85,7 @@ describe 'TracePoint#enable' do event_name = tp.event end trace.enable do |*args| - event_name.should equal(:line) + event_name.should.equal?(:line) args.should == [] end trace.should_not.enabled? @@ -326,7 +301,7 @@ describe 'TracePoint#enable' do end ScratchPad.recorded.should == [lineno] - lineno.should be_kind_of(Integer) + lineno.should.is_a?(Integer) end end @@ -342,7 +317,7 @@ describe 'TracePoint#enable' do trace.enable(target: block) do block.call # triggers :b_call and :b_return events end - }.should raise_error(ArgumentError, /can not enable any hooks/) + }.should.raise(ArgumentError, /can not enable any hooks/) end it "raises ArgumentError if passed not Method/UnboundMethod/Proc" do @@ -351,7 +326,7 @@ describe 'TracePoint#enable' do -> { trace.enable(target: Object.new) do end - }.should raise_error(ArgumentError, /specified target is not supported/) + }.should.raise(ArgumentError, /specified target is not supported/) end context "nested enabling and disabling" do @@ -363,7 +338,7 @@ describe 'TracePoint#enable' do trace.enable(target: -> {}) do end end - }.should raise_error(ArgumentError, /can't nest-enable a targett?ing TracePoint/) + }.should.raise(ArgumentError, /can't nest-enable a targett?ing TracePoint/) end it "raises ArgumentError if trace point already enabled without target is re-enabled with target" do @@ -374,7 +349,7 @@ describe 'TracePoint#enable' do trace.enable(target: -> {}) do end end - }.should raise_error(ArgumentError, /can't nest-enable a targett?ing TracePoint/) + }.should.raise(ArgumentError, /can't nest-enable a targett?ing TracePoint/) end it "raises ArgumentError if trace point already enabled with target is re-enabled without target" do @@ -385,7 +360,7 @@ describe 'TracePoint#enable' do trace.enable do end end - }.should raise_error(ArgumentError, /can't nest-enable a targett?ing TracePoint/) + }.should.raise(ArgumentError, /can't nest-enable a targett?ing TracePoint/) end it "raises ArgumentError if trace point already enabled with target is disabled with block" do @@ -396,7 +371,7 @@ describe 'TracePoint#enable' do trace.disable do end end - }.should raise_error(ArgumentError, /can't disable a targett?ing TracePoint in a block/) + }.should.raise(ArgumentError, /can't disable a targett?ing TracePoint in a block/) end it "traces events when trace point with target is enabled in another trace point enabled without target" do @@ -499,7 +474,7 @@ describe 'TracePoint#enable' do -> { trace.enable(target_line: 67) do end - }.should raise_error(ArgumentError, /only target_line is specified/) + }.should.raise(ArgumentError, /only target_line is specified/) end it "raises ArgumentError if :line event isn't registered" do @@ -516,7 +491,7 @@ describe 'TracePoint#enable' do -> { trace.enable(target_line: target_line, target: target) do end - }.should raise_error(ArgumentError, /target_line is specified, but line event is not specified/) + }.should.raise(ArgumentError, /target_line is specified, but line event is not specified/) end it "raises ArgumentError if :target_line value is out of target code lines range" do @@ -525,7 +500,7 @@ describe 'TracePoint#enable' do -> { trace.enable(target_line: 1, target: -> { }) do end - }.should raise_error(ArgumentError, /can not enable any hooks/) + }.should.raise(ArgumentError, /can not enable any hooks/) end it "raises TypeError if :target_line value couldn't be coerced to Integer" do @@ -534,7 +509,7 @@ describe 'TracePoint#enable' do -> { trace.enable(target_line: Object.new, target: -> { }) do end - }.should raise_error(TypeError, /no implicit conversion of \w+? into Integer/) + }.should.raise(TypeError, /no implicit conversion of \w+? into Integer/) end it "raises ArgumentError if :target_line value is negative" do @@ -543,7 +518,7 @@ describe 'TracePoint#enable' do -> { trace.enable(target_line: -2, target: -> { }) do end - }.should raise_error(ArgumentError, /can not enable any hooks/) + }.should.raise(ArgumentError, /can not enable any hooks/) end it "accepts value that could be coerced to Integer" do diff --git a/spec/ruby/core/tracepoint/event_spec.rb b/spec/ruby/core/tracepoint/event_spec.rb index 9dea24d125..58017dc98d 100644 --- a/spec/ruby/core/tracepoint/event_spec.rb +++ b/spec/ruby/core/tracepoint/event_spec.rb @@ -9,13 +9,13 @@ describe 'TracePoint#event' do event_name = tp.event end.enable do TracePointSpec.test - event_name.should equal(:call) + event_name.should.equal?(:call) TracePointSpec::B.new.foo - event_name.should equal(:call) + event_name.should.equal?(:call) class TracePointSpec::B; end - event_name.should equal(:end) + event_name.should.equal?(:end) end end diff --git a/spec/ruby/core/tracepoint/inspect_spec.rb b/spec/ruby/core/tracepoint/inspect_spec.rb index cc6bf0f842..6cc2ebe243 100644 --- a/spec/ruby/core/tracepoint/inspect_spec.rb +++ b/spec/ruby/core/tracepoint/inspect_spec.rb @@ -24,6 +24,8 @@ describe 'TracePoint#inspect' do line = nil TracePoint.new(:line) { |tp| next unless TracePointSpec.target_thread? + next unless tp.path == __FILE__ + inspect ||= tp.inspect }.enable do line = __LINE__ @@ -37,6 +39,8 @@ describe 'TracePoint#inspect' do line = nil TracePoint.new(:call) { |tp| next unless TracePointSpec.target_thread? + next unless tp.path == __FILE__ + inspect ||= tp.inspect }.enable do line = __LINE__ + 1 @@ -52,6 +56,8 @@ describe 'TracePoint#inspect' do line = nil TracePoint.new(:return) { |tp| next unless TracePointSpec.target_thread? + next unless tp.path == __FILE__ + inspect ||= tp.inspect }.enable do line = __LINE__ + 4 @@ -61,6 +67,7 @@ describe 'TracePoint#inspect' do end trace_point_spec_test_return end + ruby_version_is("3.4") { line -= 1 } inspect.should =~ /\A#<TracePoint:return [`']trace_point_spec_test_return'#{@path_prefix}#{__FILE__}:#{line}>\z/ end @@ -69,6 +76,8 @@ describe 'TracePoint#inspect' do inspect = nil tracepoint = TracePoint.new(:c_call) { |tp| next unless TracePointSpec.target_thread? + next unless tp.path == __FILE__ + inspect ||= tp.inspect } line = __LINE__ + 2 @@ -84,6 +93,8 @@ describe 'TracePoint#inspect' do line = nil TracePoint.new(:class) { |tp| next unless TracePointSpec.target_thread? + next unless tp.path == __FILE__ + inspect ||= tp.inspect }.enable do line = __LINE__ + 1 @@ -100,6 +111,7 @@ describe 'TracePoint#inspect' do thread_inspection = nil TracePoint.new(:thread_begin) { |tp| next unless Thread.current == thread + inspect ||= tp.inspect }.enable(target_thread: nil) do thread = Thread.new {} @@ -116,6 +128,7 @@ describe 'TracePoint#inspect' do thread_inspection = nil TracePoint.new(:thread_end) { |tp| next unless Thread.current == thread + inspect ||= tp.inspect }.enable(target_thread: nil) do thread = Thread.new {} diff --git a/spec/ruby/core/tracepoint/lineno_spec.rb b/spec/ruby/core/tracepoint/lineno_spec.rb index 77b3ac8b54..7c46d5222b 100644 --- a/spec/ruby/core/tracepoint/lineno_spec.rb +++ b/spec/ruby/core/tracepoint/lineno_spec.rb @@ -15,6 +15,6 @@ describe 'TracePoint#lineno' do it 'raises RuntimeError if accessed from outside' do tp = TracePoint.new(:line) {} - -> { tp.lineno }.should raise_error(RuntimeError, 'access from outside') + -> { tp.lineno }.should.raise(RuntimeError, 'access from outside') end end diff --git a/spec/ruby/core/tracepoint/method_id_spec.rb b/spec/ruby/core/tracepoint/method_id_spec.rb index 43e23248b7..67740f2d7d 100644 --- a/spec/ruby/core/tracepoint/method_id_spec.rb +++ b/spec/ruby/core/tracepoint/method_id_spec.rb @@ -9,7 +9,7 @@ describe 'TracePoint#method_id' do method_name = tp.method_id }.enable do TracePointSpec.test - method_name.should equal(:test) + method_name.should.equal?(:test) end end end diff --git a/spec/ruby/core/tracepoint/new_spec.rb b/spec/ruby/core/tracepoint/new_spec.rb index e53c2b04a2..763b35292b 100644 --- a/spec/ruby/core/tracepoint/new_spec.rb +++ b/spec/ruby/core/tracepoint/new_spec.rb @@ -3,7 +3,7 @@ require_relative 'fixtures/classes' describe 'TracePoint.new' do it 'returns a new TracePoint object, not enabled by default' do - TracePoint.new(:line) {}.enabled?.should be_false + TracePoint.new(:line) {}.enabled?.should == false end it 'includes :line event when event is not specified' do @@ -12,15 +12,15 @@ describe 'TracePoint.new' do next unless TracePointSpec.target_thread? event_name = tp.event }.enable do - event_name.should equal(:line) + event_name.should.equal?(:line) event_name = nil TracePointSpec.test - event_name.should equal(:line) + event_name.should.equal?(:line) event_name = nil TracePointSpec::B.new.foo - event_name.should equal(:line) + event_name.should.equal?(:line) end end @@ -44,29 +44,29 @@ describe 'TracePoint.new' do event_name = tp.event end.enable do TracePointSpec.test - event_name.should equal(:call) + event_name.should.equal?(:call) TracePointSpec::B.new.foo - event_name.should equal(:call) + event_name.should.equal?(:call) class TracePointSpec::B; end - event_name.should equal(:end) + event_name.should.equal?(:end) end end it 'raises a TypeError when the given object is not a string/symbol' do o = mock('123') - -> { TracePoint.new(o) {} }.should raise_error(TypeError) + -> { TracePoint.new(o) {} }.should.raise(TypeError) o.should_receive(:to_sym).and_return(123) - -> { TracePoint.new(o) {} }.should raise_error(TypeError) + -> { TracePoint.new(o) {} }.should.raise(TypeError) end it 'expects to be called with a block' do - -> { TracePoint.new(:line) }.should raise_error(ArgumentError, "must be called with a block") + -> { TracePoint.new(:line) }.should.raise(ArgumentError, "must be called with a block") end it "raises a Argument error when the given argument doesn't match an event name" do - -> { TracePoint.new(:test) }.should raise_error(ArgumentError, "unknown event: test") + -> { TracePoint.new(:test) }.should.raise(ArgumentError, "unknown event: test") end end diff --git a/spec/ruby/core/tracepoint/path_spec.rb b/spec/ruby/core/tracepoint/path_spec.rb index dc2ca840b8..aa6868ead2 100644 --- a/spec/ruby/core/tracepoint/path_spec.rb +++ b/spec/ruby/core/tracepoint/path_spec.rb @@ -13,29 +13,14 @@ describe 'TracePoint#path' do path.should == "#{__FILE__}" end - ruby_version_is ""..."3.3" do - it 'equals (eval) inside an eval for :end event' do - path = nil - TracePoint.new(:end) { |tp| - next unless TracePointSpec.target_thread? - path = tp.path - }.enable do - eval("module TracePointSpec; end") - end - path.should == '(eval)' - end - end - - ruby_version_is "3.3" do - it 'equals "(eval at __FILE__:__LINE__)" inside an eval for :end event' do - path = nil - TracePoint.new(:end) { |tp| - next unless TracePointSpec.target_thread? - path = tp.path - }.enable do - eval("module TracePointSpec; end") - end - path.should == "(eval at #{__FILE__}:#{__LINE__ - 2})" + it 'equals "(eval at __FILE__:__LINE__)" inside an eval for :end event' do + path = nil + TracePoint.new(:end) { |tp| + next unless TracePointSpec.target_thread? + path = tp.path + }.enable do + eval("module TracePointSpec; end") end + path.should == "(eval at #{__FILE__}:#{__LINE__ - 2})" end end diff --git a/spec/ruby/core/tracepoint/raised_exception_spec.rb b/spec/ruby/core/tracepoint/raised_exception_spec.rb index ca2f50abb3..b1199902f2 100644 --- a/spec/ruby/core/tracepoint/raised_exception_spec.rb +++ b/spec/ruby/core/tracepoint/raised_exception_spec.rb @@ -14,7 +14,23 @@ describe 'TracePoint#raised_exception' do rescue => e error_result = e end - raised_exception.should equal(error_result) + raised_exception.should.equal?(error_result) + end + end + + it 'returns value from exception rescued on the :rescue event' do + raised_exception, error_result = nil + trace = TracePoint.new(:rescue) { |tp| + next unless TracePointSpec.target_thread? + raised_exception = tp.raised_exception + } + trace.enable do + begin + raise StandardError + rescue => e + error_result = e + end + raised_exception.should.equal?(error_result) end end end diff --git a/spec/ruby/core/tracepoint/self_spec.rb b/spec/ruby/core/tracepoint/self_spec.rb index 2098860e59..bf9a2b6a45 100644 --- a/spec/ruby/core/tracepoint/self_spec.rb +++ b/spec/ruby/core/tracepoint/self_spec.rb @@ -8,7 +8,7 @@ describe 'TracePoint#self' do next unless TracePointSpec.target_thread? trace = tp.self }.enable do - trace.equal?(self).should be_true + trace.equal?(self).should == true end end @@ -21,6 +21,6 @@ describe 'TracePoint#self' do class TracePointSpec::C end end - trace.should equal TracePointSpec::C + trace.should.equal? TracePointSpec::C end end |
