[rubygems/rubygems] Use a constant empty tar header to avoid extra allocations
[ruby.git] / test / dtrace / test_require.rb
blobda5c08f7fc3e42831057047f11e62ea583ed48ff
1 # frozen_string_literal: false
2 require_relative 'helper'
4 module DTrace
5   class TestRequire < TestCase
6     def test_require_entry
7       probe = <<-eoprobe
8 ruby$target:::require-entry
10   printf("%s %s %d\\n", copyinstr(arg0), copyinstr(arg1), arg2);
12       eoprobe
13       trap_probe(probe, ruby_program) { |d_file, rb_file, saw|
14         required = saw.map { |s| s.split }.find_all do |(required, _)|
15           required == 'dtrace/dummy'
16         end
17         assert_equal 10, required.length
18       }
19     end
21     def test_require_return
22       probe = <<-eoprobe
23 ruby$target:::require-return
25   printf("%s\\n", copyinstr(arg0));
27       eoprobe
28       trap_probe(probe, ruby_program) { |d_file, rb_file, saw|
29         required = saw.map { |s| s.split }.find_all do |(required, _)|
30           required == 'dtrace/dummy'
31         end
32         assert_equal 10, required.length
33       }
34     end
36     private
37     def ruby_program
38       "10.times { require 'dtrace/dummy' }"
39     end
40   end
41 end if defined?(DTrace::TestCase)