dtrace: suppress an empty line

* test/dtrace/helper.rb (DTrace::TestCase#trap_probe): suppress
  an extra empty line to the controlling tty by dtrace on Darwin.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-07-23 15:04:12 +00:00
parent d98dd47313
commit 106445d144

View File

@ -10,6 +10,16 @@ elsif (sudo = ENV["SUDO"]) and !sudo.empty? and (`#{sudo} echo ok` rescue false)
else
ok = false
end
if ok
case RUBY_PLATFORM
when /darwin/i
begin
require 'pty'
rescue LoadError
ok = false
end
end
end
ok &= (`dtrace -V` rescue false)
module DTrace
class TestCase < Test::Unit::TestCase
@ -19,10 +29,20 @@ module DTrace
when /solaris/i
# increase bufsize to 8m (default 4m on Solaris)
DTRACE_CMD = %w[dtrace -b 8m]
when /darwin/i
READ_PROBES = proc do |cmd|
PTY.spawn(*cmd) do |io, _|
break io.readlines
end
end
end
DTRACE_CMD ||= %w[dtrace]
READ_PROBES ||= proc do |cmd|
IO.popen(cmd, err: [:child, :out], &:readlines)
end
case rubybin = EnvUtil.rubybin
when /\/ruby-runner#{Regexp.quote(RbConfig::CONFIG["EXEEXT"])}\z/
RUBYBIN = File.dirname(rubybin)+"/miniruby#{RbConfig::CONFIG["EXEEXT"]}"
@ -51,9 +71,7 @@ module DTrace
end
cmd.unshift(sudo)
end
probes = IO.popen(cmd, err: [:child, :out]) do |io|
io.readlines
end
probes = READ_PROBES.(cmd)
d.close(true)
rb.close(true)
yield(d_path, rb_path, probes)