1require 'dtrace/helper'
2
3module DTrace
4  class TestObjectCreateStart < TestCase
5    def test_object_create_start
6      trap_probe(probe, '10.times { Object.new }') { |_,rbfile,saw|
7        saw = saw.map(&:split).find_all { |_, file, _|
8          file == rbfile
9        }
10        assert_equal 10, saw.length
11      }
12    end
13
14    def test_object_create_start_name
15      trap_probe(probe, 'Hash.new') { |_,rbfile,saw|
16        saw = saw.map(&:split).find_all { |klass, file, line|
17          file == rbfile
18        }
19        assert_equal(%w{ Hash }, saw.map(&:first))
20        assert_equal([rbfile], saw.map { |line| line[1] })
21        assert_equal(['1'], saw.map { |line| line[2] })
22      }
23    end
24
25    private
26    def probe
27      <<-eoprobe
28ruby$target:::object-create
29{
30  printf("%s %s %d\\n", copyinstr(arg0), copyinstr(arg1), arg2);
31}
32      eoprobe
33    end
34  end
35end if defined?(DTrace::TestCase)
36