ruby-changes:20801
From: nobu <ko1@a...>
Date: Fri, 5 Aug 2011 07:03:06 +0900 (JST)
Subject: [ruby-changes:20801] nobu:r32848 (trunk, ruby_1_9_3): * test/io/console/test_io_console.rb (test_noctty): daemon() on
nobu 2011-08-05 07:00:36 +0900 (Fri, 05 Aug 2011) New Revision: 32848 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=32848 Log: * 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] Modified files: branches/ruby_1_9_3/ChangeLog branches/ruby_1_9_3/test/io/console/test_io_console.rb trunk/ChangeLog trunk/test/io/console/test_io_console.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 32847) +++ ChangeLog (revision 32848) @@ -1,3 +1,9 @@ +Fri Aug 5 07:00:31 2011 Nobuyoshi Nakada <nobu@r...> + + * 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] + Thu Aug 4 23:48:00 2011 Kenta Murata <mrkn@m...> * thread_pthread.c (native_cond_signal): retry to call pthread_cond_signal Index: test/io/console/test_io_console.rb =================================================================== --- test/io/console/test_io_console.rb (revision 32847) +++ test/io/console/test_io_console.rb (revision 32848) @@ -182,25 +182,32 @@ 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) Index: ruby_1_9_3/ChangeLog =================================================================== --- ruby_1_9_3/ChangeLog (revision 32847) +++ ruby_1_9_3/ChangeLog (revision 32848) @@ -1,3 +1,9 @@ +Fri Aug 5 07:00:31 2011 Nobuyoshi Nakada <nobu@r...> + + * 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] + Wed Aug 4 02:35:00 2011 Kenta Murata <mrkn@m...> * configure.in: use build_os variable for checking C and C++ compilers Index: ruby_1_9_3/test/io/console/test_io_console.rb =================================================================== --- ruby_1_9_3/test/io/console/test_io_console.rb (revision 32847) +++ ruby_1_9_3/test/io/console/test_io_console.rb (revision 32848) @@ -179,25 +179,32 @@ 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) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/