mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* test/io/console/test_io_console.rb (test_noctty): daemon() on
OpenBSD seems not to detach the controlling terminal, when the argument noclose is non-zero. ref: [Bug #5135] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32848 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
1d69f7ccf1
commit
5fd10124aa
2 changed files with 21 additions and 8 deletions
|
@ -182,25 +182,32 @@ class TestIO_Console < Test::Unit::TestCase
|
|||
|
||||
case
|
||||
when Process.respond_to?(:daemon)
|
||||
def test_noctty
|
||||
assert_in_out_err(["-rio/console"],
|
||||
"Process.daemon(true, true); p IO.console",
|
||||
["nil"])
|
||||
end
|
||||
noctty = [EnvUtil.rubybin, "-e", "Process.daemon(true)"]
|
||||
when !(rubyw = RbConfig::CONFIG["RUBYW_INSTALL_NAME"]).empty?
|
||||
require 'tempfile'
|
||||
dir, base = File.split(EnvUtil.rubybin)
|
||||
RUBYW = File.join(dir, base.sub(/ruby/, rubyw))
|
||||
noctty = [File.join(dir, base.sub(/ruby/, rubyw))]
|
||||
end
|
||||
|
||||
if noctty
|
||||
require 'tempfile'
|
||||
NOCTTY = noctty
|
||||
def test_noctty
|
||||
t = Tempfile.new("console")
|
||||
t.close
|
||||
cmd = [RUBYW, '-rio/console', '-e', 'STDOUT.reopen(ARGV[0]); p IO.console', '--', t.path]
|
||||
t2 = Tempfile.new("console")
|
||||
t2.close
|
||||
cmd = NOCTTY + [
|
||||
'-rio/console',
|
||||
'-e', 'open(ARGV[0], "w") {|f| f.puts IO.console.inspect}',
|
||||
'-e', 'File.unlink(ARGV[1])',
|
||||
'--', t.path, t2.path]
|
||||
system(*cmd)
|
||||
sleep 0.1 while File.exist?(t2.path)
|
||||
t.open
|
||||
assert_equal("nil", t.gets.chomp)
|
||||
ensure
|
||||
t.close! if t and !t.closed?
|
||||
t2.close!
|
||||
end
|
||||
end
|
||||
end if defined?(IO.console)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue