Bug #4583 » test_settracefunc-1.8.7.patch
test/ruby/test_settracefunc.rb | ||
---|---|---|
assert_equal([], events)
|
||
end
|
||
attr_accessor :baz
|
||
class AttrTest
|
||
attr_accessor :baz
|
||
end
|
||
def test_attr_accessor
|
||
attr_test = AttrTest.new
|
||
events = []
|
||
set_trace_func(Proc.new { |event, file, lineno, mid, bidning, klass|
|
||
events << [event, lineno, mid, klass]
|
||
set_trace_func(Proc.new { |event, file, lineno, mid, bnd, klass|
|
||
events << [event, lineno, mid, eval('self', bnd), klass]
|
||
})
|
||
self.baz = baz
|
||
attr_test.baz = attr_test.baz
|
||
set_trace_func nil
|
||
assert_equal(["line", 146, :test_attr_accessor, TestSetTraceFunc],
|
||
assert_equal(["line", 149, :test_attr_accessor, self, TestSetTraceFunc],
|
||
events.shift) # baz = baz
|
||
assert_equal(["c-call", 146, :baz, TestSetTraceFunc],
|
||
assert_equal(["c-call", 149, :baz, attr_test, TestSetTraceFunc::AttrTest],
|
||
events.shift) # baz = baz
|
||
assert_equal(["c-return", 146, :baz, TestSetTraceFunc],
|
||
assert_equal(["c-return", 149, :baz, attr_test, TestSetTraceFunc::AttrTest],
|
||
events.shift) # baz = baz
|
||
assert_equal(["c-call", 146, :baz=, TestSetTraceFunc],
|
||
assert_equal(["c-call", 149, :baz=, attr_test, TestSetTraceFunc::AttrTest],
|
||
events.shift) # baz = baz
|
||
assert_equal(["c-return", 146, :baz=, TestSetTraceFunc],
|
||
assert_equal(["c-return", 149, :baz=, attr_test, TestSetTraceFunc::AttrTest],
|
||
events.shift) # baz = baz
|
||
assert_equal(["line", 147, :test_attr_accessor, TestSetTraceFunc],
|
||
assert_equal(["line", 150, :test_attr_accessor, self, TestSetTraceFunc],
|
||
events.shift) # baz = baz
|
||
assert_equal(["c-call", 147, :set_trace_func, Kernel], events.shift)
|
||
assert_equal(["c-call", 150, :set_trace_func, self, Kernel], events.shift)
|
||
assert_equal([], events)
|
||
end
|
||
end
|