1require 'test/unit' 2require 'tmpdir' 3require_relative 'ruby/envutil' 4 5class TestTracer < Test::Unit::TestCase 6 include EnvUtil 7 8 def test_tracer_with_option_r 9 assert_in_out_err(%w[-rtracer -e 1]) do |(*lines),| 10 case lines.size 11 when 1 12 # do nothing 13 else 14 assert_match(%r{rubygems/core_ext/kernel_require\.rb:\d+:Kernel:-:}, lines[0]) 15 end 16 assert_equal "#0:-e:1::-: 1", lines.last 17 end 18 end 19 20 def test_tracer_with_option_r_without_gems 21 assert_in_out_err(%w[--disable-gems -rtracer -e 1]) do |(*lines),| 22 case lines.size 23 when 1 24 # do nothing 25 else 26 flunk "unexpected output from `ruby --disable-gems -rtracer -e 1`" 27 end 28 assert_equal "#0:-e:1::-: 1", lines.last 29 end 30 end 31 32 def test_tracer_with_require 33 Dir.mktmpdir("test_ruby_tracer") do |dir| 34 script = File.join(dir, "require_tracer.rb") 35 open(script, "w") do |f| 36 f.print <<-EOF 37require 'tracer' 381 39 EOF 40 end 41 assert_in_out_err([script]) do |(*lines),| 42 assert_empty(lines) 43 end 44 end 45 end 46 47 def test_tracer_with_require_without_gems 48 Dir.mktmpdir("test_ruby_tracer") do |dir| 49 script = File.join(dir, "require_tracer.rb") 50 open(script, "w") do |f| 51 f.print <<-EOF 52require 'tracer' 531 54 EOF 55 end 56 assert_in_out_err(["--disable-gems", script]) do |(*lines),| 57 assert_empty(lines) 58 end 59 end 60 end 61end 62