2020-05-02 10:03:14 -04:00
|
|
|
require_relative 'spec_helper'
|
|
|
|
|
|
|
|
load_extension("tracepoint")
|
|
|
|
|
|
|
|
describe "CApiTracePointSpecs" do
|
|
|
|
before :each do
|
|
|
|
@s = CApiTracePointSpecs.new
|
|
|
|
end
|
|
|
|
|
|
|
|
after :each do
|
|
|
|
@trace.disable if @trace and @trace.enabled?
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "rb_tracepoint_new" do
|
|
|
|
it "returns a tracepoint object" do
|
|
|
|
@trace = @s.rb_tracepoint_new(7)
|
|
|
|
@trace.should be_an_instance_of(TracePoint)
|
2020-05-03 06:28:29 -04:00
|
|
|
@trace.should_not.enabled?
|
2020-05-02 10:03:14 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
it "traces lines when given RUBY_EVENT_LINE" do
|
|
|
|
@trace = @s.rb_tracepoint_new(8)
|
|
|
|
@trace.enable
|
|
|
|
@s.callback_called?.should == 8
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "rb_tracepoint_disable" do
|
|
|
|
it "disables an enabled TracePoint" do
|
|
|
|
@trace = @s.rb_tracepoint_new(9)
|
2020-05-03 06:28:29 -04:00
|
|
|
@trace.should_not.enabled?
|
2020-05-02 10:03:14 -04:00
|
|
|
@trace.enable
|
2020-05-03 06:28:29 -04:00
|
|
|
@trace.should.enabled?
|
2020-05-02 10:03:14 -04:00
|
|
|
@s.rb_tracepoint_disable(@trace).should == false
|
2020-05-03 06:28:29 -04:00
|
|
|
@trace.should_not.enabled?
|
2020-05-02 10:03:14 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "rb_tracepoint_enable" do
|
|
|
|
it "enables a disabled TracePoint" do
|
|
|
|
@trace = @s.rb_tracepoint_new(10)
|
2020-05-03 06:28:29 -04:00
|
|
|
@trace.should_not.enabled?
|
2020-05-02 10:03:14 -04:00
|
|
|
@s.rb_tracepoint_enable(@trace).should == true
|
2020-05-03 06:28:29 -04:00
|
|
|
@trace.should.enabled?
|
2020-05-02 10:03:14 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "rb_tracepoint_enabled_p" do
|
|
|
|
it "returns correct enabled status" do
|
|
|
|
@trace = @s.rb_tracepoint_new(11)
|
|
|
|
@s.rb_tracepoint_enabled_p(@trace).should == false
|
|
|
|
@trace.enable
|
|
|
|
@s.rb_tracepoint_enabled_p(@trace).should == true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|