diff --git a/test/io/console/test_io_console.rb b/test/io/console/test_io_console.rb index b06b5d5c67..d48f1532b0 100644 --- a/test/io/console/test_io_console.rb +++ b/test/io/console/test_io_console.rb @@ -1,7 +1,7 @@ begin require 'io/console' - require 'pty' require 'test/unit' + require 'pty' rescue LoadError end @@ -169,8 +169,20 @@ class TestIO_Console < Test::Unit::TestCase require_relative '../../ruby/envutil' def test_noctty - assert_in_out_err(["-rio/console"], - "Process.daemon(true, true); p IO.console", - ["nil"]) + if Process.respond_to?(:daemon) + assert_in_out_err(["-rio/console"], + "Process.daemon(true, true); p IO.console", + ["nil"]) + elsif !(rubyw = RbConfig::CONFIG["RUBYW_INSTALL_NAME"]).empty? + require 'tempfile' + t = Tempfile.new("console") + t.close + dir, base = File.split(EnvUtil.rubybin) + rubywbin = File.join(dir, base.sub(/ruby/, rubyw)) + cmd = [rubywbin, '-rio/console', '-e', 'STDOUT.reopen(ARGV[0]); p IO.console', '--', t.path] + system(*cmd) + t.open + assert_equal("nil", t.gets.chomp) + end end -end if defined?(Process.daemon) and defined?(IO::console) +end if defined?(IO.console)