1require 'dtrace/helper'
2
3module DTrace
4  class TestRequire < TestCase
5    def test_require_entry
6      probe = <<-eoprobe
7ruby$target:::require-entry
8{
9  printf("%s %s %d\\n", copyinstr(arg0), copyinstr(arg1), arg2);
10}
11      eoprobe
12      trap_probe(probe, ruby_program) { |d_file, rb_file, saw|
13	required = saw.map { |s| s.split }.find_all do |(required, _)|
14	  required == 'dtrace/dummy'
15	end
16	assert_equal 10, required.length
17      }
18    end
19
20    def test_require_return
21      probe = <<-eoprobe
22ruby$target:::require-return
23{
24  printf("%s\\n", copyinstr(arg0));
25}
26      eoprobe
27    end
28
29    private
30    def ruby_program
31      "10.times { require 'dtrace/dummy' }"
32    end
33  end
34end if defined?(DTrace::TestCase)
35