diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-07-23 15:04:12 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-07-23 15:04:12 +0000 |
commit | 106445d1448958b97b29681197b1d94b5c79a9ca (patch) | |
tree | 6fa724e67e57acf615edaff01f09a2b26b2738ac /test/dtrace | |
parent | d98dd4731391cc95bc34830e6415aab32d091013 (diff) | |
download | ruby-106445d1448958b97b29681197b1d94b5c79a9ca.tar.gz |
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
Diffstat (limited to 'test/dtrace')
-rw-r--r-- | test/dtrace/helper.rb | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/test/dtrace/helper.rb b/test/dtrace/helper.rb index 5a2ff79682..4beda271c8 100644 --- a/test/dtrace/helper.rb +++ b/test/dtrace/helper.rb @@ -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) |