summaryrefslogtreecommitdiff
path: root/trunk/test/ruby/test_settracefunc.rb
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/test/ruby/test_settracefunc.rb')
-rw-r--r--trunk/test/ruby/test_settracefunc.rb184
1 files changed, 0 insertions, 184 deletions
diff --git a/trunk/test/ruby/test_settracefunc.rb b/trunk/test/ruby/test_settracefunc.rb
deleted file mode 100644
index c098e548b8..0000000000
--- a/trunk/test/ruby/test_settracefunc.rb
+++ /dev/null
@@ -1,184 +0,0 @@
-require 'test/unit'
-
-class TestSetTraceFunc < Test::Unit::TestCase
- def setup
- @original_compile_option = RubyVM::InstructionSequence.compile_option
- RubyVM::InstructionSequence.compile_option = {
- :trace_instruction => true,
- :specialized_instruction => false
- }
- end
-
- def teardown
- set_trace_func(nil)
- RubyVM::InstructionSequence.compile_option = @original_compile_option
- end
-
- def test_c_call
- events = []
- eval <<-EOF.gsub(/^.*?: /, "")
- 1: set_trace_func(Proc.new { |event, file, lineno, mid, binding, klass|
- 2: events << [event, lineno, mid, klass]
- 3: })
- 4: x = 1 + 1
- 5: set_trace_func(nil)
- EOF
- assert_equal(["c-return", 3, :set_trace_func, Kernel],
- events.shift)
- assert_equal(["line", 4, __method__, self.class],
- events.shift)
- assert_equal(["c-call", 4, :+, Fixnum],
- events.shift)
- assert_equal(["c-return", 4, :+, Fixnum],
- events.shift)
- assert_equal(["line", 5, __method__, self.class],
- events.shift)
- assert_equal(["c-call", 5, :set_trace_func, Kernel],
- events.shift)
- assert_equal([], events)
- end
-
- def test_call
- events = []
- eval <<-EOF.gsub(/^.*?: /, "")
- 1: set_trace_func(Proc.new { |event, file, lineno, mid, binding, klass|
- 2: events << [event, lineno, mid, klass]
- 3: })
- 4: def add(x, y)
- 5: x + y
- 6: end
- 7: x = add(1, 1)
- 8: set_trace_func(nil)
- EOF
- assert_equal(["c-return", 3, :set_trace_func, Kernel],
- events.shift)
- assert_equal(["line", 4, __method__, self.class],
- events.shift)
- assert_equal(["c-call", 4, :method_added, Module],
- events.shift)
- assert_equal(["c-return", 4, :method_added, Module],
- events.shift)
- assert_equal(["line", 7, __method__, self.class],
- events.shift)
- assert_equal(["call", 6, :add, self.class],
- events.shift)
- assert_equal(["line", 5, :add, self.class],
- events.shift)
- assert_equal(["c-call", 5, :+, Fixnum],
- events.shift)
- assert_equal(["c-return", 5, :+, Fixnum],
- events.shift)
- assert_equal(["return", 6, :add, self.class],
- events.shift)
- assert_equal(["line", 8, __method__, self.class],
- events.shift)
- assert_equal(["c-call", 8, :set_trace_func, Kernel],
- events.shift)
- assert_equal([], events)
- end
-
- def test_class
- events = []
- eval <<-EOF.gsub(/^.*?: /, "")
- 1: set_trace_func(Proc.new { |event, file, lineno, mid, binding, klass|
- 2: events << [event, lineno, mid, klass]
- 3: })
- 4: class Foo
- 5: def bar
- 6: end
- 7: end
- 8: x = Foo.new.bar
- 9: set_trace_func(nil)
- EOF
- assert_equal(["c-return", 3, :set_trace_func, Kernel],
- events.shift)
- assert_equal(["line", 4, __method__, self.class],
- events.shift)
- assert_equal(["c-call", 4, :inherited, Class],
- events.shift)
- assert_equal(["c-return", 4, :inherited, Class],
- events.shift)
- assert_equal(["class", 7, nil, nil],
- events.shift)
- assert_equal(["line", 5, nil, nil],
- events.shift)
- assert_equal(["c-call", 5, :method_added, Module],
- events.shift)
- assert_equal(["c-return", 5, :method_added, Module],
- events.shift)
- assert_equal(["end", 7, nil, nil],
- events.shift)
- assert_equal(["line", 8, __method__, self.class],
- events.shift)
- assert_equal(["c-call", 8, :new, Class],
- events.shift)
- assert_equal(["c-call", 8, :initialize, BasicObject],
- events.shift)
- assert_equal(["c-return", 8, :initialize, BasicObject],
- events.shift)
- assert_equal(["c-return", 8, :new, Class],
- events.shift)
- assert_equal(["call", 6, :bar, Foo],
- events.shift)
- assert_equal(["return", 6, :bar, Foo],
- events.shift)
- assert_equal(["line", 9, __method__, self.class],
- events.shift)
- assert_equal(["c-call", 9, :set_trace_func, Kernel],
- events.shift)
- assert_equal([], events)
- end
-
- def test_raise
- events = []
- eval <<-EOF.gsub(/^.*?: /, "")
- 1: set_trace_func(Proc.new { |event, file, lineno, mid, binding, klass|
- 2: events << [event, lineno, mid, klass]
- 3: })
- 4: begin
- 5: raise TypeError, "error"
- 6: rescue TypeError
- 7: end
- 8: set_trace_func(nil)
- EOF
- assert_equal(["c-return", 3, :set_trace_func, Kernel],
- events.shift)
- assert_equal(["line", 4, __method__, self.class],
- events.shift)
- assert_equal(["line", 5, __method__, self.class],
- events.shift)
- assert_equal(["c-call", 5, :raise, Kernel],
- events.shift)
- assert_equal(["c-call", 5, :exception, Exception],
- events.shift)
- assert_equal(["c-call", 5, :initialize, Exception],
- events.shift)
- assert_equal(["c-return", 5, :initialize, Exception],
- events.shift)
- assert_equal(["c-return", 5, :exception, Exception],
- events.shift)
- assert_equal(["c-call", 5, :backtrace, Exception],
- events.shift)
- assert_equal(["c-return", 5, :backtrace, Exception],
- events.shift)
- assert_equal(["c-call", 5, :set_backtrace, Exception],
- events.shift)
- assert_equal(["c-return", 5, :set_backtrace, Exception],
- events.shift)
- assert_equal(["raise", 5, :test_raise, TestSetTraceFunc],
- events.shift)
- assert_equal(["c-call", 6, :===, Module],
- events.shift)
- assert_equal(["c-return", 6, :===, Module],
- events.shift)
- assert_equal(["line", 8, __method__, self.class],
- events.shift)
- assert_equal(["c-call", 8, :set_trace_func, Kernel],
- events.shift)
- assert_equal([], events)
- end
-
- def test_invalid_proc
- assert_raise(TypeError) { set_trace_func(1) }
- end
-end