[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]